1、联结查询一、表的基本联结创建表的基本联结,需要遵守的基本原则:FROM 子句中列出所有联结的表的表名WHERE 子句中定义联结条件联结条件由每个表中要用于联结的列和比较运算符组成如:o=o当列名为多个表共有时,要指明列的所在表1.查询每个教师的姓名、所在系、所教课程名及该课程的考试时间。2.查询每个学生的姓名、所在系、所选修课程名称、该课程的考试时间、考试成绩和授课教师姓名。二、采用 join 关键字建立联结语法格式:SELECT FROM first_table join_type second_table ON(join_condition)WHERE 1、内联结(inner join)(
2、1).从 STUDENT1 表和 TEACHER 表中查询学生姓名、所在系、所修的所有课程的课程号及开课教师姓名。(2).查询学生修的非本系教师开设的课程信息,包括学生的学号、姓名、所在系、课程号、成绩、以及开课教师的姓名。2、外联结(outer join)【例】分别左联结、右联结和完全联结 STUDENT1 和 COURSE1表,查询所有同学的学号、姓名、课程号、课程名称、考试时间和成绩。查看结果的区别。3、交叉联结(cross join)【例】交叉联结 STUDENT1 和 COURSE1 表,查询所有同学的学号、姓名、课程号、课程名称、考试时间和成绩。在此基础上添加 where 子句,使
3、其和两个表内联接效果相同?4、自联结【例】查询存在不及格课程的学生的姓名、所在系、所有的课程及成绩信息。上机:联结查询综合练习题 student(sno,sname,sex,age) course(cno,cname,credit) s_c(sno,cno,grade)1.查询学生的学号、姓名、课程号和相应的成绩。2.查询男学生成绩在 60 分以上的学生的学号、姓名、课程号、成绩。3.查询所有学生的基本信息和选课情况,包括没有选课的学生。4.查询同时选修 C2 和 C3 课程的学生的学号。5.查看每个学生所选的课程及所得分数。(要求显示学生的姓名、课程名称和成绩,包括没选课的学生)6.查看每门课程的最高分数是多少。(要求显示课程名称和最高成绩)7.检索显示男生中平均成绩前两名的学生的姓名和平均成绩(agrade)并按成绩降序排序。8.查询男生的学号、姓名、课程名称和成绩,并按成绩从高到低排序。