




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章 视图的创建与使用,学习要点: 创建视图的方法 对视图进行管理 利用视图修改源表数据 6.1 视图简介 6.2 创建视图 6.3 管理视图 6.4 通过视图修改数据,6.1 视图简介,6.1.1 视图的概念 视图是一种数据库对象,它由多个字段列和数据行构成,这些列和行来自于一个或多个物理数据表。 视图是一个虚拟表,所对应的数据是存储在所引用的数据表中,被引用的表称为基表。,例如: Customer基表 Relationer基表 表vCustInfo是由前两个表派生出来的视图:,6.1 视图简介,6.1.2 视图的特点 : 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。 视图是由基表(实表)产生的表(虚表)。 视图的建立和删除不影响基表。 对视图内容的更新(添加、删除和修改)直接影响基表。 当视图来自多个基表时,不允许添加和删除数据。,6.1.3 视图的作用 : 简化用户的操作。 增加可读性。 提高安全性。 保证数据逻辑独立性。,创建视图需要注意 : 视图的名称必须满足命名规则,且必须是唯一的。 只能在当前数据库中创建视图。 定义视图的查询不可以包含ORDER BY子句或INTO子句。 不能在视图上创建全文索引。 通过视图修改表中数据时,不能违反数据完整性规则。,6.2 创建视图,创建视图的常用工具 使用企业管理器创建 使用Transact-SQL语句创建,6.2.1 使用企业管理器创建 (1)进入新建视图对话框,右击创建视图的数据库,(2)为视图选择数据源,选择表,并添加到,右击鼠标,数据源可以是表、其他视图或函数,此处选择三个 表作为数据源,(3)选择视图的输出字段(表达式),通过单击字段左边 复选框选择字段,所选 字段,视图的查询语句,在该图中的其他复选框的含义如下: “输出”复选框表示在输出结果中是否显示该字段内容; “准则”复选框中可以输入该字段的限制条件,用来限制记录的输出 “排序类型”复选框表示新建视图的运行结果按照该字段的升序或降序排列。 “或”复选框表示可以为该字段输入多个逻辑关系为“或”的限制条件.若为该字段输入逻辑关系为“与”的限制条件可在下边的Transact-SQL语句中用“AND”输入。,注:由以上复选框的设置可自动生成视图的查询语句 也可在上图中由用户修改或重新输入,视图属性对话框中的有关选项的含义如下: “DISTINCT值”表示在视图的运行结果中是否显示重复记录。 “加密浏览”实现对视图定义加密,一旦对视图进行加密以后将不能对视图的定义进行查看或修改。 “顶端”复选框可以限制视图的最多输出记录条数。,(4)在视图设计窗口中单击工具栏中的按钮 运行视图 (5)点击“保存”按扭保存完成视图的创建,定制视图属性,视图属性对话框,6.2.2 使用Transact-SQL语句创建 其语法格式如下:,CREATE VIEW , . view_name(colume_name,n) WITH ,n AS select_statement WITH CHECK OPTION,WITH view_attribute可以取以下值: (1) ENCRYPTION (2) SCHEMABINDING (3) VIEW_METADATA,简单记忆: CREATE VIEW 视图名 AS SELECT 查询子句,database_name:指定了被创建的视图对象所在数据库名称 Owner:用于指定视图的所有者的名称 view_name:用于指定新建视图的名称 colume_name :视图中的列名。可以包含多个列。若使用与源表或视图中相同的列名时,则不必给出colume_name。 ENCRYPTION:表示将新建的视图加密 SCHEMABINDING:表示在select_statement语句中如果包含表、视图或者引用户自定义函数,则表名、视图名或者函数名前必须包含所有者前缀 VIEW_METADATA:表示如果某一查询中引用该视图且要求返回浏览模式的元数据时,那么SQL Server将向DBLIB和OLE DB API返回视图的元数据信息 select_statement:用于创建视图的SELECT语句 WITH CHECK OPTION:用于强制视图上执行的所有数据修改语句都必须符合由select子句设置的准则,必须是数据库中现有用户名,例6_1:创建V_Salers视图,包括销售员的编号、姓名、性别、地址。利用Salers表。 Use sales GO CREATE VIEW V_Salers (编号,姓名,性别,地址) AS SELECT SaleID, Salename,Sex, Address FROM Salers,打开sales数据库,视图名,视图包含的列名,例6_3:在sales数据库中创建如下视图:利用OrderDetails表和Products表查询每种产品销售的总价值。 USE SALES GO CREATE VIEW V_Sale_Total (定单编号,产品名称,销售总价值) WITH ENCRYPTION AS SELECT OrderDetails.OrderID, Products.ProductName, Price *Quantity FROM OrderDetails, Products WHERE OrderDetails. ProductID = Products. ProductID,加密视图,在查询分析器中输入以下SQL语句会执行视图: SELECT * FROM V_Sale_Total 会生成如下的查询结果:,WITH CHECK OPTION的视图,例6-4 建立信息系学生的视图,并要求透过该视图进行的更新操作只涉及信息系学生。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS WITH CHECK OPTION;,对IS_Student视图的更新操作,修改操作:DBMS自动加上Sdept= IS的条件 删除操作:DBMS自动加上Sdept= IS的条件 插入操作:DBMS自动检查Sdept属性值是否为IS 如果不是,则拒绝该插入操作 如果没有提供Sdept属性值,则自动定义Sdept为IS,基于视图的视图,例6-5 建立信息系选修了1号课程且成绩在90分以上的学生的视图。 CREATE VIEW IS_S2 AS SELECT Sno,Sname,Grade FROM IS_S1 WHERE Grade=90;,建立分组视图,例6-6 将学生的学号及他的平均成绩定义为一个视图,假设SC表中“成绩”列Grade为数字型 CREAT VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno;,6.3 管理视图,查看视图信息 修改视图 重命名视图 删除视图,注:视图 的管理工 具是企业 管理器和 命令语句,6.3.1 查看视图信息,利用企业管理器查看视图信息,右 击 视 图,展 开 数 据 库,点 击 属 性,视图的查询语句,视图的权限,利用系统存储过程查看视图信息 sp_help显示数据库对象的特征 sp_helptext查看数据库对象在系统表中的定义 sp_depends显示有关数据库对象相关性的信息,USE sales GO sp_help V_Quantity,使用sp_help显示视图的特征 语法如下: sp_help objname = name ,被显示对象名称,例6-4:使用该存储过程显示视图V_Quantity的特征信息。,例6_5:使用该存储过程显示视图V_Quantity的在系统表中的定义,则在查询分析器中输入如下命令行。 Use sales Go sp_helptext V_Quantity,使用sp_helptext显示视图在系统表中的定义 语法如下: sp_helptext objname = name,视图的定义,视图加密后不能显示视图的定义,例6_6:使用该存储过程显示视图V_Quantity的表依赖关系和引用的字段情况,则在查询分析器中输入如下命令行。,sp_depends显示视图对表的依赖关系和引用的字段 语法如下: sp_depends objname = object,Use sales Go Sp_depends V_Quantity,6.3.2 修改视图,利用企业管理器对视图进行修改,展开数据库,右击视图,选择设计视图,利用ALTER命令对视图进行修改 其语法形式如下: ALTER VIEW view_name (column,n) with encryption AS select_statement with check option,其中:参数的含义与创建视图CREATE VIEW命令中的参数含义相同,简单记忆: ALTER VIEW 视图名 AS SELECT 查询子句,通常利用该命令取消视图的加密属性,Use sales GO Alter view V_Sale_Total (定单编号, 产品名称,销售总价值) AS SELECT OrderID,ProductName, Price * Quantity FROM dbo.OrderDetails INNER JOIN dbo.Products ON dbo.OrderDetails.ProductID = dbo.Products.ProductID,例6_7:利用ALTER命令去除视图V_Sale_Total的加密属性。,注:去掉加密属性后才可以查看视图的信息,6.3.3 重命名视图 利用企业管理器对图对象重命名 在企业管理器中双击该视图名 利用存储过程sp_rename对视图重命名 语法形式:sp_rename old_name, new_name 例6_8:使用存储过程为视图V_customers重命名为V_customers1 sp_rename V_customers, V_customers1,6.3.4 删除视图 利用企业管理器删除视图,右击视图,删除,注意:若有其他数据库对象依赖于将要删除 的视图,则应考虑是否还要继续删除此视图,利用DROP VIEW命令删除视图,语法形式如下:DROP VIEW view ,.n ,例6-9:删除视图V_Customers。在查询分析器中输入以下命令: Drop view V_Customers,可以同时删除多个视图,6.4 通过视图修改数据,插入记录 修改记录 删除记录,6.4.1 利用视图插入记录 利用企业管理器插入新记录 “选中视图-右击-打开视图-返回所有行”,在视图的运行结果中直接填加新记录,利用INSERTINTO命令插入新记录,例6-10:首先创建一个新视图文件V_stocks,基于表Products,要求包含库存stocks值在300以上的记录,在插入新记录。,Use sales Go Create view V_stocks As Select ProductID, ProductName, CategoryID, Price, stocks From products Where stocks300 Insert into V_stocks Values (P03007,冰糖,3,6.0000,200) Select * from V_stocks 例6-10,在插入新记录时须注意以下内容: 若在视图的定义中为视图限制了查询条件或者基表的列允许空值或有默认值时,而新加入的记录又不符合该限制,此时,仍然可以向基表中插入记录,但再次运行视图时,将不能显示新插入的记录。 若在视图的定义中使用了WITH CHECK OPTION选项,则当向视图中插入不符和视图查询限制的记录时,系统将不能将该记录插入到视图和基表中。 若当基表对记录进行了某些限制,如,在基表中进行主键限制或触发器限制,如果新插入的记录不符和该限制时,系统也不能将该记录插入到视图和基表中。,6.4.2 利用视图更新记录 用企业管理器更新记录,要更新的记录必须符合视图的查询要求才能完成修改操作,否则在视图的运行对话框中不显示该记录,也就无法完成该操作。,具体步骤同插入记录类似,UPDATESET命令更新记录,例6-12:用前面已经创建的视图V_Salers,在查询分析器 中输入如下命令 Use sales Go update V_Salers set 地址=保定直达路1号 where 编号=s10,注意:若原视图的定义中包含WITH CHECK OPTION,如果所 更新的新记录不符合限制条件,则更新操作出错。,6.4.3 用视图删除记录 企业管理器删除记录 运行视图-在结果集中删除记录 注意要删除的记录必须符合视图的查询要求才能完成该操作 利用DELETE命令删除记录 例6-14: 利用视图V_stocks删除满足一定条件的记录。,USE sales Go DELETE FROM V_stock
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 法院代理协议书
- 部门负责人聘用合同协议
- 死亡结算协议书
- 互联网线上校园超市运营合作协议
- 牙科租赁协议书
- 汽车退回协议书
- 通勤车租用合同补充协议
- 本人辞职协议书
- 《急性腹痛患者的护理》课件
- 配电箱电缆合同协议
- 胃管置入术知情同意书
- 小学体育四年级第二学期教学进度表
- 2024年演出经纪人考试必背1000题及完整答案【历年真题】
- 三项制度改革培训
- 2024年山东菏泽市东明县城市社区工作者招聘笔试冲刺题(带答案解析)
- 动漫游戏IP衍生品开发策划书
- 晋祠完整分享
- 机器视觉系统应用(中级) 课件 5.4书签缺陷检测系统联调
- 穴位埋线疗法骨科疾病的辅助治疗研究
- 事业单位代报名委托书
- 呼吸科利用PDCA循环提高肺功能检查结果达标率品管圈QCC成果汇报
评论
0/150
提交评论