1.什么是子查询?
嵌套在主查询中的查询----子查询
也就 是说子查询是嵌套在查询语句里面的查询语句,就像语
句块里面的嵌套语句块类似
子查询的简单形式:
select columnA,(子查询) AS cloumnB from 表名
玩整的sql结构:
select from where group by having order by
select中嵌套
select 学号,姓名,科目,(select 班级名称 from
t_class c where c.班级编号=s.班级编号)名称 from
t_student s
from中嵌套
select *from (select 学号,姓名 from t_student)s
-----子查询结果可以多行多列
where中嵌套
select 列1,列2 from 表 where 列=(子查询)
子查询运算符(ALL ANY EXISTS)
select *from t_student
where 分数>(select 分数 from t_student
where 姓名=‘张三’ AND 科目=‘c语言’)
AND 姓名!=‘张三’
--ALL运算符
和子查询的结果逐一比较,必须满足时表达式的值才为真
--ANY运算符
和子查询的结果逐一比较,其中一条记录满足条件则表达式
的值就为真
------EXISTS/NOT EXITSIS运算符
EXISTS判断子查询是否存在数据,如果存在则表达式就为真
,反之为假NOT EXISTS 相反
2.子查询分类
--相关子查询
.执行依赖于外部查询的数据
.外部查询就返回一行,子查询就执行一次
--非相关子查询
.独立于外部查询的子查询
.子查询总共执行一次,执行完毕后将值传递给外部查询。
------相关子查询消耗更多的时间
3.组合查询
UNION预算符:是一种联合两条以上的查询运算符,类似多条
查询结果相组合的效果
select 列1,列2 from 表1
UNION
select 列1,列2 from 表2;
嵌套在主查询中的查询----子查询
也就 是说子查询是嵌套在查询语句里面的查询语句,就像语
句块里面的嵌套语句块类似
子查询的简单形式:
select columnA,(子查询) AS cloumnB from 表名
玩整的sql结构:
select from where group by having order by
select中嵌套
select 学号,姓名,科目,(select 班级名称 from
t_class c where c.班级编号=s.班级编号)名称 from
t_student s
from中嵌套
select *from (select 学号,姓名 from t_student)s
-----子查询结果可以多行多列
where中嵌套
select 列1,列2 from 表 where 列=(子查询)
子查询运算符(ALL ANY EXISTS)
select *from t_student
where 分数>(select 分数 from t_student
where 姓名=‘张三’ AND 科目=‘c语言’)
AND 姓名!=‘张三’
--ALL运算符
和子查询的结果逐一比较,必须满足时表达式的值才为真
--ANY运算符
和子查询的结果逐一比较,其中一条记录满足条件则表达式
的值就为真
------EXISTS/NOT EXITSIS运算符
EXISTS判断子查询是否存在数据,如果存在则表达式就为真
,反之为假NOT EXISTS 相反
2.子查询分类
--相关子查询
.执行依赖于外部查询的数据
.外部查询就返回一行,子查询就执行一次
--非相关子查询
.独立于外部查询的子查询
.子查询总共执行一次,执行完毕后将值传递给外部查询。
------相关子查询消耗更多的时间
3.组合查询
UNION预算符:是一种联合两条以上的查询运算符,类似多条
查询结果相组合的效果
select 列1,列2 from 表1
UNION
select 列1,列2 from 表2;