mysql子查询的相关内容

出现在其他语句中的SELETE语句,称为子查询或者内查询,外部的查询称为外查询或者主查询。

子查询的种类有四种,而咱们想学习子查询,首先就得对四种查询有所认知,在此发表个人依据平时的使用时的理解。

1.select子查询(外语句先执行,后执行子语句)

案例:

在select后加‘子’的部分,将另一张表的内容当作一列,变成一个列标进行查询,个人用的较少。可见图中被标记的部分就是‘子’,获取老师的名字,好处在于此处并未进行常规的关联查询,而是直接加入了一列name。

2.where子查询(先执行子查询,再执行外查询)

        where子查询和in连用,常用于筛选,子部分放在in之后

        图一是子的部分,获取学过语文的学生的Sid,此后执行外查询,where后进行一个判断筛选,判断所有学生中,Sid和子表中的Sid相同的学生。同理,如果像获得没有学习语文的学生,只需将in 变为not in即可

​案例:

 

 

3.from子查询(先执行子查询,再执行外查询)

        from子查询子的部分直接当成一张表写在from后面

        图1获取到学语文的学生的学号和成绩,图2执行外查询,将子查询当成一张表获取学号,不知道是否有人注意到跟之前查询不一样,我给表名命名了a,因为其实from查询还有一些条件才能使用

1.子表部分必须命名才可以使用

2.当子表有关联查询时,获取的结果一定不能有重复列名,否则无法执行外查询

案例:

4.exist子查询(先执行外语句,再执行子查询)

        exist你可以理解为in,同样是作为筛选,图1时获得课程有01的学生,图2执行外查询后,判断输出,符合子表中的条件的才输出,值得一提的时子表中必须有子和外的链接部分,如同图1中的and后部分,通过主键进行关联

案例:

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值