【知识点】
3、删除语句
(1)DELETE [FROM] <表名> [WHERE <删除条件>]
(2)TRUNCATE TABLE <表名>
区别:
(1) TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。
(2) TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
比较:TRUNCATE、DELETE、DROP
TRUNCATE TABLE:删除内容不删除定义、释放空间。
DELETE :删除内容不删除定义,不释放空间。
DROP TABLE:删除内容和定义,释放空间
4、子查询在INSERT、UPDATE、DELETE语句中的应用
例:
1、统计选修了课程的每个学生的平均成绩并插入空表stuMarks_temp中(表中有二个字段:学号stuNo,平均成绩avg_stuScore)。
INSERT INTO stuMarks_temp(stuNo,avg_stuSCore)
SELECT stuNo,AVG(stuScore)
FROM stuMarks
GROUP by stuNo
2、把所有女生的选修成绩都加5分
UPDATE stuMarks
SET stuScore=+5
WHERE stuNo IN(SELECT stuNo
FROM stuInfo
WHERE stuSex=’女’)
3、删除‘李明’的所有选修记录(假设没有同名情况)
DELETE stuMarks
WHERE stuNo IN(SELECT stuNo
FROM stuInfo
WHERE stuName=’李明’)
【课堂实践】
1. 将“李勇”同学的专业改为“计算机信息管理”(假设只有一个“李勇”)
2. 将“20050201”学生选修“C03”号课程的成绩改为该课的平均成绩
3. 把成绩低于总平均成绩的女同学的成绩提高5%
4. 把选修了“数据库”课程而成绩不及格的学生的数据库课成绩全改为空值(NULL)
5. 删除学号为“20050302”的学生记录(注意删除顺序!)
6. 删除“计算机系”所有学生的选课记录
7. 删除SC表中还没有成绩的选课记录
8. 把“刘晨”同学的成绩全部删除(假设只有一个“刘晨”)
truncate的区别9.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论