针对学生课程选课数据库进行以下操作
Student( Sno CHAR(7) primary key,
Sname CHAR(10) ,
Ssex CHAR(2) ,
Sage int DEFAULT 20,
Sdept CHAR(20) )
Course(
Cno Char(10) PRIMARY KEY,
Cname Char(20) NOT NULL,
Ccredit int CHECK(Ccredit>0),
Semester int CHECK(Semester>0),
Period int CHECK(Period>0),
)
SC(
Sno CHAR(7) NOT NULL,
Cno CHAR(10) NOT NULL,
Grade int,
PRIMARY KEY (Sno,Cno),
FOREIGN KEY(Sno) REFERENCES Student(Sno),
FOREIGN KEY(Cno) REFERENCES Course(Cno)
)
1、查询Student表中的所有记录的Sname和Sage列。
2、 查询学生所有的系别即不重复的Sdept列。
3、 查询Student表的所有记录。
4、 查询全体学生的出生年份和性别,并给出生年份列命名为“BIRTHDAY”。
5、 查询SC表中分数大于85分的学生学号。
6、 查询SC表中成绩在60到80之间的所有记录。
7、 查询SC表中成绩为85,86或88的记录。
8、 查询Student表中不姓“王”的同学记录。
9、 查询全校同学名字中第二个字为“小”的同学的具体情况。
10、查询课程名中含有“_”的课程的名字和学分。
11、查询学生表中姓赵、钱、孙、李的同学。
12、查询Sc表中没有成绩的同学的学号。
13、查询Student表中“信息系”班或性别为“女”的同学记录。(复合条件查询,集合查询)
14、查询计算机系男生的具体情况。
15、以年龄降序查询Student表的所有记录。
16、以Cno升序、Grade降序查询Sc表的所有记录。
17、查询所有学生的Sname、Cname和Grade列。(连接查询)
18、查询所有选修“计算机导论”课程的同学的成绩。(连接查询,嵌套查询)
19、查询和“李军”同性别的同学Sname. (自身连接查询,嵌套查询)
20、查询所有同学的基本情况和选课情况,包括未选课的同学。(外连接查询)
21、查询选修13号课程且成绩高于80分的同学的名字。(连接查询,嵌套查询,集合查询)
22、查询和学号为0608002的同学同年出生的所有学生的Sno、Sname列。(自身连接查询,嵌套查询)
23、查询王位同学所有的成绩。(连接查询,嵌套查询)
24、查询非计算机系的不超过计算机系所有学生的年龄的学生姓名。(用ANY,ALL)
25、查询存在有85分以上成绩的课程Cno.(用exists)
26、查询计算机系同学的人数。
27、查询数学系统学所选课程的平均分。
28、查询Student表中年龄最大和最小的同学的具体情况。
29、查询最高分同学的Sno、Cno列
30、查询13号课程的平均分。
31、查询选修了13号课程且成绩比该课程平均成绩低的同学的学号和成绩。
32、查询选修了13号课程或1号课程的同学的学号。(复合条件查询,集合查询)
33、查询各个课程号及相应的选课人数。
34、查询选修了3门以上课程且总分大于200分的同学的学号。
-------后附自己写的答案 可能答案会有点繁琐,希望看到的博主们给我留言指出最简便的查询语句哦~~~~
SELECT Sname,Sage FROM Student
2、 查询学生所有的系别即不重复的Sdept列。
SELECT sdent
FROM student
GROUP BY sdent
3、 查询Student表的所有记录。
SELECT * FROM student
4、 查询全体学生的出生年份和性别,并给出生年份列命名为“BIRTHDAY”。
SELECT Sname,Sage AS BIRTHDAY,Ssex FROM student
5、 查询SC表中分数大于85分的学生学号。
SELECT Sno
FROM sc
WHERE grade>=85
GROUP BY Sno
6、 查询SC表中成绩在60到80之间的所有记录。
SELECT *
FROM sc
WHERE Grade>=60 AND Grade<=80
7、 查询SC表中成绩为85,86或88的记录。
SELECT *
FROM sc
WHERE Grade=85 OR Grade=86 OR Grade=88
8、 查询Student表中不姓“王”的同学记录。
SELECT *
FROM student
WHERE Sname NOT