oracle语句相关

 

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

5 .
子查询-存在判断exists
1 . exists
子查询用来判断该子查询是否返回元组
2 .
当子查询的结果集非空时,existstrue
3 .
当子查询的结果集为空时,existsfalse
4 .
不关心子查询的具体内容,因此用select *
例:列出先修了C01课程的学习的学号,姓名
select son,sname
from strdent
where exists ( select * from sc
where sc.sno = stusent.sno and
cno = ' C01 ' )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值