SQL查询语句练习
程序员文章站
2022-03-08 17:36:34
...
SQL查询语句练习
有如下三个关系:
用T—SQL命令按要求完成下列查询:
1:查询所有年龄在20岁以下的学生姓名及年龄
SELECT SNAME,AGE
FROM S
WHERE AGE<20
2:查询考试成绩有不及格的学生的学号。
SELECT DISTINCT SNO
FROM SC
WHERE GRADE<60
3:查询所有年龄在20至23岁之间的学生姓名、系别及年龄。
SELECT SNAME,SDEPT,AGE
FROM S
WHERE AGE>=20 AND AGE<=23
4:查询计算机系、数学系、信息系的学生姓名、性别。
SELECT SNAME,SEX
FROM S
WHERE SDEPT IN (‘计算机系’,’数学系’,’信息系’)
5:查询所有不姓“张”的学生的姓名。
SELECT SNAME
FROM S
WHERE SNAME NOT LIKE ‘张%’
6:查询姓“上官”且全名为3个汉字的学生姓名。
SELECT SNAME
FROM S
WHERE SNAME LIKE ‘上官_’
7:查询DB_Design课程的课程号。
SELECT CNO
FROM C
WHERE CNMAE=’ DB_Design’
8:查询缺考的学生的学号和课程号。
SELECT SNO,CNO
FROM SC
WHERE GRADE IS NULL
9:查询计算机系20岁以下的学生的学号和姓名。
SELECT SNO,SNAME
FROM S
WHERE SDEPT=’计算机系’ AND AGE<20
10:查询选修了C3课程的学生的学号和成绩,其结果按分数的降序排列。
SELECT SNO,GRADE
FROM SC
WHERE CNO=’C3’
ORDER BY GRADE DESC
11:查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。
SELECT *
FROM S
ORDER BY SDEPT ASC,AGR DESC
12:查询学生总人数。
SELECT COUNT(SNO)
FROM S
13:查询选修了课程的学生人数。
SELECT COUNT(DISTINCT SNO)
FROM SC
14:计算选修了C1课程的学生平均成绩。
SELECT AVG(GRADE)
FROM SC
WHERE CNO=’C1’
15:查询学习C3课程的学生最高分数。
SELECT MAX(GRADE)
FROM SC
WHERE CNO=’C3’
16:查询各个课程号与相应的选课人数。
SELECT CNO,COUNT(SNO)
FROM SC
GROUP BY CNO
17:查询选修了C2课程且成绩在90分以上的所有学生。
SELECT SNO
FROM SC
WHERE CNO='C2' AND GRADE>90
18:查询计算机系选修了3门以上课程的学生的学号。
SELECT SNO
FROM S,SC
WHERE S.SNO=SC.SNO AND SDEPT = '计算机系'
GROUP BY SNO
HAVING COUNT(*)>3
19:查询与“张三”在同一个系学习的学生学号、姓名和系别。
SELECT SNO,SNAME,SDEPT
FROM S
WHERE SDEPT IN
(SELECT SDEPT
FROM S
WHERE SNAM='张三')
20:查询选修课程名为“数据库”的学生学号和姓名。
SELECT SNO,SNAME
FROM S,SC,C
WHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND CNO='数据库'
上一篇: 讲述:一个月薪 12000 的北京程序员的真实生活
下一篇: 学生表sql语句练习