`
junherry
  • 浏览: 98666 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

视图的定义与删除问题

阅读更多

“任何不是逻辑模型的一部分但作为虚关系而对用户可见的关系称为视图。”在操作数据库过程中,视图是一个较为常用的关系集合,它能够向用户隐藏一些特定的数据,提高安全性能;同时,视图比逻辑模型更加符合特定用户的直觉感受。我们在sql中用create view命令定义视图。create view命令格式为: create view v as<查询表达式>,其中<查询表达式>可以是任何有效的查询表达式,v表示视图名称。

例如,有这样一个视图,它包含每本书的销量,我们将这个视图命名为book_sales,我们定义视图如下:

create view book_sales as

select books.title as title, sum(sales.qty) as qfrom books, sales
where books.title_id = sales.title_id
group by books.title

定义了视图之后,我们就可以用book_sales指代视图生成的虚关系。例如,我们要查出书名为'The art of Code'的销量:

select q

from book_sales

where title = 'The art of Code'

以上是对视图的定义和使用操作。而我们在定义视图时,会遇到这样一个问题,在查询分析器中sql被多次重复运行时,系统会提示“数据库中已存在名为 'book_sales' 的对象。”,即该视图被重复创建了。因此,在定义一个视图之前,要首先判断视图book_sales是否已经存在。如果存在,将其删除,然后才能开始定义视图。我们以sql server 中的pubs数据库为例。

use pubs;
go
if object_id('dbo.book_sales', 'v')is not null
drop view dbo.book_sales;
go

总结起来,在定义一个视图时,应该首先判断是否已经存在该视图,若存在,则将其drop掉,再创建新视图。

use pubs;
go
if object_id('dbo.book_sales', 'v')is not null
drop view dbo.book_sales;
go

create view book_sales as

select books.title as title, sum(sales.qty) as qfrom books, sales
where books.title_id = sales.title_id
group by books.title

分享到:
评论

相关推荐

    实验7 数据库的视图定义及维护实验.doc

    数据库视图定义及维护实验 本实验的目的是使学生掌握视图的定义与维护操作,加深对视图在关系数据库中的作用的理解。视图是根据子模式建立的虚拟表,一个视图可以由一个表构造,也可以由多个表构造。利用企业管理器...

    数据库实验报告 视图的定义及使用实验(详细版有截图的)

    实验报告的主题是“数据库实验”,主要探讨视图的定义与使用,特别针对SQL Server 2000环境。视图是数据库系统中的一个重要概念,它是一个虚拟表,其内容基于一个或多个实际的表,但并不存储任何数据,而是根据需要...

    数据库实验---视图的定义和操作.pdf

    在实验中,我们将学习如何定义视图,并对其进行查询、插入、更新和删除操作,并分析各种操作的结果和原因。 实验目的: * 了解 SQL Server 2005 的启动和熟悉如何使用 SSMS 和 SQL 建立数据库和表 * 加深对于完整...

    MySQL--视图的定义

    ### MySQL视图定义详解 #### 视图的概念 在MySQL中,**视图**是一种特殊的虚拟表,其结果集由从本机表中选择的数据组成。视图并不存储实际的数据,而是存储一条SELECT语句,当用户访问视图时,数据库引擎会执行该...

    视图的定义与操作.doc

    "视图的定义与操作" 一、视图的定义 视图是基于一个或多个基本表的结果集,它可以被当作一个虚拟表来对待。视图的定义是指使用SQL语句创建一个视图的过程。视图的定义可以基于单个表、多个表,或者通过连接、嵌套...

    通过视图删除数据.rar

    在SQL中,删除视图中的数据,需要使用`DELETE`语句,但与直接删除表中的数据不同,通过视图删除数据时,实际上会删除基础表中的对应记录。这是因为视图本身并不存储数据,而是动态生成的。以下是一个简单的示例: `...

    视图的定义

    ### 视图的定义 #### 一、基本概念 视图是一种虚拟表,其内容由查询定义。...通过实际案例的解析,我们进一步理解了如何创建和操作视图,以及在执行插入、删除和更新操作时可能会遇到的问题及其解决办法。

    一次性删除所有存储过程和视图

    在数据库管理与维护的过程中,一次性删除所有存储过程和视图是一项高级操作,通常在数据库迁移、升级或重置场景下应用。以下将深入探讨这一操作的技术背景、执行逻辑及潜在风险,帮助数据库管理员理解并安全地实施...

    数据库-实验五 视图的定义与操作.docx

    1. 分别在定义的视图上进行查询、插入、更新和删除操作,分情况(查询、更新)讨论哪些操作可以成功完成,哪些不能成功完成,并分析原因。 (1)查询:WHERE 子句中是不能用聚集函数作为条件表达式的,因此执行修正...

    SQL Server2008删除视图.pptx

    - 删除视图会永久性地丢失其定义,如果你以后还需要这个视图,记得在删除前备份其创建语句。 - 如果视图被其他对象(如存储过程、触发器)引用,删除视图可能会导致依赖关系错误。在删除前确保了解这些依赖关系。 - ...

    oracle实验3-数据更新与视图.doc

    在实验中,我们将学习数据插入、修改和删除语句的语法格式和使用方法,以及视图的定义和操作方法。 一、数据更新 在实验中,我们使用 SQL 语句完成了以下操作: (1)删除学生“宾兆琦”的所有记录,包括选课记录...

    MySQL数据库:数据视图的修改和删除.pptx

    在创建视图后,可能因为业务需求变化或者基础表结构的调整,需要对已有的视图定义进行更新。这可以通过`ALTER VIEW`语句来实现。其基本语法格式如下: ```sql ALTER VIEW 视图名 [(列名列表)] AS select语句 [WITH ...

    ios-表视图,增加,删除数据.zip

    以上就是与“ios-表视图,增加,删除数据.zip”相关的iOS开发核心知识点,对于初学者来说,理解和掌握这些概念是至关重要的,因为表视图在许多应用程序中都扮演着关键角色。不断实践和学习,将有助于提升iOS开发技能...

    国家开放大学 形考答案 mysql 实验训练4:视图和索引的构建与使用

    本资源为 MySQL 实验训练第四课,主要涵盖视图和索引的构建与使用。实验目的是基于已有的汽车用品网上商城数据库 Shopping,理解视图和索引的概念和作用,练习视图的基本操作,包括视图的建立、视图的查询、视图的...

    实验7数据库的视图定义及维护实验.doc

    ### 数据库视图定义及维护实验知识点解析 #### 一、实验目的 - **掌握视图的定义与维护操作**:通过本次实验,学生能够熟悉并掌握如何在数据库中创建和管理视图,包括创建、删除、查询以及更新等基本操作。 - **...

    视图创建与管理,视图的基本操作

    视图的操作基本上与表的操作相同,可以使用SELECT、INSERT、UPDATE、DELETE语句,但是可进行的操作会受到视图定义的限制。例如,如果视图是通过一个聚合查询创建的,则该视图不支持数据的更新操作。 在视图的管理...

    SQL_Server视图和索引

    这里使用了`WITH ENCRYPTION`选项来加密视图定义,确保视图的定义只能通过系统管理员查看。 ##### 1.3 查询视图 查询视图与查询普通表相似,只需使用视图的名称作为数据源即可。例如: ```sql SELECT 产品编号, ...

    MySQL视图的创建与管理(教程).md

    MySQL视图的创建与管理包括视图的基本概念、创建、查询、修改、删除以及查看视图定义等多个方面。视图是存储在数据库中的虚拟表,它们由查询结果集组成,其数据并不真正存在于数据库中,而是通过视图所定义的查询在...

    sybase 存储过程,视图 ,触发器等语法大全

    与创建视图类似,但用于更新已有的视图定义。 **示例:** ```sql ALTER VIEW v_EmployeeDetails AS SELECT EmployeeID, FirstName, LastName, Department, Salary FROM Employees WHERE Department = 'IT'; ``` ##...

    实验6-视图.docx

    2. **插入、更新和删除分析:** 对视图进行插入、更新和删除操作的能力受到多种因素的影响,包括视图定义和基础表的结构。特别是联接视图和涉及聚合函数的视图,这些操作可能无法执行,因为DBMS无法确定如何将操作...

Global site tag (gtag.js) - Google Analytics