多表查询 内连接(重点掌握) 1.1. 查询所有学生的学号,姓名,班级名称,院系信息信息。(以下两种写法均可实现,推荐第一种写法) SELECT 学号, 姓名, 班级名称, 院系 FROM 学生 x JOIN 班级 y ON x.班级编号= y.班级编号 SELECT 学号, 姓名, 班级名称, 院系 FROM 学生, 班级 WHERE 学生.班级编号= 班级.班级编号 1.2. 查询所有学生所选修的所有课程的成绩及本课程的学分信息 SELECT x.姓名, z.课程名, y.成绩, z.学分 FROM 学生 x JOIN 成绩 y ON x.学号= y.学号 JOIN 课程 z ON y.课程号= z.课程号 1.3. 查询选修了'C程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
'的学生的班级名称,姓名,成绩 SELECT d.班级名称, c.姓名, a.成绩 FROM 成绩 a JOIN 课程 b ON a.课程号= b.课程号 AND b.课程名='C程序设计' JOIN 学生 c ON c.学号= a.学号 JOIN 班级 d ON c.班级编号= d.班级编号 1.4. 查询每个学生所选修的各个课程中的最高分及平均分,要求显示学生的学号,姓名信息 SELECT x.学号, x.姓名, MAX(y.成绩) 最高分,AVG(y.成绩) 平均分 FROM 学生 x JOIN 成绩 y ON x.学号= y.学号 GROUP BY x.学号, x.姓名 自身连接查询(掌握) 2.1. 查询学分为365分的学生的信息。 SELECT x.学号,x.姓名 FROM 学生 x JOIN 学生 y ON x.学号= y.学号 AND x.学分=365 2.2. 查询至少选自了两门课程的学生的学号,姓名及所选修的课程名。 SELECT DISTINCT y.课程名,z.学号,z.姓名 FROM 成绩 x JOIN 成绩 y ON x.学号= y.学号 AND x.课程号!= y.课程号 JOIN 学生 z ON y.学号= z.学号 ORDER BY z.学号 外连接(了解) 以下实验部分针对“产品”,“产品销售”表操作。 3.1. 将“产品”表左外连接“产品销售”表。 SELECT 产品.产品编号,产品名称,产品销售.产品编号,销量 FROM 产品 LEFT OUTER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 3.2. 将“产品”表右外连接“产品销售”表。 SELECT 产品.产品编号,产品名称,产品销售.产品编号,销量 FROM 产品 RIGHT OUTER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 3.3. 将“产品”表完全外连接“产品销售”表。 SELECT 产品.产品编号,产品名称,产品销售.产品编号,销量 FROM 产品 FULL OUTER JOIN 产品销售 ON 产品.产品编号=产品销售.产品编号 交叉连接(了解) 4.1. 将“产品”表交叉连接“产品销售”表。 SELECT * FROM 产品 CROSS JOIN 产品销售 联合查询(了解) 5.1. 查询学分在365分以上,或者65以下的学生的信息。 SELECT * FROM 学生 WHERE 学分>365 UNION SELECT * FROM 学生 WHERE 学分<65