SQL高级查询(子查询)

时间:2024-03-02 07:38:36

高级查询:多条查询语句结合的方式

  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)子查询查询到结果作为父查询查询的条件


    连接查询可以被子查询代替,
    子查询不一定可以被连接查询代替

   ⭐⭐⭐
    不相关子查询
    子查询可以单独执行
    相关子查询
    子查询不可以单独执行