MySQL 联合查询实质_Mysql的联合查询

联合查询

union联合查询

语法:

select 语句 union 【all|distinct】 select 语句;

示例:

bed8b9316f4cfe3433f3ef7511d9d762.png

特点:

条件:两表的查询出来的字段数目必须相同

字段上会不会进行拼接

只有在记录上对两个表查询出来的结果进行联合。

【all|distinct】

all            显示所有的记录,包含重复

distinct        (缺省)不显示结果集中的重复记录

示例:

6ae824fe3b29c424f2279dffa04307eb.png

作用:

1、对一个大的数据表进行分表存储,联合查询。

2、对于同一个表实现不同的需求

需求:对学生表sex=1按年龄降序,sex=0的按年龄升序

30f8f39766c7fe67ec349aa541a7aa82.png

78a03578454a137ef02b9d7da2882477.png

连接查询

由于数据库每一个表存储一个实体信息,实体之间还有联系。根据需求,经常会对具有关系的实体表进行,连接查询。

连接查询实现的,结果集中的字段数增加,记录数不增加。

连接查询分

cross join

交差连接

语法:

select * 或字段列表 from 表A cross join表B 【where条件】;

示例:

b40619caae00a70b17ba6a9cb3331eb7.png

说明:

结果是一个迪卡尔积,

示例:

使用条件进行连接

d6ea2c981e204e58daea5b7d190f3735.png

演示:

将stu表中的id为12的记录c_id设置为null(也不是与班级表不匹配)

38182e8b7a663970aa72eee198d550ab.png

说明:

最终的结果少了一个学生的信息。

内连接

inner join

语法:

select *或字段列表 from 表A 【inner】 join 表B【where子句】;

说明:

如果内连接没有指定条件,那么结果也是一个迪卡尔积

示例1:

fea0e4d28ae1c87e032194af2a216814.png

外连接

外连接分为左外连接与右外连接,如果以左边的表为主表那么就叫左外连接;如果以右边的表为主表,那么就叫右外连接。

左外连接

left join

语法:

select *或字段列表 from 表A left join 表B on 条件;

示例:

4d9115ca54a5e693b7a2c4614b48d040.png

原理:

1、在内存中产生两个结果集

2、进行连接

2.1、使用主表中的第1条记录,去匹配从表中的第1条记录,判断条件是否匹配,如果匹配,将两个表的记录连接在一起保留。如果不成功,保留主表的字段,从表的字段置null

2.2、使用主表中的第1条记录,去匹配从表中的第2条记录,判断条件是否匹配,如果匹配,将两个表的记录连接在一起保留。如果不成功,保留主表的字段,从表的字段置null

2.3、使用主表中的第1条记录,去匹配从表中的第3条记录,判断条件是否匹配,如果匹配,将两个表的记录连接在一起保留。如果不成功,保留主表的字段,从表的字段置null

3、主表中的第1条记录匹配完成后,再使用主表的第2条记录,依次进行匹配。

。。。。。。

右外连接

right join

内连与外连的区别:

1、内连可以省略条件。

2、外连必须使用条件。

3、内连时,如果条件不匹配,丢弃。

4、外连时,如果条件不匹配,也会保留主表中的字段。从表中的置null

自然连接

自动根据表中的同名字段作为匹配条件。

nature join

语法:

select *或字段列表 from 表A natural join 表B;

自然左外连接

select *或字段列表 from 表A natural left join 表B where

自然右外连接

select *或字段列表 from 表A natural rightjoin 表B where

示例:

aff7dae5314dec3620e8d25a6b98e9b0.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值