10、mysql数据表中数据的查询(2)

介绍一下mysql中查询的重中之重,连接查询

创建student和teacher表,表中数据如下:

student
teacher

交叉连接查询

查询结果是连接的几个表中满足条件的相关联的数据的交集

sql
SELECT s.id sid, s.name sname , t.id tid ,t.name tname FROM student s ,(或者将逗号去掉使用CROSS JOIN) teacher t  WHERE  s.name = t.name

 

结果

 

内连接查询

将连接的几个表中满足条件的数据的交集查询出来,同上

sql
SELECT s.id sid, s.name sname , t.id tid ,t.name tname FROM student s INNER JOIN teacher t ON  s.name = t.name

 

结果

 

左外连接查询

将连接的左表中满足条件(where后边的数据)的全部数据和右表中满足连接条件(on后边的条件)的数据查询出来,如果在右表中没有满足连接条件的数据则以NULL值代替,右连接同理

sql
SELECT s.id sid, s.name sname , t.id tid ,t.name tname FROM student s LEFT JOIN teacher t ON  s.name = t.name

 

结果

 

右外连接查询

sql
SELECT s.id sid, s.name sname , t.id tid ,t.name tname FROM student s RIGHT JOIN teacher t ON  s.name = t.name

 

结果

 

分析

由于未进行任何优化处理,使用explain来分析以上sql时,结果如下:

使用连接查询时,一定要注意连接条件一定要添加,不然容易造成大量冗余数据出现

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值