Sql内外连接查询

数据库表
1.student(s_id,name,sex)
Sql内外连接查询
2.class(c_id,c_name)
Sql内外连接查询
3.s_class(s_id,c_id,score)
Sql内外连接查询
笛卡尔积:select * from student,s_class;
结果集:(s_id,name,sex, s_id,c_id,score)
Sql内外连接查询
(部分结果,多行匹配则结果集中多行显示)
如果在此基础上加上条件使用像 = 或 <> 之类的比较运算符,就相当于内连接了。
select *from student,s_class where student.s_id= s_class.s_id;
Sql内外连接查询
1.内连接
关键字:inner join或join
select * from student,s_class where student.s_id= s_class.s_id;等价于
select *from student inner join s_class on student.s_id= s_class.s_id;
结果集
Sql内外连接查询
(不要求字段名完全一样,只要字段类型是兼容的即可,查询结果集是两个表中的有关联关系的数据)
2.外连接
2.1左外连接(左连接)
左连接的查询结果集为左表的所有行以及右表中与左表相匹配的行(不匹配行显示null,多行匹配则结果集中左表多行显示)
关键字:left join 或left outer join
Sql内外连接查询(删除学号为6的数据)
查询所有学生成绩
select *from student LEFT join s_class on student.s_id= s_class.s_id;

Sql内外连接查询
Student表中kkk在s_class表中没有匹配数据所以显示null。
左连接后过滤成绩小于70的数据
(1)and score>70
select *from student LEFT join s_class on student.s_id= s_class.s_id and score>70;
Sql内外连接查询
过滤掉成绩小于70的数据之后,成绩小于60的学生并不是没有这个数据了,而是在这些学生后面的数据为null,可以这样理解,on 后面的 and 条件是代表关联与否,不满足就不关联,但student表的数据还是要全部都有的。
(2)where score>70
select *from student left join s_class on student.s_id= s_class.s_id where score>70;
Sql内外连接查询
where 是对结果进行过滤的,所以会把上面的结果不满足成绩>70的数据全部过滤掉。
而如果是内连接则只显示有关联的数据。
select *from student LEFT join s_class on student.s_id= s_class.s_id;
Sql内外连接查询
查询一班所有学生的成绩
SELECT student.s_id ,name ,sex,c_name, score from student LEFT JOIN s_class on student.s_id=s_class.s_id join class on class.c_id=s_class.c_id and c_name=“一班”;
Sql内外连接查询
这里也可以用内连接,结果集相同
SELECT student.s_id ,name ,sex,c_name, score from student JOIN s_class on student.s_id=s_class.s_id join class on class.c_id=s_class.c_id and c_name=“一班”;
查询一班得分在80分以上或者等于60,61的学生
SELECT student.s_id ,name ,sex,c_name, score from student JOIN s_class on student.s_id=s_class.s_id join class on class.c_id=s_class.c_id where (score>70 or score in(60,61)) and c_name=“一班”;
Sql内外连接查询
2.2右外连接(右连接)
右连接的查询结果集为右表的所有行以及左表中与右表相匹配的行(不匹配行显示null,多行匹配则结果集中右表多行显示)
Sql内外连接查询
select *from student RIGHT join s_class on student.s_id= s_class.s_id;
Sql内外连接查询

相关文章: