一、内查询:将两个表中同时存在的数据打印。
表1 inner join 表2 on 表1.属性 = 表2.属性
二、外查询:right | left
表1 left join 表2 on 表1.属性 = 表2.属性
1、左连接:
(1)将左表和右表相同属性值的结果返回;
(2)将左表存在,而右表不存在的也返回;
(3)右表对应属性值为null,将右表存在、左表不存在的忽略掉。
表1 right join 表2 on 表1.属性 = 表2.属性
2、右连接:
(1)将左表和右表相同属性值的结果返回;
(2)将右表存在、而左表不存在的数据也返回;
(3)左表不存在的属性值为null,将左表存在、右表不存在的忽略掉。
练习:
1、学生表
Student(SID,Sname,Sage,Ssex)
--SID 学生编号,Sname 学生姓名,Sage 年龄,Ssex 学生性别
2.课程表
Course(CID,Cname,TID)
--CID --课程编号,Cname 课程名称,TID 教师编号
3.教师表
Teacher(TID,Tname)
--TID 教师编号,Tname 教师姓名
4.成绩表
SC(SID,CID,score)
--SID 学生编号,CID 课程编号,score 分数
学生表:
编号 姓名 年龄 性别
1 赵雷 20 男
2 钱电 20 男
3 孙风 21 男
4 吴兰 18 女
5 孙兰 17 女
课程表:
课程号 课程名称 教师编号
1 语文 2
2 数学 1
3 英语 3
教师表:
教师编号 教师名
1 张三
2 李四
3 王五
成绩表:
学生编号 课程编号 分数
1 1 80
1 2 71
1 3 87
2 1 88
2 2 70
2 3 89
3 1 68
3 2 78
3 3 87
4 1 67
4 2 58
4 3 89
5 1 56
5 2 89
6 3 38
(1)查询“01”课程比“02”课程成绩高的学生的信息及课程分数:
(2)查询平均成绩大于等于60分的同学的学生编号、学生姓名和平均成绩:
(3)查询在SC表中不存在成绩的学生的信息:
(4)查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩:
(5)查询"李"姓老师的数量:
(6)查询学过"张三"老师授课的同学的信息:
(7)查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息:
(8)查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩: