第三章关系数据库标准语言SQL 3 集合查询数据更新_第1页
第三章关系数据库标准语言SQL 3 集合查询数据更新_第2页
第三章关系数据库标准语言SQL 3 集合查询数据更新_第3页
第三章关系数据库标准语言SQL 3 集合查询数据更新_第4页
第三章关系数据库标准语言SQL 3 集合查询数据更新_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、13.4 查 询 p3.4.1 单表查询p3.4.2 连接查询p3.4.3 嵌套查询p3.4.4 集合查询集合查询p3.4.5 SELECT语句的一般格式23.4.4 集合查询标准SQL直接支持的集合操作种类n并操作(UNION)一般商用数据库支持的集合操作种类n并操作(UNION)n交操作(INTERSECT)n差操作(MINUS)31 并操作p形式 UNION n参加UNION操作的各结果表的列数必须相同列数必须相同;对应项的数据类型也必须相同数据类型也必须相同4并操作(续)例48 查询计算机科学系的学生及年龄不大于19岁的学生。方法一: SELECT * FROM Student WHE

2、RE Sdept= CS UNION SELECT * FROM Student WHERE Sage=19;5并操作(续)方法二: SELECT DISTINCT * FROM Student WHERE Sdept= CS OR Sage=19;6并操作(续)例49 查询选修了课程1或者选修了课程2的学生。方法一: SELECT Sno FROM SC WHERE Cno= 1 UNION SELECT Sno FROM SC WHERE Cno= 2 ;7并操作(续)方法二: SELECT DISTINCT Sno FROM SC WHERE Cno= 1 OR Cno= 2 ;82 交

3、操作标准SQL中没有提供集合交操作,但可用其他方法间接实现。92 交操作例50 查询计算机科学系的学生与年龄不大于19岁的学生的交集本例实际上就是查询计算机科学系中年龄不大于19岁的学生 SELECT * FROM Student WHERE Sdept= CS AND Sage19;134. 对集合操作结果的排序pORDER BY子句只能用于对最终查询结果排序,不能对中间结果排序p任何情况下,ORDER BY子句只能出现在最后p对集合操作结果排序时,ORDER BY子句中用数字指定排序属性new14对集合操作结果的排序(续)例 错误写法 SELECT * FROM Student WHERE

4、 Sdept= CS ORDER BY Sno UNION SELECT * FROM Student WHERE Sage=19 ORDER BY Sno;new15对集合操作结果的排序(续)正确写法 SELECT * FROM Student WHERE Sdept= CS UNION SELECT * FROM Student WHERE Sage=19 ORDER BY 1;new163.4.6 SELECT语句的一般格式SELECT ALL|DISTINCT 别名 , 别名 FROM 别名 , 别名 WHERE GROUP BY , .HAVING ORDER BY ASC|DESC

