数据库MySQL学习

内连接,左连接,右链接的不同之处

  1. inner join on ;
  2. left join on 和 right join on .

创建员工表和部门表

-- 创建部门表
CREATE TABLE IF NOT EXISTS t_department (
  id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL
);

-- 初始化部门数据
INSERT INTO t_department(name)
VALUES('开发部'),
      ('技术服务部'),
      ('研发部'),
      ('测试部'),
      ('财务部'),
      ('人事部'),
      ('产品一部'),
      ('产品二部');

-- 创建员工表
CREATE TABLE  IF NOT EXISTS t_employee (
  id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL,
  sex CHAR(1) DEFAULT 'M',
  age TINYINT UNSIGNED,
  dept_id TINYINT UNSIGNED
);

inner join 语法

-- 内联
-- 语法一
SELECT m.*, n.name AS dept_name
FROM t_employee m
  INNER JOIN t_department n ON m.dept_id = n.id;
-- 语法二
SELECT m.*, n.name AS dept_name
FROM t_employee m, t_department n
WHERE m.dept_id = n.id;

left join 和 right join 语法

-- 左外连
SELECT m.id, m.name, m.sex, m.age, n.name AS dept_name
FROM t_employee m LEFT OUTER JOIN t_department n
ON m.dept_id = n.id;


-- 右外连
SELECT m.id, m.name, m.sex, m.age, n.name AS dept_name
FROM t_department n RIGHT OUTER JOIN t_employee m
ON m.dept_id = n.id;

区别

  1. 当某一员工,处于没有部门状态下,那么使用inner join 内关联,无法将该员工查询出,利用right join 或 left join 将 主要的表的所有需要展示的列查询出.
  2. left join 和 right join 都是需要查询那一张表,就将哪张表放在对应的放向,例如上左连接,右链接用法.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值