zoukankan      html  css  js  c++  java
  • SQL数据库嵌套查询

    嵌套查询
    保存查询结果
    从查询结果创建一个永久表:
    select 字段列表 into 新表名
    from 原表名
    where 查询条件
    嵌套查询
    一个 select……from……where语句称为一个查询块。
    将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询称为嵌套查询。
    其中外层查询叫父查询或主查询,内层的查询叫子查询或从查询。
    insert,delete,update,select命令中允许表达式的地方都可以包含子查询。子查询甚至可以包含在另一个子查询中
    嵌套查询语法规则
    子查询的SELECT总是用圆括号括起来
    不能包含compute或for browse子句
    任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值
    如同时指定top子句,则可能只包括order by子句
    子查询最多可嵌套32层,个别查询可能不会支持32层
    如果某个表只出现在子查询而没有出现在外部查询中,那么该表的列就无法包含在输出中
    几种语法格式示例
    Where 查询表达式 比较运算符 [any|all|some](子查询)
    where 查询表达式 [not] in (子查询)
    Where [not]exists(子查询)
    使用简单比较符的嵌套查询
    使用简单比较嵌套查询的比较符有:=、!=(<>)、>、>=、<、<=。把一个表达式的值与子查询的值进行比较,返回比较结果为TRUE的记录

    select <目标列>
    from  表
    Where  表达式(列名) 比较符 (select 列 from 表 [where…])

    带[any|all|some]的比较嵌套查询
    1、T—SQL支持3种定量谓词:some,any,all。它们都是判断是否任何或全部返回值都满足搜索要求的。其中some,any只注重是否有返回值满足搜索要求,它们含义相同可替换使用。

    select <目标列>
    from  表
    Where  表达式(列名) 比较符 all | some | any (select 列 from 表 [where…])

    使用比较符的嵌套查询
    Some和any:表示表达式只要与子查询结果集中的某个值满足比较的关系时,就返回true,否则返回false.
    All:指定表达式要与子查询结果集中的每个值都进行比较,当表达式与每个值都满足比较的关系时,才返回true,否则返回false;
    【例】查找比所有计算机系的学生年龄都大的学生。 

    select * from student
      	where  出生时间 <all (select 出生时间 from  student
             	where 专业名 = '计算机')

    使用IN操作符的嵌套查询
    子查询只能返回一个或一列值,当返回一列值时适合用in操作符,表示表达式的值是子查询产生的一系值中的一个就返回TRUE

    select <目标列>
    from  表
    where  列名 in (select 列 from 表 [where…])

    使用EXISTS操作符的嵌套查询
    EXISTS谓词只注重子查询是否返回行,如果子查询返回,谓词返回为真,否则为假。 EXISTS并不真正使用子查询的结果,它仅仅测试子查询是否产生任何结果。
    EXISTS谓词子查询的SELECT子句中可包含任何列名,甚至多列,因为它只在乎是否有返回行。

    select <目标列>
    from  表
    where exists (select 列 from 表 [where…])
  • 相关阅读:
    2021.6.2 Python网络编程
    2021.6.1 数据库
    2021.5.29 PHP大作业
    2021.5.28 bootstrap和vue
    2021.5.27 三个和尚
    2021.5.26 Python操作Mysql数据库
    2021.5.25 PHP作业
    2021.5.24 Python解析XML
    如何用 GPU 训练模型?
    44 内核中的中断处理(上)
  • 原文地址:https://www.cnblogs.com/CharmingDang/p/9663679.html
Copyright © 2011-2022 走看看