[工学]第三章 关系数据库标准语言SQL-3修改和视图

上传人:油条 文档编号:49697283 上传时间:2018-08-01 格式:PPT 页数:46 大小:183.50KB
返回 下载 相关 举报
[工学]第三章 关系数据库标准语言SQL-3修改和视图_第1页
第1页 / 共46页
[工学]第三章 关系数据库标准语言SQL-3修改和视图_第2页
第2页 / 共46页
[工学]第三章 关系数据库标准语言SQL-3修改和视图_第3页
第3页 / 共46页
[工学]第三章 关系数据库标准语言SQL-3修改和视图_第4页
第4页 / 共46页
[工学]第三章 关系数据库标准语言SQL-3修改和视图_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《[工学]第三章 关系数据库标准语言SQL-3修改和视图》由会员分享,可在线阅读,更多相关《[工学]第三章 关系数据库标准语言SQL-3修改和视图(46页珍藏版)》请在金锄头文库上搜索。

1、上海第二工业大学 计算机与信息学院数据库系统概论 An Introduction to Database System第三章 关系数据库标准语言SQL (续2)An Introduction to Database System第三章 关系数据库标准语言SQL3.1 SQL概述 3.2 数据定义 3.3 查询 3.4 数据更新 3.5 视图An Introduction to Database System3.4 数 据 更 新 3.4.1 插入数据3.4.2 修改数据3.4.3 删除数据 An Introduction to Database System3.4.1 插入数据n两种插入数据方

2、式n 插入单个元组n 插入子查询结果An Introduction to Database System1. 插入单个元组n语句格式INSERTINTO (,)VALUES ( , )n功能将新元组插入指定表中。An Introduction to Database System插入单个元组(续)例1 将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS ;年龄:18岁)插入到Student表中。INSERTINTO StudentVALUES (95020,陈冬,男,IS, 18);An Introduction to Database System插入单个元组(续)例2

3、插入一条选课记录( 95020,1 ) 。INSERTINTO SC(Sno,Cno)VALUES ( 95020 , 1 );新插入的记录在Grade列上取空值An Introduction to Database System插入单个元组(续)n INTO子句n指定要插入数据的表名及属性列n属性列的顺序可与表定义中的顺序不一致n没有指定属性列:表示要插入的是一条完 整的元组,且属性列属性与表定义中的顺序一致n指定部分属性列:插入的元组在其余属性 列上取空值n VALUES子句n 提供的值必须与INTO子句匹配值的个数值的类型An Introduction to Database Syste

4、m2. 插入子查询结果n语句格式INSERT INTO ( , )子查询;n功能将子查询结果插入指定表中An Introduction to Database System插入子查询结果(续)例3 所有学生均选修了课程号为 “IT”开始的所有课程,把此选课信 息插入SC中 INSERT INTO sc (sno,cno) SELECT a.sno,o FROM student a ,course b WHERE o LIKE IT%An Introduction to Database System3.4 数 据 更 新 3.4.1 插入数据3.4.2 修改数据3.4.3 删除数据 An In

5、troduction to Database System3.4.2 修改数据n语句格式UPDATE SET =,=WHERE ;n功能 修改指定表中满足WHERE子句条件的元组An Introduction to Database System修改数据(续)n三种修改方式n修改某一个元组的值n修改多个元组的值n带子查询的修改语句An Introduction to Database System1. 修改某一个元组的值例4 将学生95001的年龄改为22岁。UPDATE StudentSET Sage=22WHERE Sno= 95001 ; An Introduction to Datab

6、ase System2. 修改多个元组的值例5 将所有学生的年龄增加1岁。UPDATE StudentSET Sage= Sage+1;An Introduction to Database System修改多个元组的值(续)例6 将信息系所有学生的年龄增加1岁 。UPDATE StudentSET Sage= Sage+1WHERE Sdept= IS ;An Introduction to Database System3. 带子查询的修改语句例7 将IS系全体学生的成绩置零。 UPDATE scSET Grade=0WHERE sno IN (SELETE sno FROM Studen

7、t WHERE sdept =IS)An Introduction to Database System4.用子查询结果更新例8在student中增加一个平均成绩列 avggrade,根据SC计算IS系的每个学生的平 均成绩并更新student该列值。 UPDATE student SET avggrade=(SELECT avg(grade) FROM sc WHERE sc.sno=students.sno) WHERE cdept=ISAn Introduction to Database System3.4 数 据 更 新 3.4.1 插入数据3.4.2 修改数据3.4.3 删除数据

