文档库

最新最全的文档下载
当前位置:文档库 > 查询练习

查询练习

SQL查询练习

一、有三个关系,试用关系代数表达式表示下列查询语句:

S(sno,sname,age,sex,sdept)

C(cno,cname,cdept,tname) tname表示授课老师名

SC(sno,cno,grade)

(1) 检索年龄小于22岁的男学生的学号与姓名。

(2) 检索学号为S3学生所学课程的课程名与任课教师名。

(3) 检索JIANG老师所授课程的课程号、课程名。

(4) 检索至少选修JIANG老师所授课程中一门课的男学生姓名。

(5) 检索ZHNAG同学不学的课程的课程号。

(6) 检索全部学生都选修的课程的课程号、课程名。

(7) 检索选修课程包含JIANG老师所授课程的学生学号。

(8) 检索至少选修两门课程的学生学号。

(9) 查询至少选修了2号课程和8号课程的学生姓名。

(10) 查询张红的年龄。

(11) 查询李明同学不及格的课程名称。

(12) 查询选修了“计算机网络”的学生姓名。

(13) 查询“计算机网络”成绩在90分以上的学生姓名。

二、设有下列四个关系模式:

S (SNO, SNAME, CITY);

P (PNO, PNAME, COLOR, WEIGHT);

J (JNO, JNAME, CITY);

SPJ(SNO, PNO, JNO, QTY)。

其中,供应商关系S由供应商号(SNO)、供应商姓名(SNAME)、供应商所在城市(CITY)组成。零件关系P由零件号(PNO)、零件名称(PNAME)、零件颜色(COLOR)、零件重量(WEIGHT)组成,用于记录各种零件的情况。项目关系J由项目号(JNO)、项目名称(JNAME)、项目所在城市(CITY) 组成。供应情况关系SPJ由供应商号(SNO)、零件号(PNO)、项目号(JNO)、供应数量(QTY) 组成。试用关系代数表达式完成以下操作:

(1) 检索供应项目J2零件的供应商号(SNO)。

(2) 检索供应项目J2零件P2的供应商号(SNO)。

(3) 检索供应项目J2黑色零件的供应商姓名(SNAME)。

(4) 检索没有使用天津供应商生产的黑色零件的项目号(JNO)。

(5) 检索使用了S1供应所供应的全部零件的项目名称(JNAME)。

三、对student、course、scg三个表用SQL完成以下操作:

student(sno,sname,age,sex,sdept)

course(cno,cname,pcno,ccredit,cdept,tname)

scg(sno,cno,grade)

1.创建关系表stu1(sno,sname,ssex,sbirth,sdept)。

2.对student按姓名建立索引。

3.查询信息系所有年龄不大于21岁的女生。

4.查询1982年出生的男生的姓名。

5.查询信息系、金融系所有姓“王”的同学的姓名和年龄。

6.查询姓“王”的男同学的人数。

7.查询2号课程的最低分。

8.查询总分最高的学生的学号。

9.查询每个同学的平均分。

10.查询每个同学所选修的课程门数。

11.查询“计算机网络”90分以上的同学的姓名。

12.查询每门课程的课程名及选修人数。

13.查询选修了全部课程的学生姓名。

14.查询总学分已超过40学分的学生学号、姓名、总学分。

15.查询至少选修了学生“20021710233”选修的全部课程的学生姓名。

16.查询其他系中比“cs”系任一学生年龄都小的学生名单。

17.查询每一个同学的学号、姓名、选修的课程名及分数。

18.查询信息系学生或年龄小于20岁的学生。

19.查询信息系学生与年龄小于20岁学生的交集。

20.查询信息系学生与年龄小于20岁学生的差集。

21.向student增一新生(“20021710146”,“王飞”,“男”,12/22/1985,“is”)22.删除“李军”同学的所有信息。

23.为信息系所有男生建一视图vs_ism。

24.利用视图vs_ism查询信息系“王强”同学。

25.查询年龄在25-30之间的学生姓名及性别。

SELECT sname,ssex FROM student WHERE sbirth BETWEEN 25 AND 30;26.查询姓“欧阳”的学生。

SELECT * FROM student WHERE sname like ‘欧阳%’;