5、 , ASC|DESC ;1718第三章 关系数据库标准语言SQL3.1 SQL概述3.2 学生课程数据库 3.3 数据定义3.4 数据查询3.5 数据更新数据更新3.6 视图3.8 小结193.5 数 据 更 新 3.5.1 插入数据3.5.2 修改数据3.5.3 删除数据 203.5.1 插入数据p两种插入数据方式n 插入单个元组n 插入子查询结果211. 插入单个元组p语句格式INSERTINTO (,)VALUES ( , )p功能 将新元组插入指定表中。22插入单个元组(续)例1 将一个新学生记录(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到St

6、udent表中。 INSERT INTO Student(sno,sname,ssex,sdept,sage) VALUES (200215128,陈冬,男,IS,18);23插入单个元组(续)例2 将学生张成民的信息插入到Student表中 INSERT INTO Student VALUES (200215126,张成民,男, 18 ,CS); 24插入单个元组(续)例3 插入一条选课记录( 200215128,1 )。 INSERT INTO SC(Sno,Cno) VALUES ( 200215128 , 1 ); 新插入的记录在Grade列上取空值25插入单个元组(续)p INTO子

7、句n指定要插入数据的表名及属性列n属性列的顺序可与表定义中的顺序不一致n没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致n指定部分属性列:插入的元组在其余属性列上取空值p VALUES子句n 提供的值必须与INTO子句匹配值的个数值的类型262. 插入子查询结果p语句格式 INSERT INTO ( , ) 子查询子查询;p功能 将子查询结果插入指定表中27插入子查询结果(续)例4 对每一个系,求学生的平均年龄,并把结果存入数据库。第一步:建表 CREATE TABLE Deptage (Sdept CHAR(15), /* 系名*/ Avgage SMALLIN

8、T); /*学生平均年龄*/ 28对每一个系,求学生的平均年龄SELECT SDEPT, AVG(SAGE)FROM STUDENTGROUP BY SDEPT29p每一个系,求学生的平均年龄SELECT SDEPT,AVG(SAGE)FROM STUDENTGROUP BY SDEPT30插入子查询结果(续)第二步:插入数据 INSERT INTO Deptage(Sdept,Avgage) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;31插入子查询结果(续)nINTO子句(与插入单元组类似)p指定要插入数据的表名及属性列p属性列的顺

9、序可与表定义中的顺序不一致p没有指定属性列:表示要插入的是一条完整的元组p指定部分属性列:插入的元组在其余属性列上取空值n 子查询pSELECT子句目标列必须与INTO子句匹配 值的个数 值的类型32插入子查询结果(续)DBMS在执行插入语句时, 会检查所插元组是否破坏表上已定义的完整性规则n实体完整性n参照完整性n用户定义的完整性p对于有NOT NULL约束的属性列是否提供了非空值p 对于有UNIQUE约束的属性列是否提供了非重复值p 对于有值域约束的属性列所提供的属性值是否在值域范围内333.5 数 据 更 新 3.5.1 插入数据3.5.2 修改数据3.5.3 删除数据 343.5.2

10、修改数据p语句格式 UPDATE SET =,= WHERE ;p功能修改指定表中满足WHERE子句条件的元组35修改数据(续)p三种修改方式n修改某一个元组的值n修改多个元组的值n带子查询的修改语句361. 修改某一个元组的值例5 将学生200215121的年龄改为22岁。 UPDATE Student SET Sage=22 WHERE Sno= 200215121 ; 372. 修改多个元组的值例6 将所有学生的年龄增加1岁。 UPDATE Student SET Sage= Sage+1;38修改多个元组的值(续)例 将信息系所有学生的年龄增加1岁。 UPDATE Student SE

11、T Sage= Sage+1 WHERE Sdept= IS ;393. 带子查询的修改语句例7 将计算机科学系全体学生的成绩置零。 UPDATE SC SET Grade=0 WHERE CS= (SELETE Sdept FROM Student WHERE Student.Sno = SC.Sno);40修改数据(续)nSET子句 指定修改方式 要修改的列 修改后取值nWHERE子句指定要修改的元组缺省表示要修改表中的所有元组41修改数据(续)DBMS在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则n实体完整性n主码不允许修改n用户定义的完整性p NOT NULL约束p UN

12、IQUE约束p 值域约束423.5 数 据 更 新 3.5.1 插入数据3.5.2 修改数据3.5.3 删除数据 433.5.3 删除数据 DELETE FROM WHERE ;功能w删除指定表中满足WHERE子句条件的元组WHERE子句w指定要删除的元组w缺省表示要修改表中的所有元组44删除数据(续)p三种删除方式n删除某一个元组的值n删除多个元组的值n带子查询的删除语句451. 删除某一个元组的值例8 删除学号为200215128的学生记录。 DELETE FROM Student WHERE Sno=200215128;462. 删除多个元组的值例9 删除所有的学生选课记录。 DELETE FROM SC;例 删除2号课程的所有选课记录。 DELETE FROM SC WHERE Cno=2;473. 带子查询的删除语句例10 删除计算机科学系所有学生的选课记录。 DELETE FROM S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论