您的当前位置:首页正文

数据更新(二)

来源:华拓网


【知识点】

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. 把“刘晨”同学的成绩全部删除(假设只有一个“刘晨”)

因篇幅问题不能全部显示,请点此查看更多更全内容