`
jhyimu2005
  • 浏览: 181584 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
社区版块
存档分类
最新评论

SQL学习笔记-嵌套查询

SQL 
阅读更多

http://www.cnitblog.com/taihang/archive/2006/06/12/12100.html

 

 嵌套查询
定义:
1 .指在一个外层查询中包含有另一个内层查询。其中外层查询称为主查询,内层查询称为子查询。
2 .SQL允许多层嵌套,由内而外地进行分析,子查询的结果作为主查询的查询条件
3 .子查询中一般不使用order by子句,只能对最终查询结果进行排序
子查询(sub query)
where  表达式  [ not ]   in  (子查询)
where  表达式 比较运算符 [ any|all ]  子查询
where   [ not ]   exists  (子查询)

1 .子查询-单值比较
返回单值子查询,只返回一行一列
主查询与单值子查询之间用比较运算符进行连接:
运算符:
> , >= , < , <= , = , <>
例:找出与太行同龄的同事
select   *   from  company
where  age  =  ( select  age  from  company
             
where  name = taihang)

2 .子查询- in
例:查询选修了‘
001 ’课程的学生学号,姓名。
select  id,name
from  student
where  id  in  ( select  id 
             
from  taihang
             
where  id = ' 001 ' )

3 .子查询-多值比较all
多行一列
1 .父查询与多值子查询之间的比较需用all来连接
2 .标量值S比子查询返回集R中的每个都大时,s >all ,r为true
3 .all表示所有
4 . >all , <all , >=all , <=all , <>all ,注:all等价于not  in
例:找出年龄最小的学生
select   *   from  student
where  age <all ( select  age  from  student)

4 .子查询-多值比较some /any
1 .父查询与多值子查询之间的比较需用some / any来连接
2 .标量值S比子查询返回集r中的某一个都大时,s > some时r为true 或s > any时r为true
3 .some表示部分
4 . >some , >=some , =some , <some , <=some , <>some ,注: = some等价于in, <> some不等价于not  in .
例:找出不是最小年龄的学生
select   *   from  student
where  age  >   some ( select  age  from  student)

5 .子查询-存在判断exists
1 . exists+ 子查询用来判断该子查询是否返回元组
2 .当子查询的结果集非空时,exists为true
3 .当子查询的结果集为空时,exists为false
4 .不关心子查询的具体内容,因此用select  *
例:列出先修了C01课程的学习的学号,姓名
select  son,sname
from  strdent
where   exists ( select   *   from  sc
             
where  sc.sno = stusent.sno  and
             cno
= ' C01 ' )
最后这一个不是很好理解呀!等用多了就好了。

分享到:
评论

相关推荐

    Oracle 10g 学习笔记

    │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置listener.ora【避免出现ORA-12514错误】.txt │ 贴子树状态存储结构.jpg │ 贴子树状态存储结构.sql │ ├─01...

    PL/SQL学习笔记

    什么是集合? 集合是用来存放大量数据的一种容器 PL/SQL有三种集合 联合数组 ...学习状态:学一个东西,有欲望,写东西出来 三段式:被动,自发,自动 java-web 自己写一个,从四月开始到中旬任务

    2009达内SQL学习笔记

    多数DBMS不需要在单条SQL语句后加分号,但特定的DBMS可能必须在单条SQL语句后加分号。 SQL语句的最后一句要以 “;”号结束 二、写子句顺序 Select column,group_function From table [Where condition] ...

    SQL学习笔记

    结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是...

    【学习笔记】温习sql及MySQL的使用(数据库第2次实验)

    实验过程3.1 数据定义3.1.1 熟悉基本表的创建、修改及删除3.1.2 熟悉索引的创建和删除3.1.3 熟悉视图的创建和删除3.2 数据操作3.1.1 完成各类更新操作(插入数据,修改数据,删除数据)3.1.2 完成各类...,嵌套查询...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    hacktiv8-task:Hacktiv8全栈训练营期间的个人学习笔记

    在Hacktiv8的全栈新手训练营期间,进行个人学习笔记(每日挑战,实时代码等)。 工具: 文本编辑器:Visual Studio Code 终端机:Git bash,MacOS终端机,iTerm 版本控制:Git 回购经理:Github 包管理器:NPM...

    整理后java开发全套达内学习笔记(含练习)

    nested [java] 嵌套的 ['nestid] '如:内部类(nested classes) Object [java] 对象 ['ɒbdʒekt] Overload [java] 方法的重载(不同参数列表的同名方法) [,әuvә'lәud] Override [java] 方法的覆盖(覆盖父类的...

    若干源程序资料12.rar

    2012-06-11 21:35 50,176 关于c语言和汇编语言相互嵌套调用的学习总结.doc 2012-06-11 21:11 190,993 典型算法包.rar 2012-06-11 21:16 264,555 内存管理和设备调试中文.pdf 2012-06-11 21:30 267,989 冈萨雷斯数字...

    asp.net知识库

    VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf...

Global site tag (gtag.js) - Google Analytics