Mysql内外多表连接查询和子查询要点及案例

1、内连接

内连接:对于查询结果的要求:只有两个表中能够匹配到数据,才会做显示。

通过on关键字进行表与表之间的关联

select  表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2...
from 表名1  inner join  表名2
on  表名1.列名=表名2.列名;

1.1三表及其更多表连接

:通过on关键字进行表与表之间的关联

select  表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2...表名3.列名3.....
from 表名1  inner join  表名2
on  表名1.列名=表名2.列名 inner join 表名2.列名=表名3.列名 inner join........

多表查询的做题思路:

  1. 确定表
  2. 表与表之间是否能建立起关联(直接,间接)
  3. 查询的列
  4. 其它的额外条件

2、外连接

特征:至少会返回一个表的所有内容。返回一个表全部内容,另一个表全为空。

分类: 区分左表和右表:在连接条件中,先写的是左表,后写的是右表
左连接:

select  表名.列名
from  表名1 left outer join 表名2
on  表名1.列=表名2.列
右连接:select 表名.列名
from  表名1 right outer join 表名2
on 表名1.列名=表名2.列名;

3、子查询

在查询语句的基础上,嵌套的查询语句,一般表示where后面的条件
子查询分类: 条件要什么,子查询就查什么
使用情况:
1.在条件查询过程中,条件没有明确告诉咱们
例:查询计算机系的学生修了哪些课程?计算机系–>学生–>课程
2.聚合函数出现在条件中,因为where后面不能直接写聚合函数,那么就可以考虑把聚合函数的值给查询出来。

#例:查询计算机系的学生修了哪些课程?计算机系-->学生-->课程
#例:成绩>平均成绩  
  where grade>(select avg(grade) from sc)

1.1.嵌套子查询 in 子查询的结果是有多个值

select 列名 from 表名 where 列名 in(select 列名 from 表名 where  
列名 in(select查询语句));
  1. 2.相关子查询

    子查询的结果只有一个值

select 列名 from 表名 where 列名=(select  列名  from  表名 where 列名 =(select查询语句))
insert和select语句的结合:insert into 表名  select查询语句;

update set 和 delete from和前面的方式一样,都是在where后跟查询语句。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王大兴的王兴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值