• 嵌套查询 带有in谓词,比较运算符,any或all谓词的子查询


    前言

    1.      将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询称为嵌套查询

    2.      上层的查询块叫外层查询或父查询或主查询,下层查询块又称为内层查询或子查询,sql语句允许多层嵌套查询!

    3.      子查询的select语句不能使用order by子句,order by子句永远只能对最终(或外)查询结果排序

    4.      嵌套查询的求解方法是由里向外处理

    带有in谓词的子查询

    1.查询与“王林”同一个系学习的学生的所有信息

    一般的查询方法:

           步骤一:确定“王林”所在系名

           select dept from dbo.s where sn='王林'

           步骤二:查找所有计算机系的学生

          select *from dbo.s where dept='计算机'


    2.分步写比较麻烦,使用嵌套查询:

    select *from dbo.s where dept in(select dept from dbo.s where sn='王林')


    3查询选修了课程名为“数据库”的学生学号和姓名

    select * from dbo.s where sno in (select sno from dbo.sc where cno in (select cno from dbo.c where cn='c语言'))

     


    带有比较运算符的子查询

    1.带有比较运算符的子查询是指父查询与子查询之间用比较运算符进行连接。

    常用的比较运算符:>、<、=、>=、<=、!=、

     

    2.一个学生只能在一个系学习,所以内查询王林所在系的结果是唯一值

    3.查询与“王林”同一个系学习的学生的所有信息(sql)

    select *from dbo.s where dept =(select dept from dbo.s where sn='王林')


    带有any 或all谓词的子查询

    1.      子查询返回单值时可以用比较运算符,返回多值时必须结合使用any或all谓词。使用any或all谓词时必须同时使用比较运算符。

    2.

    >any

    大于子查询结果中的某个值

    <any

    小于子查询结果中的某个值

    >=any

    大于等于子查询结果中的某个值

    <=any

    小于等于子查询结果中的某个值

    =any

    等于子查询结果中的某个值

    !=any或<>any

    不等于子查询结果中的某个值

    >all

    大于子查询结果中的所有值

    <all

    小于子查询结果中的所有值

    >=all

    大于等于子查询结果中的所有值

    <=all

    小于等于子查询结果中的所有值

    =all

    等于子查询结果中的所有值

    !=all或<>all

    不等于子查询结果中的任何一个值

    3.查询其他系中比信息系所有学生年龄小的学生名单(升序)

    select *from dbo.s where age<all(select age from dbo.s where dept='信息') and dept !='信息' order by age asc

     或集函数处理:

    select *from dbo.s where age<(select min(age) from dbo.s where dept='信息') and dept !='信息' order by age asc

    数据库表s,c,sc截图请到:http://www.cnblogs.com/fuge/archive/2012/03/16/2400913.html

  • 相关阅读:
    准备开始学习XNA
    徐家骏:华为十年感悟
    memcached详解
    sql时间
    Sql server log file 缩小和删除
    看高手都是运用的灵活自如,打算从今天开始学习他!
    什么是内存对齐
    VS 2008 远程调试 与asp.net
    XNA入门的代码注释
    HTML的段落与文字
  • 原文地址:https://www.cnblogs.com/fuge/p/2342568.html
Copyright © 2020-2023  润新知