HBU数据库 实验4 嵌套查询和数据更新

HBU数据库 实验4 嵌套查询和数据更新

实验目的:
1.熟练掌握SQL Server查询分析器的使用方法,加深对标准SQL查询语句的理解。
2.熟练掌握简单表的数据嵌套查询和数据更新的操作方法。
实验内容:
创建教学管理数据库“JXGL”,在“JXGL”数据库中创建3-2中的三张表并添加数据,实现数据的单表查询操作。
实验步骤:
在教学管理“JXGL”数据库中写出下列操作的SQL语句
注:s=student表,根据个人建表修改

1、查询其它系中比计算机系所有同学年龄都小的学生的学号、姓名和所在系;

SELECT Sno,Sname,Sdept FROM s WHERE Sage

2、查询1号课的选课成绩高于1号课平均成绩的同学的学号和成绩;

SELECT Sno,Grade FROM sc WHERE Grade>
(SELECT AVG(Grade) FROM sc WHERE Cno=1)

3、查询年龄大于所在系平均年龄的同学的学号、姓名和所在系;

SELECT Sno,Sname,Sdept FROM s x WHERE Sage>
(SELECT AVG(Sage) FROM s y WHERE x.Sdept=y.sdept)

4、查询选修了全部课程的学生的学号和姓名;

SELECT s.Sno,Sname FROM s WHERE NOT EXISTS(SELECT* FROM c
WHERE NOT EXISTS(SELECT* FROM sc WHERE sc.Sno=s.Sno AND Cno=c.Cno))

5、查询选修了201215122选修的全部课程的学生的学号;(选做)

SELECT DISTINCT Sno FROM sc scx WHERE NOT EXISTS(SELECT * FROM sc scy
WHERE scy.Sno=’201215122‘ AND NOT EXISTS(SELECT* FROM sc scz
WHERE scz.Sno=scx.Sno AND scz.Cno=scy.Cno))

6、验证union、intersect、except;(略)

7、新建表sno_avg,表中包含学号和平均成绩两列;把有选课记录的同学的学号和所选课程的平均成绩插入到sno_avg表中;

CREATE TABLE sno_avg
(Sno CHAR(5),
grade CHAR(10));
INSERT INTO sno_avg(Sno,grade)
SELECT Sno,AVG(Grade) FROM sc GROUP BY Cno

8、把所有“数据库”课程的选课成绩置成零分;

UPDATE sc
SET Grade=0 WHERE Cno IN
(SELECT Cno FROM c WHERE Cname=‘数据库’)

9、删除“数据库”课程的选课记录;

DELETE
FROM sc WHERE Cno IN
(SELECT Cno FROM c WHERE Cname=‘数据库’)

10、验证违反约束的更新操作:(略)

A、insert 语句违反约束;
B、Update 语句违反约束;
C、Delete 语句违反约束;

你可能感兴趣的:(HBU数据库 实验4 嵌套查询和数据更新)