第四章 高级查询(二)

1.子查询(IF  EXISTS)

      用来判断某个表是否创建

          eg:检测temp是否创建

                    drop   table   if   exists  temp;

    语法:select.....  from  表名    where   EXISTS (子查询);

        注意:(1)子查询后边的数据要与父查询一一对应

                  (2)子查询查到东西就会执行外查询,如果查不到,就不会执行

    子查询有返回结果:EXISTS子查询结果为true

    子查询无返回结果:EXISTS子查询结果为fasle,外层查询不执行

2.子查询注意事项:

      (1)任何允许使用表达式的地方都可以使用子查询

      (2)嵌套在父查询SELECT语句的子查询可包括

              SELECT子句

              FROM子句

             WHERE子句 

             GROUP BY子句

              HAVING子句

       (3)只出现在子查询中而没有出现在父查询中的列不能包含在输出列中

4.创建临时表语法:

      create  temporary  table  表名 (查询语句);

注意:

        临时表只在当前连接可见,连接关闭自动删除,修改临时表数据不影响原表数据

5.EXISTS和 Not EXISTS区别:

     (1)EXISTS:如果子查询有结果,整句就会执行;如果没有结果,就不会执行

     (2)Not EXITST:如果子查询有结果,就不会执行;如果没有结果,就会执行

原文地址:https://www.cnblogs.com/unique1/p/12876848.html