数据库原理课件--03-SQL(2)-ok.ppt
文本预览下载声明
* 修改数据(续) DBMS在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则 实体完整性 参照完整性 用户定义的完整性 NOT NULL约束 UNIQUE约束 值域约束 返回 * 3.5.3 删除数据 语法格式 DELETE FROM 表名 [WHERE 条件] 功能 删除指定表中满足WHERE子句条件的元组 WHERE子句 指定要删除的元组 缺省表示要修改表中的所有元组,表的定义仍然存在 将元组整个删除,而不是仅删除某些属性上的值。 * 删除数据(续) 三种删除方式 删除某一个元组的值 删除多个元组的值 带子查询的删除语句 返回 * 1. 删除某一个元组的值 [例8] 删除学号为95019的学生记录。 DELETE FROM Student WHERE Sno=95019 返回 * 2. 删除多个元组的值 [例9] 删除2号课程的所有选课记录。 DELETE FROM SC WHERE Cno=2 返回 [例10] 删除所有的学生选课记录。 DELETE FROM SC 思考:删除表中所有记录和删除表两个动作间有何区别? * 3. 带子查询的删除语句 [例11] 删除计算机科学系所有学生的选课记录。 DELETE FROM SC WHERE CS= (SELECT Sdept FROM Student WHERE Student.Sno=SC.Sno) 返回 * * 集合查询(续) [例50] 实际上就是查询计算机科学系中年龄不大于19岁的学生 SELECT * FROM Student WHERE Sdept= CS AND Sage=19; * 集合查询(续) [例51] 查询选修课程1的学生集合与选修课程2的学生集合的交集 SELECT Sno FROM SC WHERE Cno= 1 INTERSECT SELECT Sno FROM SC WHERE Cno=2 ; * 集合查询(续) [例51]实际上是查询既选修了课程1又选修了课程2的学生 SELECT Sno FROM SC WHERE Cno= 1 AND Sno IN (SELECT Sno FROM SC WHERE Cno= 2 ) * 集合查询(续) [例52] 查询计算机科学系的学生与年龄不大于19岁的学生的差集。 SELECT * FROM Student WHERE Sdept=CS EXCEPT SELECT * FROM Student WHERE Sage =19; * 集合查询(续) [例52]实际上是查询计算机科学系中年龄大于19岁的学生 SELECT * FROM Student WHERE Sdept= CS AND Sage19; * 对集合操作结果的排序 ORDER BY子句只能用于对最终查询结果排序,不能对中间结果排序 任何情况下,ORDER BY子句只能出现在最后 * 对集合操作结果的排序(续) 正确写法 SELECT * FROM Student WHERE Sdept= CS UNION SELECT * FROM Student WHERE Sage=19 ORDER BY Sno * 3.4.6 SELECT语句的一般格式 SELECT [ALL|DISTINCT] 目标列表达式 [别名] [ ,目标列表达式 [别名]] … FROM 表名或视图名 [别名] [ ,表名或视图名 [别名]] … [WHERE 条件表达式] [GR
显示全部