您的位置:首页 > 数据库 > MySQL

MYSQL学习笔记----子查询

2016-10-02 11:23 441 查看
1、子查询

    (1)子查询是指出现在其他的SQL语句内的SELECT字句


     例如:

    SELECT * FROM t1 WHERE col1 = (SELECT col2 GROM t2);

    ■解说:

    --- SELECT * FROM t1 表示外部查询(Outer statement)

    --- SELECT col2 GROM t2 表示内部查询,也称为子查询(subquery)

   

    !注意:

     ---子查询指嵌套在查询内部,并且必须始终出现在圆括号内

     ---子查询可以包含多个关键字或条件

         如:DISTINCT,GROUP BY ,ORDER BY ,LIMIT ,函数等。

     ---子查询的外层查询可以是:SELECT ,INSERT,UPDATE,SET 或DO.

     ---子查询可以返回标量,一行,一列或子查询。

  

    (2)使用比较运算符的子查询

       ---使用比较运算符的子查询

           = ,>,<,>=,<=,<>,!=,<=>

       ---语法结构

          SELECT * FROM t1 WHERE col1 > (SELECT col2 GROM t2);



     (3)使用ANY,SOME,或ALL修饰的比较运算符


         ---语法结构

          SELECT * FROM t1 WHERE col1  =ANY (SELECT col2 GROM t2);

        ■解说:

          ANY ,SOME,ALL关键字

        ----------------------------------------------

                    ANY      SOME       ALL

        ----------------------------------------------

          >,>=     最小值    最小值    最大值

        ----------------------------------------------

          <,<=     最大值    最大值    最小值

        ----------------------------------------------

           =        任意值    任意值

        ----------------------------------------------

          <>,!=,                        任意值

        ----------------------------------------------



        (4)使用[NOT] IN的子查询


          ---语法结构

          SELECT * FROM t1 WHERE col1 ANY (SELECT col2 GROM t2);

            

           !注意:

            =ANY运算符与IN等效

            != ALL 或<>运算符与NOT IN等效

         (5)使用[NOT]EXISTS的子查询

             ---如果子查询返回任意行,EXISTS将返回TRUE;否则为FALSE

           (6)将查询结构写入数据表

               ---语法结构

                INSERT [INTO] table_name [(col_nmae,..)]

               SELECT...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: