《数据库系统概论》实验报告书 安徽工业大学计算机学院
WHERE SCORE.SNO=STUDENT.SNO AND SCORE.CNO=COURSE.CNO ) );
没有满足条件的结果。
例3-47:(相关子查询) 求至少选修了学生 ‘96002’ 所选修的全部课程的学生的学号。 SELECT DISTINCT SNO FROM SCORE SC1 WHERE NOT EXISTS( SELECT * FROM SCORE SC2 WHERE SC2.SNO='96002' AND NOT EXISTS(
SELECT * FROM SCORE SC3 WHERE SNO=SC1.SNO AND CNO=SC2.CNO));
例3-48:(相关子查询) 求成绩比所选修课程平均成绩高的学生的学号、课程号、和成绩。 SELECT SNO,CNO,SCORE FROM SCORE SC1 WHERE EXISTS(
SELECT * FROM SCORE SC2
20/19
《数据库系统概论》实验报告书 安徽工业大学计算机学院
GROUP BY CNO
HAVING SC1.SCORE>AVG(SCORE) AND CNO=SC1.CNO);
例3-49:(相关子查询) 查询被一个以上的学生选修的课程号。
SELECT CNO FROM COURSE WHERE EXISTS (SELECT * FROM SCORE GROUP BY CNO HAVING COUNT(SNO)>1 AND CNO=COURSE.CNO);
例3-50:(相关子查询) 查询所有未选课程的学生姓名和所在系 SELECT SNAME,SDEPT FROM STUDENT WHERE NOT EXISTS(
21/19
《数据库系统概论》实验报告书 安徽工业大学计算机学院
SELECT * FROM SCORE
WHERE SCORE.SNO=STUDENT.SNO);
22/19
《数据库系统概论》实验报告书 安徽工业大学计算机学院
[ 实验要求 ]
对数据库表进行各种查询操作。 [ 实验方法 ]
① 将实验需求用SQL语句表示; ② 执行SQL语句;
③ 查看执行结果,如果结果不正确,进行修改,直到正确为止。
[ 实验总结 ]
此次实验练习使用了SQL语句按所给要求在基本表里面进行查找,实验涉及到选择表中的若干列、不选择重复行、 选择表中的所有列、使用表达式、使用列的别名、比较大小条件、确定范围条件、确定集合条件、匹配查询、空值查询、控制行的显示顺序、组函数、分组查询、连接查询、自身连接查询、外部连接查询、子查询、连接或嵌套查询、嵌套与分组查询、集合查询、相关子查询。使用SQL语句进行查询,首先要对查询的要求进行分析,这需要好的逻辑,能够正确分析问题,对于复杂的问题运用相关的查询语句逐层进行剖析,一步步整理出层次。在语句书写时应注意书写格式,这样能很清晰的看出语句的层次,这样也有利于修改.
23/19
《数据库系统概论》实验报告书 安徽工业大学计算机学院
实验四:视图、授权控制与事务处理
[ 实验日期 ] 2014 年 11 月 5 日 [ 实验目的 ]
通过实验进一步理解视图的建立和更新、数据库的权限管理和事务处理功能。 [ 实验内容 ]
4. SQL视图的定义与操纵:
例4-1: (建立视图) 建立计算机系的学生的视图STUDENT_CS。
CREATE VIEW STUDENT_CS AS SELECT * FROM STUDENT WHERE SDEPT='CS';
例4-2: (建立视图) 建立由学号和平均成绩两个字段的视图STUDENT_GR。
CREATE VIEW STUDENT_GR(SNO,GAVG) AS SELECT SNO,AVG(SCORE) FROM SCORE
GROUP BY SNO;
例4-3: (视图查询) 利用视图STUDENT_CS,求年龄大于19岁的学生的全部信息。
SELECT * FROM STUDENT_CS WHERE SAGE>19;
24/19