• SQL语句


    嵌套查询   

         包含一个或多个子查询或者子查询的另一个术语的 SELECT 语句。
        

         在一个SELECT 语句的WHERE 子句或HAVING 子句中嵌套另一个SELECT 语句的查询称为嵌套查询,又称子查询。子查询是SQL 语句的扩展。

     

      子查询可以使用任何普通查询中使用的关键词:如DINSTINCT(去重),GROUP BY(分组),LIMIT(限制记录条数),ORDER BY(排序),UNION(联合去重),ALL,UNION ALL(联合不去重)等。可以使用<,>, <=, >=, =, <>运算符进行比较,也可以使用ANY ,IN和SOME进行集合的匹配。

       

         嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用。还可以用于insert、update、delete语句或其他子查询中。

    1.组成

           (1)包含标准选择列表组件的标准select查询。

      (2)包含一个或多个表或者视图名称的标准from子句。

      (3)可选的where子句。

      (4)可选的group by子句。

      (5)可选的having子句。

    2.语法规则

           (1)子查询的select查询总是使用圆括号括起来。

      (2)不能包括compute或for.browse子句。

      (3)如果同时指定top子句,则可能只包括orderby子句。

      (4)子查询最多可以嵌套到32层。个别查询可能会不支持32层嵌套。

      (5)任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值。

      (6)如果某个表只出现在子查询中二不出现在外部查询中,那么该表的列就无法包含在输出中。

    3.表达形式

            SELECT <目标表达式1>[,...]
            FROM <表或视图名1>
            WHERE [表达式] SELECT <目标表达式2>[,...]
            FROM <表或视图名2>
            [GROUP BY <分组条件>
            HAVING [<表达式>比较运算符] SELECT <目标表达式2>[,...]
            FROM <表或视图名2> ]

    4.简单嵌套查询

    表结构:



    示例:

    select name,age from student where age>(select age from student where name='薇薇');
    结果:


    5.in嵌套查询

    in关键字用于where子句中用来判断查询的表达式是否在多个值的列表中。返回满足in列表中的满足条件的记录。

    示例:

    select name from student where id in (select id from student where department='计算机科学与技术');
    结果:


    6.some嵌套查询(和any等价)

    some在sql中的逻辑运算符号,如果在一系列比较中,有些值为True,那么结果就为True。

    some的语法是:

      <表达式>{=|<>|!=|>|>=|!>|<|<=|!<}some(子查询)  

    示例:

    select name from student where age>some (select age from student where name='薇薇');

    结果:


    注:SQL中定量谓词不支持反操作,也就是说,不能在ANY或者SOME前加NOT关键字。但可以用“<>”号表示否定

    7.all嵌套查询

    all是sql中的逻辑运算符号,如果一系列的比较都为true,那么结果才能为true。

    all的语法是:

      <表达式>{=|<>|!=|>|>=|!>|<|<=|!<}all(子查询)

    示例:

    select name from student where id>all (select id from student where name='灵思');
    结果:


    8.exists嵌套查询

    exists是sql中的逻辑运算符号。如果子查询有结果集返回,那么就为True。exists代表“存在”的意义,它只查找满足条件的那些记录。一旦找到第一个匹配的记录后,就马上停止查找,但是如果子查询中因为加了条件而没有结果集返回,则主语句就不执行了。

    示例1:

    select id,name from student where exists(select id from student where name='灵思');
    结果:


    示例2:

    select id,name from student where exists(select id from student where name='俞静');
    结果:



  • 相关阅读:
    Javascript、Jquery获取浏览器和屏幕各种高度宽度
    使用jquery修改css中带有!important的样式属性
    jQuery事件之on()方法绑定多个选择器,多个事件
    JS 实现类似打印的效果(一个字一个字显示)
    编写jQuery 插件
    HTML5中新增加Input 的种类
    巧用Ajax的beforeSend提高用户体验
    window窗口操作
    CIDR
    mysql
  • 原文地址:https://www.cnblogs.com/mlan/p/11060360.html
Copyright © 2020-2023  润新知