MySQL --- 复合查询

目录

一、多表查询

二、自连接 

三、子查询

1、单行子查询

2、多行子查询

3、多列子查询

4、在from后面使用子查询

四、合并查询

1、union

2、union all

五、内连接

六、外连接

1、左外连接

2、右外连接


一、多表查询

我们需要的数据往往会来自不同的表,所以我们需要从多个表中查询数据,如何做? 

用 emp 和 dept 两张表来举个例子,emp --- 记录员工的相关信息,dept --- 记录部门的相关信息

  • 查看每个员工和其所在部门的所有信息  

为什么能这样查询?首先要明白下面这条语句的作用

select * from emp, depth;

显然,这条选择语句会让两个表的数据进行组合相乘(笛卡尔积),得到一张新的表,我们查询的本质依旧是在这张新表中查找数据,只不过where的筛选条件需要带上表名,因为它们的列名一样。

  • 显示部门号为10的部门名,员工名和工资

二、自连接 

自连接是指在同一张表连接查询
  • 显示员工的上级领导的编号和姓名及其下级(mgr是员工领导的编号--empno

注意:需要给表先取别名,两张表的名字一样数据库无法分辨

三、子查询

子查询是指嵌入在其他 sql 语句中的 select 语句,也叫嵌套查询

1、单行子查询

返回一行记录的子查询
  • 显示Alice同一部门的员工

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值