SQL查询练习:从数据表中提取信息

需积分: 37 5 下载量 110 浏览量 更新于2024-07-12 收藏 261KB PPT 举报
本资源是一份关于SQL查询语言(DML)的练习题目,涉及到对数据库中四个表(student, teacher, course, score)的操作。练习涵盖了基础的查询、筛选、聚合函数、排序以及联接操作。 以下是这些SQL查询语句的功能解释: 1. 列出student表中所有记录的sname、sex和class列。 ```sql SELECT sname, sex, class FROM student; ``` 2. 显示教师所有的单位即不重复的depart列。 ```sql SELECT DISTINCT depart FROM teacher; ``` 3. 显示学生表的所有记录。 ```sql SELECT * FROM student; ``` 4. 显示score表中成绩在60到80之间的所有记录。 ```sql SELECT * FROM score WHERE degree BETWEEN 60 AND 80; ``` 5. 显示score表中成绩为85,86或88的记录。 ```sql SELECT * FROM score WHERE degree IN (85, 86, 88); ``` 6. 显示student表中“95031”班或性别为“女”的同学记录。 ```sql SELECT * FROM student WHERE class = '95031' OR sex = '女'; ``` 7. 以class降序显示student表的所有记录。 ```sql SELECT * FROM student ORDER BY class DESC; ``` 8. 以cno升序、degree降序显示score表的所有记录。 ```sql SELECT * FROM score ORDER BY cno ASC, degree DESC; ``` 9. 显示“98031”班的学生人数。 ```sql SELECT COUNT(*) FROM student WHERE class = '98031'; ``` 10. 显示score表中的最高分的学生学号和课程号。 ```sql SELECT sno, cno FROM score WHERE degree = (SELECT MAX(degree) FROM score); ``` 11. 显示“3-105”号课程的平均分。 ```sql SELECT AVG(degree) FROM score WHERE cno = '3-105'; ``` 12. 显示score表中至少有5名学生选修的并以3开头的课程号的平均分数。 ```sql SELECT AVG(degree) FROM score WHERE cno LIKE '3%' GROUP BY cno HAVING COUNT(sno) >= 5; ``` 13. 显示最低分大于70,最高分小于90的sno列。 ```sql SELECT sno FROM score GROUP BY sno HAVING MIN(degree) > 70 AND MAX(degree) < 90; ``` 14. 显示所有学生的sname、cno和degree列。 ```sql SELECT sname, cno, degree FROM student JOIN score ON student.sno = score.sno; ``` 15. 显示所有学生的sname、cname和degree。 ```sql SELECT sname, cname, degree FROM student JOIN score ON student.sno = score.sno JOIN course ON score.cno = course.cno; ``` 这些练习题覆盖了SQL的基本操作,如选择、投影、连接、分组、排序、聚合函数以及子查询,有助于提升对数据库查询的理解和应用能力。