MySQL从青铜到王者第七篇:MySQL内外连接
Posted 森明帮大于黑虎帮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL从青铜到王者第七篇:MySQL内外连接相关的知识,希望对你有一定的参考价值。
系列文章目录
文章目录
前言
一、表的内连和外连(重点)
表的连接分为内连和外连。
1.内连接
内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。备注:前面学习的都是内连接!
语法:
select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;
1.案例:显示SMITH的名字和部门名称
用前面的写法
select ename,dname from emp,dept where emp.deptno=dept.deptno and ename=‘SMITH’;
用标准的内连接写法
select ename ,dname from emp inner join dept on emp.deptno=dept.deptno and ename=‘SMITH’;
2.外连接
外连接分为左外连接和右外连接。
1.左外连接
如果联合查询,左侧的表完全显示我们就说是左外连接。
语法:
select 字段名 from 表名1 left join 表名2 on 连接条件
首先创建两张表,一张学生表stu,一张成绩表grade。
学生表stu
create table stu(id int,name varchar(30)) charset=utf8;
学生表插入数据
insert into stu values(1,‘jack’),(2,‘tom’),(3,‘kity’),(4,‘nono’);
成绩表exam
create table exam(id int,grade int) charset=utf8;
成绩表插入数据
insert into exam values(1,56),(2,78),(3,11);
1.查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来
当左边表和右边表没有匹配时,也会显示左边表的数据。
两张表信息如下图:
select * from stu left join exam on stu.id=exam.id;
2.右外连接
如果联合查询,右侧的表完全显示我们就说是右外连接。
语法:
select 字段 from 表名1 right join 表名2 on 连接条件;
1.对stu表和exam表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要显示出来
两张表信息如下:
select * from stu right join exam on stu.id=exam.id;
2.列出部门名称和这些部门的员工信息,同时列出没有员工的部门
总结
以上就是今天要讲的内容,本文详细介绍了数据库内外连接的使用,数据库提供了大量的方法供我们使用,非常的便捷,我们务必掌握。希望大家多多支持!另外如果上述有任何问题,请懂哥指教,不过没关系,主要是自己能坚持,更希望有一起学习的同学可以帮我指正,但是如果可以请温柔一点跟我讲,爱与和平是永远的主题,爱各位了。加油啊!
以上是关于MySQL从青铜到王者第七篇:MySQL内外连接的主要内容,如果未能解决你的问题,请参考以下文章