admin 管理员组文章数量: 887007
3.4.1 单表查询中的例题 (作业10
以下查询例子都是通过下面创建的表进行查询的:
学生表student:
课程表course:
成绩表result:
一、选择表中的若干列
1. 查询全体学生的学号和姓名
SELECT sname,sno
FROM student;
2. 查询全体学生的学号、姓名、所在系
SELECT sname,sno,sdept
FROM student;
3. 查询全体学生的详细记录
SELECT *
FROM student;
4. 查询全体学生的姓名及其出生年份
SELECT sname,2022-sage
FROM student;
5. 查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示所有系名
SELECT sname NAME,'year of birth:'birth,2020-sage birthday,
LOWER(sdept)department
FROM student;
二、选择表中的若干元组
6. 查询选修了课程的学生学号
SELECT DISTINCT sno
FROM result;
7. 查询cs系全体学生的名单
SELECT sname
FROM student
WHERE sdept='cs';
8. 查询所有年龄在17岁以下的学生姓名及其年龄
SELECT sname,sage
FROM student
WHERE sage<17;
9. 查询考试成绩有不及格的学生的学号
SELECT DISTINCT sno
FROM result
WHERE sgrade<60;
10. 查询年龄在15至20岁(包括15岁和19岁)之间的学生的姓名,性别和年龄
SELECT sname,sdept,sage
FROM student
WHERE sage BETWEEN 15 AND 20;
11. 查询年龄不在15至20岁之间的学生姓名,性别和年龄
SELECT sname,sdept,sage
FROM student
WHERE sage NOT BETWEEN 15 AND 20;
12. 查询计算机科学系cs、 as 和 ff 系别学生的姓名和性别
SELECT sname,sdept,sage
FROM student
WHERE sdept IN('cs','as','ff');
13. 查询既不是 cs 、as 也不是 bfg 系别的学生的姓名和性别
SELECT sname,sdept,sage
FROM student
WHERE sdept NOT IN('cs','as','bfg');
14. 查询学号为20010的学生的详细情况
SELECT *
FROM student
WHERE sno='20010';
15. 查询所有姓李的学生的姓名,学号和性别
SELECT sname,sno,ssex
FROM student
WHERE sname LIKE'李%';
16. 查询姓张且全名为三个汉字的学生的姓名
SELECT sname
FROM student
WHERE sname LIKE'张__';
17. 查询名字中第二个字为文的学生的姓名和学号
SELECT sname,sno
FROM student
WHERE sname LIKE'_文%';
18. 查询所有不姓李的学生姓名
SELECT sname
FROM student
WHERE sname NOT LIKE'李%';
19. 查询 HTML 课程的课程号和学分
SELECT cpno,ccredit
FROM course
WHERE cname LIKE'HTML';
20. 查询以 Ja 开头且倒数第三个字符为 O 的课程的详细情况
SELECT *
FROM course
WHERE cname LIKE'Ja%O__';
21. 某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号
SELECT sno,cno
FROM result
WHERE sgrade IS NULL;
22. 查所有有成绩的学生学号和课程号
SELECT sno,cno
FROM result
WHERE sgrade IS NOT NULL;
23. 查询计算机科学系 cs 年龄在15岁以下的学生姓名
SELECT sno
FROM student
WHERE sdept='cs'AND sage<15;
三、ORDER BY子句
24. 查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列
SELECT sno,sgrade
FROM result
WHERE cno='3'
ORDER BY sgrade DESC;
25. 查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列
SELECT *
FROM student
ORDER BY sdept,sage DESC;
四、聚集函数(aggregate functions)
26. 查询学生总人数
SELECT COUNT(*)
FROM student;
27. 查询选修了课程的学生人数
SELECT COUNT(DISTINCT sno)
FROM result;
28. 计算1号课程的学生平均成绩
SELECT AVG (sgrade)
FROM result
WHERE cno='1';
29. 查询选修1号课程的学生最高分数
SELECT MAX(sgrade)
FROM result
WHERE cno='1';
30. 查询学生10001选修课程的总学分数
SELECT SUM(ccredit)
FROM result,course
WHERE sno='10001'AND resulto=courseo;
五、GROUP BY子句
31. 求各个课程号及相应的选课人数
SELECT cno,COUNT(sno)
FROM result
GROUP BY cno;
32. 查询选修了3门以上课程的学生学号
SELECT sno
FROM result
GROUP BY sno
HAVING COUNT(*)>3;
本文标签: 341 单表查询中的例题 (作业10
版权声明:本文标题:3.4.1 单表查询中的例题 (作业10 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732360939h1535195.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论