西工大《数据库概论》实验3.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西工大《数据库概论》实验3

实验3:视图操作和安全性控制 主要内容: 视图 创建、操作、删除 安全性 登录、用户、角色、权限 视图概述 视图的含义和作用 是基于某个查询结果的虚表。是用户查看和修改数据表中数据的一种方式。 每个视图都有几个被定义的列和多个数据行。 视图与基本表的关系 视图中的数据列和行来源于其所引用的基本表。 视图所对应的数据并不实际存储在数据库中,而是仍存储在视图所引用的基本表中。 数据库中只存储视图的定义。视图创建、操作、删除 视图的特点 1. 视图能够简化用户的操作,从而简化查询语句 2. 视图使用户能以多种角度看待同一数据,增加可读性 3. 视图对重构数据库提供了一定程度的逻辑独立性; 4. 视图能够对机密数据提供安全保护; 5. 适当的利用视图可以更清晰的表达查询。 使用视图的注意事项 只能在当前数据库中创建视图; 视图的命名必须遵循标识符命名规则,不可与表同名; 如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必须为列定义名称。 当视图引用基表或视图被删除,该视图也不能再被使用。 不能在视图上创建全文索引,不能在规则、默认的定义中引用视图。 一个视图最多可以引用1024个列。 视图最多可以嵌套32层。 利用图形用户界面创建视图 在SQL Server Management Studio中创建视图的方法主要在视图设计器中完成。 添加好各表后,单击关闭按钮关闭【添加表】对话框。以后需要用可以在关系图窗口的空白处右击。 在关系图窗口中,可以建立表与表之间的联系,只需要将相关联的字段拖动到要连接的字段上即可 单击【执行SQL】按钮 ,运行select语句,查看运行结果。 用命令创建视图 语句格式: create view 视图 [ (列名表) ] as select 子查询 [ with check option ] 创建视图例题 例1:创建所有学生学号、姓名及年龄的信息视图stu_info CREATE VIEW stu_info AS SELECT sno,sname,sage From student 创建视图例题 例3:创建信息系男生基本信息视图stu_is,包括学号、姓名及年龄,并要求进行修改和插入操作时仍保证该视图只有信息系的学生; CREATE VIEW stu_is AS SELECT sno,sname, sage from student Where sdept = ‘IS’ and ssex=‘男’ WITH CHECK OPTION 创建基于多个基表的视图 例1:建立信息系选修了1号课程的学生视图tu_is_c1。 CREATE VIEW stu_is_c1 (学号,姓名,成绩) AS SELECT Student. Sno,Sname,Grade FROM Student,SC WHERE Sdept= ‘IS’ AND SC.Cno= 1 AND Student.Sno=SC.Sno 创建基于多个基表的视图 例2:创建学生选修课程详细情况视图stu_sc; CREATE VIEW stu_sc AS SELECT s.sno,sname,ssex, sage,sdept,c.cno,cname,grade From student s,sc,course c Where s.sno=sc.sno and c.cno=sc.cno 创建基于视图的视图 例1:建立信息系选修了1号课程且成绩在90分以上的学生的视图; 创建代表达式的视图 例1: 定义一个反映学生出生年份的视图; CREATE VIEW stu_year(Sno,Sname,Sbirth) AS SELECT Sno,Sname,出生年份=2007-Sage FROM Student 创建分组视图 例1:将学生的学号及其平均成绩定义为一个视图; CREATE VIEW S_G(Sno,Gavg) AS SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno --- 例:创建一个视图,用于查看学生学号、姓名和平均成绩。 CREATE VIEW v_example4 ( 学号, 姓名, 平均成绩) AS SELECT stu_id, name, AVG(grade) FROM v_examples3 GROUP BY

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档