ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

多表查询_内连接和多表查询_外连接

2022-07-26 17:31:54  阅读:162  来源: 互联网

标签:多表 name -- t2 连接 dept emp 查询 id


-- 新建部门表
create table dept(
id int primary key auto_increment,
name varchar(20)
);

insert into dept (name) values("开发部"),("市场部"),("财务部");

-- 新建员工表
create table emp(
id int primary key auto_increment,
name varchar(10),
gender char(1),-- 性别
salary double,-- 工资
join_date date,-- 入职日期
dept_id int,
foreign key (dept_id) references dept (id) -- 外键,关联部门表(部门表的主键)
);

insert into emp(name,gender,salary,join_date,dept_id) values
("孙悟空","男",7200,"2013-02-24",1),
("猪八戒","男",3600,"2010-12-02",2),
("唐僧","男",9000,"2008-08-08",2),
("白骨精","女",5000,"2015-10-07",2),
("蜘蛛精","女",4500,"2011-03-14",1);

内连接查询:
隐式内连接:使用where条件消除无用数据
例子:

-- 查询所有员工信息和对应的部门信息
select * from emp,dept where dept.id = emp.dept_id;

-- 查询员工表的名称,性别,部门表的名称
select emp.name 姓名,emp.gender 性别,dept.name 部门名称 from emp,dept where emp.dept_id = dept.id;

显式内连接:
语法:select 字段列表 from 表名1 [inner] join 表名2 on 条件
例如:
select * from emp inner join dept on emp.dept_id = dept.id;

内连接查询:
1.从哪些表中查询数据
2.条件是什么
3.查询哪些字段

外连接查询:
1.左外连接
语法:select 字段列表 from 表1 left [outer] join 表2 on 条件;
查询的式左表所有数据以及交集部分

-- 查询所有员工信息,如果员工有部门,则查询部门名称,没有部门则不显示部门名称
select t1.*,t2.name from emp t1,dept t2 where t1.dept_id = t2.id;
-- 左外连接
select t1.*,t2.name from emp t1 left join dept t2 on t1.dept_id = t2.id;

image

2.右外连接:
语法:select 字段列表 from 表1 right [outer] join 表2 on 条件;
查询的式右表所有数据以及交集部分

select t1.*,t2.name from emp t1 right join dept t2 on t1.dept_id = t2.id;

image

标签:多表,name,--,t2,连接,dept,emp,查询,id
来源: https://www.cnblogs.com/ailhy/p/16521583.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有