27.查询信息系is,数学系ma和计算机系cs的学生。

SELECT * FROM student WHERE sdept IN (‘is’,’ma’,’cs’);

28.检索蒋炎焱老师所授课程的课程号和课程名。

29.检索年龄大于23岁的男学生的学号和姓名。

30.检索至少选修蒋炎焱老师所授课程中一门课程的女学生姓名。

31.检索wang同学不学的课程的课程号。

32.检索至少选修两门课程的学生学号。

33.检索全部学生都选修的课程的课程号与课程名。

34.检索选修课程包含蒋炎焱老师所授课程的学生学号。

35.统计有学生选修的课程门数。

36.求选修5号课程的学生的平均年龄。

37.求蒋炎焱老师讲授的每门课程的学生平均成绩。

38.统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。

39.检索学号比wang同学大,而年龄比他小的学生姓名。

40.检索姓名以wang打头的所有学生的姓名和年龄。

41.在scg中检索成绩为空值的学生学号和课程号。

42.求年龄大于女同学平均年龄的男学生姓名和年龄。

43.求年龄大于所有女同学年龄的男学生姓名和年龄。

44.在基本表student中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表student2(sno,sname,sex)。

45.在基本表scg中删除尚无成绩的选课元组。

46.把wang同学的选课和成绩全部删去。

47.把选修maths课不及格的成绩全改为空值。

48.把低于总平均成绩的女同学成绩提高5%。

49.在基本表scg中修改3号课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDA TE语句实现)。

四、假设工程一零件数据库中有五个基本表:

供应商supplier (供应商号,姓名,所在城市,联系电话)

工程project (工程号,工程名,负责人,预算,日期)

零件part (零件号,零件名,规格,产地,颜色);

工程零件p_p (工程号,零件号,数量)

采购p_s(零件号,供应商号,数量)

试用SQL语句完成下列操作:

1.试用SQLDDL语句定义上述五个基本表,并说明主键和外键。

2. 查找预算在5000-10000元之间的工程的信息,并将结果按预算降序排列。

3. 找出使用供应商si所供零件的工程号。

4. 找出工程项目j2使用的各种零件名称及其数量。

5. 找出上海厂商供应的所有零件号。

6. 找出使用上海产的零件的工程名称。

7. 找出没有使用天津产零件的工程号。

8. 把全部红色零件的颜色改成蓝色。

9.将由供应商s5供给工程号为j4的零件p6改为由s3供应,并作其他必要的修改。

10.从供应商关系中删除s2的记录,并从工程零件关系中删除相应的记录。

11. 找出天津市供应商的姓名和电话。

12.试将project、p_p、part三个基本表的自然联接定义为一个视图VIEW1,将part、p_s、supplier三个基本表的自然联接定义为一个视图VIEW2。

13.在上述两个视图的基础上,检索上海的供应商所供应的零件的编号和名字。

14.在上述两个视图的基础上,检索项目所用零件的供应商编号和名字。

五、设职工一社团数据库有三个基本表:

职工(职工号,姓名,年龄,性别);

社会团体(社团号,名称,负责人,活动地点)

参加(职工号,社团号,参加日期)

其中:

(1)职工表的主码为职工号。

(2)社会团体表的主码为社团号;外码为负责人,被参照表为职工表,对应属性为职工号。

(3)参加表的职工号和社团号为主码;职工号为外码,其被参照表为职工表,对应属性为职工号;社团号为外码,其被参照表为社会团体表,对应属性为社团号。

试用SQL语句表达下列操作:

1.定义职工表、社会团体表和参加表,并说明其主码和参照关系。

2.建立下列两个视图:

社团负责人(社团号,名称,负责人职工号,负责人姓名,负责人性别);

参加人情况(职工号,姓名,社团社团号,社团名称,参加日期)。

3.查找参加唱歌队或篮球队的职工号和姓名。

4.查找没有参加任何社会团体的职工情况。

5.查找参加了全部社会团体的职工情况。

6.查找参加了职工号为“101”的职工所参加的全部社会团体的职工号。

7.求每个社会团体的参加人数。

8.求参加人数最多的社会团体的名称和参加人数。

9.求参加人数超过1的社会团体的名称和负责人