- 138
- 0
- 约1.97千字
- 约 7页
- 2020-10-06 发布于浙江
- 举报
实验四 数据更新
实验目的
1、掌握SQL语言的数据更新操作。
2、掌握创建索引的目的和方法。
实验预习
INSERT语句格式:
INSERT
INTO表名[(属性列1[,属性列2]……)]
VALUES(常量1[,常量2]…);
UPDATE语句格式:
UPDATE表名
SET 列名=表达式[,列名=表达式]…
[WHERE条件];
DELETE语句格式:
DELETE
FROM表名
[WHERE条件];
实验内容及要求
1、插入数据
(1)在学生表Student中插入数据:
Sno:9512102 Sname:刘晨 Ssex:男 Sage:20 Sdept:计算机系
INSERT
INTO student
VALUES(9512102,刘晨,男,20,计算机系);
(2)在课程表Course中插入数据:
Cno:C06 Cname:数据结构 Ccredit:5 Semster:4
INSERT
INTO course
VALUES(C06,数据结构,5,4,NULL);
(3)在选课表SC中插入95211班学生选修C04的选课信息。
提示:
多行数据插入,插入的数据的sno从student表中查询而来,插入的cno为“C04”
INSERT
INTO sc(sno,cno)
SELECT sno,C04 FROM student WHERE sno LIKE 95211%;
2、修改数据
(1)将所有学生的年龄增加1岁。
UPDATE student
SET sage=sage+1;
(2)修改“9512101”的“C01”课程成绩为85。
UPDATE sc
SET grade=85
WHERE sno=9512101 AND cno=C01;
(3)修改“王大力”的“计算机导论”课程成绩为70。
UPDATE sc
SET grade=70
WHERE sno IN(
SELECT sno
FROM student
WHERE sname=王大力 AND cno IN(
SELECT cno
FROM course
WHERE cname=计算机导论
)
);
(4)将所有平均分为75分以上的学生的各门课成绩在原来基础上加5分。
UPDATE sc
SET grade=grade+5
WHERE sno IN(SELECT sno FROM (SELECT sno FROM sc GROUP BY sno HAVING AVG(grade)75)AS a);
(5)修改“高等数学”课程倒数三名成绩,在原来分数上减5分。
UPDATE sc
SET grade=grade-5
WHERE cno IN(SELECT cno FROM course WHERE cname=高等数学)
AND grade IS NOT NULL
ORDER BY grade LIMIT 3;
3、删除数据
(1)删除“9531102”学生“C05”课程的成绩记录
DELETE FROM sc
WHERE sno=9531102 AND cno=C05;
(2)删除“张海”的所有成绩记录
DELETE FROM sc
WHERE sno IN(SELECT sno FROM student WHERE sname=张海);
(3)删除“数据库基础”的全部记录(包括课程信息,成绩信息)
DELETE FROM sc WHERE cno=(
SELECT cno FROM course
WHERE cname=数据库基础);
DELETE FROM course WHERE cname=数据库基础;
创建索引
导入rental表数据,在customer_id上建立普通索引(通过语句或表设计器均可)
查询customer_id=367的记录,记录查询时间:
有索引情况下的执行时间: 0.001s
CREATE INDEX customer_id_a ON rental(customer_id)
SELECT * FROM rental WHERE customer_id=367;
无索引情况下的执行时间: 0.001s
DROP INDEX customer_id_a ON rental
SELECT * FROM rental WHERE customer_id=367;
实验小结
解释说明“删除“数据库基础”的全部记录”的实现过程。
答:由于有外码约束,所以必须先删除成绩记录,再删除课程记录。
评阅成绩
原创力文档

文档评论(0)