一、数据查询
1.无条件查询
[题01] 查询全体学生的详细记录。(注:无条件的选择查询)
[题02] 查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。(注:无条件的投影查询)
[题03] 查询全体学生的学号(Sno)、姓名(Sname)及出生年份。(注:由于 SELECT 子句的<目标列表达式>不仅可以是表中的属性列,也可以是表达式,故可以查询经过计算的值。)
[题04] 查询全体学生的学号、姓名、出生年份和所在系,要求用小写字母表示所有系名。
[题05]?查询选修了课程的学生学号。
2.条件查询
[题06]?查询数学系(MA)全体学生的学号(Sno)和姓名(Sname)。。
[题07]?查询考试成绩有不及格的学生的学号。
[题08]?查询所有年龄在 20 岁以下的学生姓名(Sname)及年龄(Sage)。
?[题09]?查询所有年在 18-20 岁(包括 18 岁和 20 岁)之间的学生姓名(Sname)及年龄(Sage)。
[题10]?查询年龄不在 18-20 岁之间的学生姓名(Sname)及年龄(Sage)。
[题11]?查询计算机系、数学系和信息系学生的学号(Sno)、姓名(Sname)和性别(Ssex)。其语句为:
[题12]?查询既不是信息系 (IS)、数学系 (MA)、也不是计算机系 (CS)的学生的姓名(Sname)和性别(Ssex)。
[题13]?查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。
[题14]?查询姓“刘”且全名为4 个汉字的学生的姓名(Sname)和所在系(Sdept)。
[题15]?查询课程名为“DB 设计”的课程号(Cno)和学分(Ccredit)。
[题16]?假设某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。试查询缺少成绩的学生的学号(Sno)和相应的课程号(Cno)。
3.查询结果排序
[题17]?查询选修了3 号课程的学生的学号(Sno)和成绩(Grade),并按成绩降序排列。
[题18]?查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列,同一系中的学生按年龄(Sage)降序排列。
4.聚集函数的使用
[题19]?查询学生总人数。
[题20]?查询选修了课程的学生人数。
[题21]?查询学生 200215122 选修课程的总学分数。
4.查询结果分组
[题22]?求各个课程号(Cno)及相应的选课人数。
[题23]?查询选修了 3 门或3 门以上课程的学生学号(Sno)。
二、连接查询
1.不同表之间的连接查询
[题01] 查询每个学生及其选修课程的情况。(注:本查询实际上是涉及 Student 与 SC 两个表的连接操作。这两个表之间的联系是通过公共属性Sno实现)
2.自身连接
[题02] 查询每一门课的间接先修课(即先修课的先修课)。(注:在 Course 表关系中,只有每门课的直接先修课信息,而没有先修课的先修课。要得到这个信息,必须先对一门课找到其先修课,再按此先修课的课程号,查找它的先修课程。这就需要要将 Course 表与其自身连接。为方便连接运算,这里为 Course 表取两个别名分别为 A,B)
3.复合条件查询
[题03] 查询每个学生的学号(Sno)、姓名(Sname)、选修的课程名(Cname)及成绩(Grade)。
三、嵌套查询
1.带谓词IN的嵌套查询
[题04] 查询与“李伟”在同一个系学习的学生学号(Sno)、姓名(Sname)和系名(Sdept)。
[题05]?查询选修了课程名为“数据结构”的学生学号(Sno)和姓名(Sname)。(注:本查询涉及学号、姓名和课程名(Cname)三个属性。学号和姓名存放在 Student 表中,课程名的存放在Course 表中,但 Student 与 Course 两个表之间没有公共属性,必须通过 SC 表建立它们之间的联系。所以本查询实际上涉及三个关系的连接操作。)
2.带比较运算符的嵌套查询
[题06]?用带有比较运算符的嵌套查询实现:查询与“李伟”在同一个系学习的学生学号(Sno)、姓名(Sname)和系名(Sdept)。(注:由于一个学生只可能在一个系学习,因此子查询的结果是一个值,因此可以用=代替IN)
3.带调词 ANY或ALL 的套查询
[题07]?查询计算机系(CS)的不超过自动化系所有学生的年的学生姓名(Sname)和年龄(Sage)。
4.带谓词 EXISTS 的套查询
[题08]?查询所有选修了编号为“1”课程的学生姓名(Sname)和所在系(Sdept)。
四、集合查询
?[题09]?查询计算机系(CS)的学生或年龄不大于 20 岁的学生信息。
五、数据更新
1.插入数据
[题10]?将学生陈冬的信息(学号:200215128: 姓名:陈冬:性别:男;所在系:IS:年龄:18 岁)插入到 Student 表中。
[题11]?插入一条选课记录 (200215128’,1)。
[题12]?对每一个系,求学生的平均年龄,并把结果存入表文件 Dept_age 中。Dept_age 表文件属性为: Sdept (系名)、Avg_age (平均年龄)。
2.修改数据
[题13]?将学号为“200215121”的学生年龄改为 22 岁。即要修改满足条件的一个元组的属性值。
[题14]?将所有学生的年龄增加1岁。即要修改多个元组的值。
3.删除数据
[题15]?删除学号为 200215128 的学生记录。