找回密码
 立即注册
杭州6期1—何茹 +好友
这个人很懒什么都没写
听众
2
主题
19
金钱
236
个人名片
粉丝关注
还没有人关注TA
添加表情

数据库——子查询语句

已有 121 次阅读2021-4-11 21:06

什么是子查询
一个查询嵌套另一个查询

any some  all 修饰比较运算符号




子查询分类:
1、标量子查询(返回一个值)
标量子查询 把一个sql执行返回的一个值,作为另一个sql的一个条件
得到的结果是一行一列,一般出现在where之后
注意点:标量子查询允许使用的符号
=,!=,> ,>=,=<,<
select * from emp where dept2=(select dept1 from dept where dept_name=“财务” ) ;

2、列子查询(返回一个列)
定义:返回的是一列值,一列多行
通常在where 条件的后使用,使用的是in 或not in ,不允许使用=,>,< ,

3行子查询 (返回一行多列)
指子查询返回的结果集是一行多列,一般出现在where后


4、表子查询重点
(返回一个表) from的后面指子查询返回的结果是一个表(多行多列)
注意:临时表 取别名 ,聚合函数取别名 
1、带in关键字的子查询
一个查询预计的条件可能落在另一select语句的查询结果中

2、比较运算符的子查询
= ,> ,>,>= ,=<

3、带any关键字的子查询
=any 与 in 等效  与比较运算符联合使用,表示子查询返回的任何值比较为真,则返回真

4、some

5、带all的关键字的字查询
!=all 或者 <>all 与 not in 等效
表示满足所有的条件

6、带exists 关键字的子查询
理解为:将主查询的数据,放到子查询中做条件验证,根据验证结果,来决定主查询的是数据结构
在子查询到记录,则进行外层查询,否则,不执行外层查询

7、合并查询 union 去除重复的记录
union all 不会去除重复的记录

注意:
1、子查询必须放在一对小括号内;
2、“=”是比较运算符,还可以与其他比较运算符一起使用,要求子查询的列只有一个一行一列
3、子查询通常作为where的条件,表子查询一般在from的后面
4、子查询不能包含order by的语句

























评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册