Document serial number【KKGB-LBS98YT-BS8CB-BSUT-BST108】
数据库中SQL查询语句****题含的答案
查询问题:设教学数据库Education有三个关系:
学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学****关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME)
检索计算机系的全体学生的学号,姓名和性别;
检索学****课程号为C2的学生学号与姓名;
检索选修课程名为“DS”的学生学号与姓名;
(4)检索选修课程号为C2或C4的学生学号;
(5)检索至少选修课程号为C2和C4的学生学号;
(6)检索不学C2课的学生姓名和年龄;
(7)检索学****全部课程的学生姓名;
(8)查询所学课程包含学生S3所学课程的学生学号。
(1)检索计算机系的全体学生的学号,姓名和性别;
SELECT Sno,Sname,Sex
FROM S
WHERE Sdept =’CS’;
(2)检索学****课程号为C2的学生学号与姓名;
,Sname
FROM S,SC
WHERE =
AND =‘C2’;
Sno,Sname
FROM S
WHERE Sno IN
( SELECT Sno
FROM SC
WHERE Cno=‘C2’)
(3)检索选修课程名为“DS”的学生学号与姓名
本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C表中,但S和C表没有直接联系,必须通过SC表建立它们二者的联系。 C → SC → S
基本思路:
(1)首先在C表中找出“DS”课程的课程号Cno;
(2)然后在SC表中找出Cno等于第一步给出的Cno 集合中的某个元素Cno;
(3)最后在S关系中选出Sno等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname送入结果表列。
SELECT Sno,Sname
FROM S
WHERE Sno IN
(SELECT Sno
FROM SC
WHERE Cno IN
(SELECT Cno
FROM C
WHERE Cname=‘DS’));
检索选修课程号为C2或C4的学生学号;
SELECT Sno
FROM SC
WHERE Cno=‘C2’ OR Cno=‘C4’;
检索至少选修课程号为C2和C4的学生学号;
SELECT Sno
FROM SC X,SC Y
WHERE = AND =‘C2’ AND =‘C4’ ;
检索不学C2课的学生姓名和年龄;
Sname
FROM S
WHERE NOT EXISTS
( SELECT *
FROM SC
WHERE =
AND Cno=‘C2’);
Sname
FROM S
WHERE Sno NOT IN
( SELECT Sno
FROM S
数据库中SQL查询语句习题含的答案 来自淘豆网www.taodocs.com转载请标明出处.