1.求选修了老师“王刚”开课课程且成绩在90分以上的学生姓名、课程名称和成绩;(姓名,课程名,成绩)
2.求选修了“王刚”老师所授全部课程的学生姓名和学院名称;(姓名,学院名称)
3.求没有选修课程“软件工程”的学生学号和姓名;(学生学号,姓名)
4.求至少选修了两门课程的学生学号;(学号)
5.求课程“经济学”不及格学生姓名和考试成绩;(姓名,成绩)
6.求至少选修了与学号“T06” 同学选修的课程相同的学生学号;(学号)
7.求至少选修了“C3,C4”两门课程的学生姓名和学院名称;(姓名,学院名称)
8.查询“王石”同学没有选修的课程号和课程名; (课程号,课程名)
9.查询没有被任何学生选修的课程的课程号;(课程号)
10.求选修了全部课程的学生姓名;(姓名)
11.查询各学院课程“经济学”的平均分,并按照成绩从高到低的顺序排列;(学院名称,平均分)
12.查询选修课程“经济学”的学生姓名和所在院系,结果按各院系排列,同时成绩从高到低排列;(姓名,学院名称,成绩)
13.求学时在30-45之间(含30和45)的课程的课程号和课程名称及授课教师;(课程号,课程名,教师姓名)
14.检索选修课程“经济学”的最高分学生的姓名;(姓名)
15.查询选课人数超过5人的课程的课程号及课程名;(课程号,课程名)
二、 实验目的
使用SQL语句进行各种查询 1、熟练掌握单表查询,包括 (1) 选择表中的若干列(投影)
(2) 选择表中的若干元组(选择) (3) 对查询结果排序 (4) 使用集函数 (5) 对查询结果分组 2、熟练掌握复杂查询,包括 1) 等值与非等值连接查询
2) 自身连接:一个表与其自己进行连接。 3) 外连接查询
4) 复合条件连接:WHERE 子句中可以有多个连接条件。 3、熟练掌握嵌套查询,包括 1) 带有IN谓词的子查询
2) 带有比较运算符的子查询(子查询一定要跟在比较符之后)3) 带有ANY或ALL谓词的子查询(使用ANY和ALL时必须同时使用比较运算符)
4) 带有EXISTS谓词的子查询(查询结果不返回任何数据,只产生逻辑“真”或“假”) 三、实验步骤及运行结果 1.
四、实验体会
本次实验使我掌握了表的查询操作,以及对查询结果进行排序,分组等处理,这次的实验难度比较大,对于EXISTS,除法,等一些较难的查询操作,总是理解不够,容易出错,这
提醒我平时要多上机实践,才能更好的理解和掌握SQL语句。