09.3数据库视图、序列、索引、约束、练习整理.docxVIP

09.3数据库视图、序列、索引、约束、练习整理.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
09.3数据库视图、序列、索引、约束、练习整理

视图、序列、索引1.1. 视图1.1.1. 什么是视图视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。创建视图的语法:01.CREATE [OR REPLACE] VIEW view_name[(alias[, alias…])]02.AS subquery ;视图创建后,可以像操作表一样操作视图,主要是查询操作。语法中的Subquery是SELECT查询语句,对应的表被称作基表。根据视图所对应的子查询种类分为几种类型:?SELECT语句是基于单表建立的,且不包含任何函数运算、表达式或分组函数,叫做简单视图,此时视图是基表的子集; ?SELECT语句同样是基于单表,但包含了单行函数、表达式、分组函数或GROUP BY子句,叫做复杂视图; ?SELECT语句是基于多个表的,叫做连接视图。 1.1.2. 视图的作用如果需要经常执行某项复杂查询,可以基于这个复杂查询建立视图,此后查询此视图即可,简化复杂查询;视图本质上就是一条SELECT语句,所以当访问视图时,只能访问到所对应的SELECT语句中涉及到的列,对基表中的其它列起到安全和必威体育官网网址的作用,可以限制数据访问。1.1.3. 授权创建视图创建视图的DDL语句是CREATE VIEW,用户必须有CREATE VIEW系统权限,才能创建视图。如果没有权限,创建视图时会提示:权限不足。管理员可以通过DCL语句授予用户创建视图的权限。下例中管理员给用户tarena创建视图的权限:01.GRANT CREATE VIEW TO tarena;1.1.4. 创建简单视图(单表)创建一个简单视图V_EMP_10,来显示部门10中的员工的编码、姓名和薪水:01.CREATE VIEW v_emp_1002.AS03.SELECT empno, ename, sal, deptno 04.FROM emp 05.WHERE deptno = 10;查看视图结构:01.DESC v_emp_10;1.1.5. 查询视图查询视图和查询表的操作相同:01.SELECT * FROM v_emp_10;此时视图的列名,和创建视图时的列名一致,不一定是原列名:01.SELECT id, name, salary FROM v_emp_10;1.1.6. 对视图进行INSERT操作视图本身并不包含数据,只是基表数据的逻辑映射。所以当对视图执行DML操作时,实际上是对基表的DML操作。对视图执行DML操作的基本原则:?简单视图能够执行DML操作,下列情况除外:在基表中定义了非空列,但简单视图对应的SELECT语句并没有包含这个非空列,导致这个非空列对视图不可见,这时无法对视图执行INSERT操作; ?如果视图定义中包含了函数、表达式、分组语句、DISTINCT关键字或ROWNUM伪列,不允许执行DML操作; ?DML操作不能违反基表的约束条件。 对简单视图执行INSERT操作,成功插入数据到基表中:01.INSERT INTO v_emp_10 02.VALUES(1234, DOCTOR, 4000, 10);简单视图可以通过DML操作影响到基表数据。1.1.7. 创建具有CHECK OPTION约束的视图语法如下:01.CREATE [OR REPLACE] VIEW view_name[(alias[, alias…])]02.AS subquery 03.[WITHCHECKOPTION];其中:WITH CHECK OPTION短语表示,通过视图所做的修改,必须在视图的可见范围内:?假设INSERT,新增的记录在视图仍可查看 ?假设UPDATE,修改后的结果必须能通过视图查看到 ?假设DELETE,只能删除现有视图里能查到的记录 创建带有CHECK OPTION约束的视图:01.CREATE OR REPLACE VIEW v_emp_1002.AS03.SELECT empno id, ename name, sal salary, deptno 04.FROM emp 05.WHERE deptno = 1006.WITH CHECK OPTION;下述DML语句操作失败,因为部门20不在视图可见范围内:01.INSERT INTO v_emp_10 VALUES(1008,‘donna’,5500, 20); 02.UPDATE v_emp_10 SET deptno = 20 WHERE id = 7782;1.1.8. 创建具有READ ONLY约束的视图对简单视图进行DML操作是合法的,但是不安全的。如果没

文档评论(0)

135****6041 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档