一、实验目的。
1. 继续掌握基本的select查询及其相关子句的使用。
2. 掌握复杂的select查询、如多表查询,子查询,连接,分组和嵌套查询。
3. 掌握sql中的集合并运算union
4. 掌握sql中元组的插入、修改、删除操作(insert,update,delete)。
二、预备知识:
sql中的连接操作:
假设r与k是基本数据表。基本表的连接操作可以分为五类:
内连接 r inner join k on 《条件》 只返回满足条件的行。
左外连接 r left join k on《条件》返回满足条件的行及左表r中所有的行。如果左表的某条记录在右表中没有匹配记录,则在查询结果中右表的所有选择属性列用null填充。
右外连接 r right join k on 《条件》返回满足条件的行及右表k中所有的行。
完全外连接 r full join k on 《条件》返回满足条件的行及左右表r,k所有的行。当某条记录在另一表中没有匹配记录,则在查询结果中对应的选择属性列用null填充。
交叉连接r cross join k:相当于广义笛卡尔积。不能加筛选条件。
三、实验环境。
1. 个人计算机或局域网。
2. windows 2000操作系统。
3. sql server 2000数据库管理系统。
四、实验步骤。
1. 启动查询分析器,选择学生选课数据库。
2. 在学生选课数据库中分别使用sql命令完成指定任务。
五、实验内容:
1. 查询所有学生的情况以及他们选修的课程和得分。
2. 查询所有学生的姓名以及他们选修的课程名和得分。
3. 检索已经选了课程的学生的姓名、选修课程和成绩(提示:使用inner join)
4. 检索每个学生的姓名,选修课程和成绩,没有选修的同学也列出。
5. 列出所有学生所有可能的选课情况(提示:使用cross join)
6. 检索每个学生的姓名、选修课程,没有选修的同学和没有被选修的课程也列出。
7. 求学生的总人数和平均年龄。
8. 求选修了各课程的学生的人数。
9. 对计算机系的学生按课程列出选修了该课程的学生的人数。
10. 查询每个学生的平均成绩。
11. 求选修课程超过或等于2门的学生的学号。
12. 查询学生的学号、姓名、所有学生所有课程的最高成绩。
13. 查询学生的学号、课程号及对应成绩与所有学生中所有课程的最高成绩的差值。
14. 查询陈小红同学的学号及所选修的课程号。
15. 查询没有选修c02课程的学生姓名。
16. 查找所有成绩高于平均成绩的学生的学号。
17. 求选修了c02课程的学生的姓名。
18. 查询选修了课程c01,c02,c03的学生的学号。
19. 求选修了学生王小宏所选修的课程的那些学生的学号。
20. 检索没有选修课程c01的所有学生的姓名。
21. 检索不学c02课程的学生姓名与年龄。
22. 检索成绩小于任何一个选修c02课程的学生的成绩的学生学号。
23. 求没有选修c03课程的学生的姓名(提示:此处使用not exists,效果与not in 相同)
24. 求选修了‘vb’课程的学生的学号和姓名。
25. 给陈小红的成绩加2分。
26. 删除陈小红的所有选修记录。
27. 查找学号为j0401的成绩、全部课程的平均成绩,以及每门成绩与全部课程的平均成绩之间的距离。
28. 把目前为止还没有选修课程的学生的学号插入关系sc中。
29. 把课程名为vb的成绩从基本表sc中删除。
30. 把c04课程中小于该课程平均成绩的成绩记录从基本表sc中删除。
31. 将最高成绩的学生的成绩减少20分。
32. 将前5名最高成绩的学生的成绩减少20分。
33. 按照成绩从高到低排序,将前10%名学生的成绩减少20分。
34. 查找最高成绩超过给定学生平均成绩10分的学生。
35. 求选修了课程c02或c04的学生的学号,姓名,课程号。
36. 求选修了课程c02或c04的学生的学号、姓名,不包含重复的记录行。
37. 求选修了课程c02或c04的学生的学号、姓名,包括重复记录行(提示:使用union all)
38. 求选修了课程c01,c02,c03的学生的学号,姓名,不包含重复记录行。
39. 求选修了课程c02和c04的学生的学号和姓名。
40. 求选修了课程c02但没有选修课程c04的学生的学号和姓名。
SQL高级查询
高级查询概念。在掌握查询的基础知识后,您就可以探知查询解决方案中使用的下列高级查询概念 在选择列表中使用聚合函数。使用 group by 对多行分组。使用 union 组合结果。子查询基础知识。使用 case 处理条件数据。并行查询。汇总数据 在选择列表中使用聚合函数。聚合函数 例如 sum g c...
SQL高级查询
sql server t sql 1 基本常用查询 3 select 3 all 查询所有 3 distinct 过滤重复 3 count 统计 3 top 取前n条记录 3 alias column name 列重命名 3 alias table name 表重命名 3 column 列运算 3 ...
实验3 高级查询
1 掌握sql的高级查询的使用方法,如分组统计 嵌套查询 集合查询等等。1 分组统计。2 嵌套查询,包括in查询 exists查询。3 集合查询。1 深入复习教材第三章sql有关高级查询语句。2 根据书上的例子,针对tpch数据库模式设计分组统计查询 嵌套查询 in exists 语句和集合查询语句...