240 likes | 481 Views
数据库应用技术 SQL Server 2005. 第 7 章 SQL Server 2005 视图的创建与管理. 能力目标: 理解关系数据库的三级模式结构内模式、模式和外模式, SQL Server 2005 数据库、表和视图的相互关系和概念。 能根据项目需求分析为应用程序创建视图。 能用 T-SQL 语言对视图进行应用、修改和删除,为应用程序开发打好基础。 任务设计: 根据项目需求分析为应用程序创建视图。 用 T-SQL 语言对视图进行应用、修改和删除操作。. 第 7 章 SQL Server 2005 视图的创建与管理. 知识要求:
E N D
第7章 SQL Server 2005视图的创建与管理 能力目标: • 理解关系数据库的三级模式结构内模式、模式和外模式,SQL Server 2005数据库、表和视图的相互关系和概念。 • 能根据项目需求分析为应用程序创建视图。 • 能用T-SQL语言对视图进行应用、修改和删除,为应用程序开发打好基础。 任务设计: • 根据项目需求分析为应用程序创建视图。 • 用T-SQL语言对视图进行应用、修改和删除操作。
第7章 SQL Server 2005视图的创建与管理 知识要求: • T-SQL语言的视图定义。 • 创建视图。 • 修改视图。 • 使用视图。
第7章 SQL Server 2005视图的创建与管理 视图的概述 1 视图的创建 2 视图的修改 3 视图的删除 4 1 视图的使用 5
7.1 视图概述 二级存储映象 三级模式 SQL SERVER 数据库对象Transact-SQL DDL 外模式视图(VIEW) CREATE VIEW 模式 基本表(TABLE) CREATE TABLE 内模式数据库(DATABASE)CREATE DATABASE 逻辑独立性 物理独立性
7.1.1 视图的基本概念 • 视图(View)是一个虚拟表 • 其内容由SELECT查询语句指定。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表(基本表),并且在引用视图时动态生成。 • 特点 • 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。 • 视图是由基本表(实表)产生的表(虚表)。 • 视图的建立和删除不影响基本表。 • 对视图内容的更新(添加、删除和修改)直接影响基本表。 • 视图来自多个基本表时,不允许添加和删除数据。
7.1.2 视图的作用 • 视图能简化用户的操作 • 安全性 • 逻辑数据独立性
7.2 创建视图 • 若要创建视图,必须获得创建视图的权限,并且如果使用架构绑定创建视图,必须对视图定义中所引用的表或视图具有适当的权限。 • 创建视图前应考虑如下准则: • 只能在当前数据库中创建视图。 • 视图名称必须遵循标识符的规则,且对每个架构都必须唯一。 • 可以在其他视图的基础上创建视图。 • 不能将AFTER触发器与视图相关联,只有INSTEAD OF触发器可以与之相关联。 • 定义视图的查询不能包含COMPUTE子句、COMPUTE BY子句或INTO关键字。 • 定义视图的查询不能包含ORDER BY子句,除非在SELECT语句的选择列表中还有一个TOP子句。 • 不能为视图定义全文索引。 • 不能创建临时视图,也不能对临时表创建视图。
7.2 创建视图 • 下列情况下必须指定视图中每列的名称: • 视图中任何列都是从算术表达式、内置函数或常量派生而来的。 • 视图中有两列或多列具有相同的名称(通常由于视图定义包含表连接,因此来自两个或多个不同表的列具有相同的名称)。 • 希望为视图中的列指定一个与其源列不同的名称,也可以在视图中重命名列,无论重命名与否,视图列都会继承其源列的数据类型。 • 其他情况下,无需在创建视图时指定列名。
7.2.1 使用SSMS创建视图 在educ数据库中,由学生表“student”创建出电子商务学生的视图”View_EB” (1)在【对象资源管理器】中,单击“数据库”节点前的加号,再单击具体的数据库节点前的加号,右键“视图”节点,从快捷菜单中选择“新建视图”; (2)在弹出的【添加表】对话框中选择所需的表或视图等,如选择需要的表,单击“添加”按钮,如果不再添加其他表,则单击“关闭”按钮; (3)打开【文档】窗口的视图设计器,在视图设计器中选择要投影的列,设置条件等; (4)在视图设计器中,可以看到自动生成的SQL语句,单击工具栏上的“执行SQL”按钮,可以看到查询结果。如果查询结果正确,右键【视图】页,在弹出的快捷菜单中选择“保存”命令;
7.2.1 使用SSMS创建视图 (5)在弹出的保存对话框中选择要保存的视图,单击“是”按钮; (6)在弹出的【选择名称】对话框中输入视图名,如:View_EB; (7)单击“确定”按钮,完成视图的创建。
7.2.2 使用T-SQL创建视图 使用CREATE VIEW命令创建视图,其语法格式如下: CREATE VIEW视图名 AS SELECT子句 例 :定义视图V1_BOOKS为图书中的作者和书名。 USE Library GO CREATE VIEW V1_BOOKS AS SELECT DISTINCT Author, Bname FROM dbo.Book GO
7.3 修改视图 • 使用SSMS修改视图 在【对象资源管理器】中,单击“数据库”节点前的加号,再单击具体“数据库”节点前的加号,右键“视图”节点,从快捷菜单中选择“修改”,逐步完成。下面举例说明具体修改步骤。 2. 使用T-SQL修改视图 ALTER VIEW视图名 AS SELECT子句
7.3 修改视图 • 修改视图“V1_Books”,把从表“Book”中查询出的列“Author”和“Bname”改为“作者”和“书名”。 alter view vi_books(作者,书名) as select distinct author, bname from book
7.4 删除视图 • 使用SSMS删除视图 在【对象资源管理器】中,单击“数据库”节点前的加号,再单击具体数据库节点前的加号,单击“视图”节点前的加号,右键要删除的视图节点,从快捷菜单中选择“删除”,或者按DELETE键或者选择菜单“编辑”—“删除”命令。 2. 使用T-SQL删除视图 DROP VIEW视图名 删除视图V1_Books Drop view V1_books
7.5 使用视图 • 在SQL Server中可以通过视图检索数据,这是视图最基本的应用,除此之外还可以通过视图修改基本表中的数据。
7.5.1 视图检索(查询) • 对视图的检索和对表的查询完全相同,可以直接打开视图查看 也可以通过T-SQL的SELECT查询语句进行检索
回顾 • 掌握视图的概念 • 掌握视图的创建和修改 create view 视图名 as select语句 • 掌握视图的删除 drop view 视图名 • 掌握视图的使用 alter view 视图名 as select语句
7.5.2 利用视图操作基本表 对视图的检索和对表的查询完全相同,可以直接打开视图查看 也可以通过T-SQL的SELECT查询语句进行检索 • 添加记录 INSERT INTO视图名(列名列表) VALUES(值表) • 修改记录 UPDATE视图名 SET列名=值 WHERE条件 • 删除记录 DELETE FROM视图名 WHERE条件
通过视图“view_EB”添加一条新的数据行,各列的值分别为2005216322,李晓燕、女、1986-9-6和电子商务。通过视图“view_EB”添加一条新的数据行,各列的值分别为2005216322,李晓燕、女、1986-9-6和电子商务。 Insert into view_EB(sid, sname, sex, birthday, specialty) values(‘2005216322’, ‘李晓燕’,’女’,’1986-9-6’,’电子商务’)
将视图“view_EB”中姓名为郭洪亮的学生的出生日期改为“1987-4-27”。将视图“view_EB”中姓名为郭洪亮的学生的出生日期改为“1987-4-27”。 update view_EB Set birthday=‘1987-4-27’ Where sname=‘郭洪亮’
将视图“view_EB”中删除姓名为李晓燕的学生数据行。将视图“view_EB”中删除姓名为李晓燕的学生数据行。 Delete from view_EB where sname=‘李晓燕’
7.6 小结 本章重点讲述了视图的创建、使用、修改和删除操作;其中视图的创建、修改和删除操作都讲解了两种实现方法;视图的使用中介绍使用视图进行查询和使用视图操作基本表的方法。希望同学们通过上机练习加深对视图的理解,提高对视图的操作能力。