子查询

子查询

什么是子查询:
子查询就是将一个查询的结果作为另一个查询的数据来源或判断条件的查询。
在增删改查语句中嵌套使用另外一条select语句
常见的子查询都是什么:
常见的子查询包括:WHERE子查询,FROM子查询,HAVING子查询,EXISTS子查询,子查询必须使用小括号括起来。
**子查询的执行顺序:**先子后父

查询年龄比小梅小的学生信息

SELECT * FROM student WHERE borndate>
(SELECT borndate FROM student WHERE `name`='肖梅')

在查询中 ‘=’ h和 in 的区别
= 在子查询语句只返回一个数据时可以进行比较
in: 在子查询语句返回多个数据时可以进行比较

查询S1的学生信息

SELECT * FROM student WHERE gradeid= 
(SELECT gradeid FROM grade WHERE gradename='S1')

查询S1和S2的学生

 SELECT * FROM student WHERE gradeid IN
 (SELECT gradeid FROM grade WHERE gradename='S1'OR gradename='S2')

模糊查询符号代表的含义

% :任意长度 —:单个字符 []:在范围内 [^]:除此以外
#查询姓张的学生

SELECT * FROM student WHERE `name` LIKE'张%'

#查询除北京以外的学生

SELECT * FROM student WHERE address NOT LIKE'%北京%'

in 和exists的区别
in :会将子查询语句的结果整合到父查询语句中进行一一比较
exists :只关心子查询语句有没有结果 如果有则执行前面的SQL语句 没有结果则不执行前面的SQL
exists的用法:
创建新表或者新库时以防出现冲突问题

CREATE TABLE IF NOT EXISTS studentbak;

#删除表或者库的时候以防出现问题

DROP TABLE IF EXISTS student;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值