8、An Introduction to Database System3.4.3 删除数据DELETEFROM WHERE ;功能w删除指定表中满足WHERE子句条件 的元组WHERE子句w指定要删除的元组w缺省表示要修改表中的所有元组An Introduction to Database System删除数据(续)n三种删除方式n删除某一个元组的值n删除多个元组的值n带子查询的删除语句An Introduction to Database System1. 删除某一个元组的值例9 删除学号为95019的学生记录。DELETEFROM StudentWHERE Sno=95019;An Intr

9、oduction to Database System2. 删除多个元组的值例10 删除2号课程的所有选课记录。DELETEFROM SC;WHERE Cno=2;例11 删除所有的学生选课记录。DELETEFROM SC;An Introduction to Database System3. 带子查询的删除语句例12 删除IS系所有学生的选课记录。 DELETE FROM SC WHERE sno IN (SELETE sno FROM Student WHERE sdept =IS)An Introduction to Database System第三章 关系数据库标准语言SQL3.1

10、 SQL概述 3.2 数据定义 3.3 查询 3.4 数据更新 3.5 视图An Introduction to Database System3.5 视 图 视图的特点n虚表,是从一个或几个基本表(或视图 )导出的表n只存放视图的定义,不会出现数据冗余n基表中的数据发生变化,从视图中查询 出的数据也随之改变An Introduction to Database System3.5 视 图基于视图的操作n 查询n 删除n 受限更新n定义基于该视图的新视图An Introduction to Database System3.5 视 图3.5.1 定义视图3.5.2 查询视图3.5.3 更新视图

11、3.5.4 视图的作用An Introduction to Database System1. 建立视图n语句格式CREATE VIEW ( ,)AS WITH CHECK OPTION;An Introduction to Database System建立视图(续)DBMS执行CREATE VIEW语句时只是把视图的定义存入数据字典,并不执行其中的SELECT语句。在对视图查询时,按视图的定义从基本表中将数据查出。An Introduction to Database System例:把对所有学生及所有选修课程的 成绩定义成视图n建立视图: CREATE VIEW v_allgrade A

12、S SELECT a.sno,a.sname,ame,c.grade FROM student a,course b,sc c WHERE a.sno=c.sno AND o=on查询视图: SELECT * FROM v_allgradeAn Introduction to Database System组成视图的属性列名n把所有学生所有课程的平均成绩定义成视 图: CREATE VIEW v_avggrade (sno,sname,avggrade) AS SELECT a.sno,a.sname,avg(c.grade) FROM student a,course b,sc c WHER

13、E a.sno=c.sno AND o=o GROUP BY a.sno,a.snameAn Introduction to Database System2. 删除视图nDROP VIEW ;n该语句从数据字典中删除指定的视图定义n由该视图导出的其他视图定义仍在数据字典中,但已不能使用,必须显式删除n删除基表时,由该基表导出的所有视图定义都必须显式删除An Introduction to Database System3.5 视 图3.5.1 定义视图3.5.2 查询视图3.5.3 更新视图3.5.4 视图的作用An Introduction to Database System查询视图n与

14、基本表的查询的相同n可以和其他表和视图一起进行多表查询An Introduction to Database System3.5 视 图3.5.1 定义视图3.5.2 查询视图3.5.3 更新视图3.5.4 视图的作用An Introduction to Database System3.5.3 更新视图n更新视图与更新基本表相同n对视图的更新事实上是对其对应子查询中的基本表的更新,即对视图的更新必须能被转换为对基本表的更新n所以对视图的更新是有限制的An Introduction to Database System实际系统对视图更新的限制(1) 若视图是由两个以上基本表导出的,则此 视图不

15、允许更新。(2) 若视图的字段来自字段表达式或常数,则 不允许对此视图执行INSERT和UPDATE操作 ,但允许执行DELETE操作。(3) 若视图的字段来自集函数,则此视图不允 许更新。An Introduction to Database System更新视图(续)(4) 若视图定义中含有GROUP BY子句,则此视图不允许更新。(5) 若视图定义中含有DISTINCT短语,则此视图不允许更新。(6) 若视图定义中有嵌套查询,并且内层查询的FROM子句中涉及的表也是导出该视图的基本表,则此视图不允许更新。(7) 一个不允许更新的视图上定义的视图也不允许更新 An Introduction

16、 to Database SystemWITH CHECK OPTIONn建立“IS”系学生的视图CREATE VIEW v_isstudentAS SELECT Sno,Sname,Sage,SdeptFROM StudentWHERE Sdept= ISWITH CHECK OPTIONAn Introduction to Database SystemWITH CHECK OPTION 对v_isstudent视图的更新操作的影响n插入操作:以下插入语句仅第一句能成功insert into v_isstudent (sno,sname,sdept) values (95006 , 吴月明,IS)insert into v_isstudent (sno,sname,sdept) valu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号