【MySQL的内外连接】


文章目录


一、内连接

基本语法:

select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;(这里的and,也可以修改成where,并且建议使用where,逻辑更清晰)

连接就是将两个表拼接起来。

案例:显示SMITH的名字和部门名称。

  • 方法1:

-- 用前面的写法

select ename, dname from EMP, DEPT where EMP.deptno=DEPT.deptno and ename='SMITH';

使用之前的写法。

  • 方法2:

用标准的内连接写法

select ename, dname from EMP inner join DEPT on EMP.deptno=DEPT.deptno and

ename='SMITH';

使用内连接写法。

二、外连接

1.左外连接

如果联合查询,左侧的表完全显示我们就说是左外连接。

语法:

select 字段名 from 表名1 left join 表名2 on 连接条件


案例:查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来

mysql> select * from stu left join exam on stu.id=exam.id;

当左边表和右边表没有匹配时,也会显示左边表的数据

2.右外连接

如果联合查询,右侧的表完全显示我们就说是右外连接。

语法:

select 字段名 from 表名1 right join 表名2 on 连接条件

案例:对stu表和exam表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要显示出来

mysql> select * from stu right join exam on stu.id = exam.id;

另一个案例:列出部门名称和这些部门的员工信息,同时列出没有员工的部门.

mysql> select dname,dept.deptno,ename from emp right join dept on dept.deptno=emp.deptno order by dept.deptno asc ;

相关推荐
看海的四叔15 分钟前
【SQL】SQL同环比计算的多种实现方式
数据库·hive·sql·mysql·数据分析·同环比
安卓机器21 分钟前
rom定制系列------魅族16x 解锁bl root与Flyme9安卓10线刷固件 传感器修复
android·魅族16x玩机
nbwenren1 小时前
MySQL中日期和时间戳的转换:字符到DATE和TIMESTAMP的相互转换
数据库·mysql
NiKick2 小时前
MySql中的事务、MySql事务详解、MySql隔离级别
数据库·mysql·adb
wellc2 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
ccice013 小时前
mysql之如何获知版本
数据库·mysql
CYY953 小时前
Android 打印 SO 库的异常日志
android
九皇叔叔4 小时前
MySQL8.0 初始化官网数据
mysql·source·加载数据
ATCH IERV4 小时前
MySQL数据库误删恢复_mysql 数据 误删
数据库·mysql·adb