数据库查询练习.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
数据库查询练习 本资源摘要信息主要关注数据库查询练习的相关知识点,涵盖了连接查询、嵌套查询、集合查询和多表查询等复杂查询功能。本文将逐一解释每个知识点,并提供相应的SQL语句示例。 1. 复杂查询 复杂查询是指在查询中使用多个表、列和条件的查询操作。复杂查询可以使用连接查询、嵌套查询和集合查询等技术来实现。在本实验中,我们将学习如何使用MS SQL SERVER 2000的查询分析器完成复杂查询。 2. 连接查询 连接查询是指将两个或多个表连接起来,形成一个新的表。连接查询可以使用INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN等类型。在本实验中,我们将学习如何使用连接查询来查询选修了‘3’号课程且成绩在70分以上的学生信息。 示例SQL语句: ```sql SELECT Student.* FROM Student, SC WHERE Student.Sno = SC.Sno AND SC.Cno = '3' AND SC.Grade > 70; ``` 3. 嵌套查询 嵌套查询是指在一个查询中嵌套另一个查询。嵌套查询可以使用IN、EXISTS和NOT EXISTS等关键字。在本实验中,我们将学习如何使用嵌套查询来查询教‘3’号课程的任课教师的信息。 示例SQL语句: ```sql SELECT * FROM Teacher WHERE Tno IN (SELECT Tno FROM SC WHERE Cno = '3'); ``` 4. 集合查询 集合查询是指将多个查询结果合并成一个结果集。集合查询可以使用UNION、INTERSECT和EXCEPT等关键字。在本实验中,我们将学习如何使用集合查询来查询选修了‘3’课程的学生姓名、成绩及任课教师姓名。 示例SQL语句: ```sql SELECT Sname, Tname, Grade FROM Student, Teacher, SC WHERE Student.Sno = SC.Sno AND Teacher.Tno = SC.Tno AND Cno = '3'; ``` 5. 多表查询 多表查询是指从多个表中查询数据。多表查询可以使用连接查询、嵌套查询和集合查询等技术。在本实验中,我们将学习如何使用多表查询来查询选修了‘3’课程的学生信息。 示例SQL语句: ```sql SELECT * FROM Student, SC, Course WHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND Cno = '3'; ``` 6. 查询开设的课程中选课人数不足20人的课程信息 在本实验中,我们将学习如何使用集合查询来查询开设的课程中选课人数不足20人的课程信息。 示例SQL语句: ```sql SELECT * FROM Course WHERE Course.Cno IN (SELECT SC.Cno FROM SC GROUP BY SC.Cno HAVING COUNT(*) < 20); ``` 7. 查询选修课程数低于3门的学生信息 在本实验中,我们将学习如何使用嵌套查询来查询选修课程数低于3门的学生信息。 示例SQL语句: ```sql SELECT * FROM Student WHERE Student.Sno IN (SELECT SC.Sno FROM SC GROUP BY SC.Sno HAVING COUNT(*) < 3); ``` 8. 查询没有选修课程的同学的基本信息 在本实验中,我们将学习如何使用NOT EXISTS关键字来查询没有选修课程的同学的基本信息。 示例SQL语句: ```sql SELECT Student.* FROM Student WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno = Student.Sno AND Cno IS NULL); ``` 9. 查询既选修课‘3’号又选修了‘4’号课程的同学姓名、课程名及成绩 在本实验中,我们将学习如何使用连接查询来查询既选修课‘3’号又选修了‘4’号课程的同学姓名、课程名及成绩。 示例SQL语句: ```sql SELECT Sname, Cname, Grade FROM Student, Course, SC WHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND SC.Cno = '3' AND SC.Sno IN (SELECT Sno FROM SC WHERE Cno = '4'); ``` 10. 查询同时选修了‘操作系统’课程和‘数据库原理’课程的学生名单 在本实验中,我们将学习如何使用集合查询来查询同时选修了‘操作系统’课程和‘数据库原理’课程的学生名单。 示例SQL语句: ```sql SELECT Student.Sno, Sname FROM Student, SC, Course WHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND Course.Cname = '操作系统' AND Course.Cno IN (SELECT Cno FROM Course WHERE Cname = '数据库原理'); ``` 11. 查询所有同学的基本信息及选课情况(包含未选课同学的信息) 在本实验中,我们将学习如何使用LEFT JOIN来查询所有同学的基本信息及选课情况(包含未选课同学的信息)。 示例SQL语句: ```sql SELECT Student.Sno, Sname, Ssex, Sdept, Cno, Grade FROM Student LEFT JOIN SC ON (Student.Sno = SC.Sno); ``` 12. 查询所有参加了数据库课程考试的学生姓名和成绩 在本实验中,我们将学习如何使用连接查询来查询所有参加了数据库课程考试的学生姓名和成绩。 示例SQL语句: ```sql SELECT Sname, Grade FROM Student, SC, Course WHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND SC.Cno IN (SELECT Cno FROM Course WHERE Cname = '数据库'); ``` 13. 查询没有选修 “3”号课程的学生姓名和所在系 在本实验中,我们将学习如何使用NOT EXISTS关键字来查询没有选修 “3”号课程的学生姓名和所在系。 示例SQL语句: ```sql SELECT Sname, Sdept FROM Student WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno = Student.Sno AND Cno = '3'); ``` 14. 查询每一课程的间接先修课 在本实验中,我们将学习如何使用连接查询来查询每一课程的间接先修课。 示例SQL语句: ```sql SELECT FRIST.Cno '课程名', SECOND.Cpno '先修课程' FROM Course FRIST, Course SECOND WHERE FRIST.Cpno = SECOND.Cno; ```
- 粉丝: 10
- 资源: 15万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助