`
junherry
  • 浏览: 97555 次
  • 性别: 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`语句,但与直接删除表中的数据不同,通过视图删除数据时,实际上会删除基础表中的对应记录。这是因为视图本身并不存储数据,而是动态生成的。以下是一个简单的示例: `...

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

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

    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

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

    SQL_Server视图和索引

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

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

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

    SQL视图与索引总结

    - 如果在创建视图时指定了`WITH CHECK OPTION`选项,那么使用视图修改数据时,必须保证修改后的数据满足视图定义的要求。 - 如果在视图定义中使用了`GROUP BY`、`UNION`、`DISTINCT`或`TOP`子句,则视图不允许更新...

    MFC 单文档视图中进行多种视图的切换

    在Microsoft Foundation Class (MFC) 库中,单文档界面(Single Document ...在实际项目中,你可能会遇到更多细节问题,如视图之间的交互、性能优化等,但遵循上述基本步骤,你可以构建起一个多视图的MFC SDI应用程序。

    oracle创建视图课件

    1. **视图定义**:视图是由SELECT语句组成的逻辑表,不包含任何实际数据,仅保存查询语句的定义。用户可以通过视图查询、更新和删除数据,就像操作真实的表一样。视图的定义存储在数据字典中,可以通过`USER_VIEWS`...

Global site tag (gtag.js) - Google Analytics