高级查询:多条查询语句结合的方式
1、简单查询
select top n * from 表名
where 分组前条件
group by 分组
having 分组后条件
order by 排序
2、联表查询
内连接 select * from A
inner join B on A.列 = B.列
左外连接select * from A
left out join B on A.列 = B.列
右外连接select * from A
right out join B on A.列 = B.列
全连接 select * from A
full join B on A.列 = B.列
交叉连接select * from A
cross join B
3、联合查询UNION
1)联合不合并数据Union All
2)联合合并数据Union
要求:查询列的数据类型要一致、数目要一致
select * from A
union all
select * from B
其他用法:多行插入
insert into A values
select 1,\'张三\',\'男\'
union select 2,\'李四\',\'女\'
union select 3,\'王五\',\'男\'
4、高级查询(子查询)
1)简单子查询 = > < >= <= <>
2)in/not in子查询
3)exists查询
4)相关子查询
子查询:一条查询语句的结果作为另一条的查询条件
select * from A where (select * from B)
注意:
1)子查询需要用()括起来,一般在运算符的右边
2)子查询返回的结果必须和条件匹配
3)当子查询跟随在 =、!=、<、<=、>、>= 之后,要求子查询只返回1个结果
4)in子查询的返回结果可以有多个,一般使用in代替=
1)子查询需要小括号引起来
2)子查询查询到结果作为父查询查询的条件
连接查询可以被子查询代替,
子查询不一定可以被连接查询代替
⭐⭐⭐
不相关子查询
子查询可以单独执行
相关子查询
子查询不可以单独执行