ORACLE SQL 子句应用

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:Oracle sql*plus  PLSQL Developer

作者:李成富

撰写时间:2019年3月26日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 应用子句注意事项:

子查询要包含在括号内。

将子查询放在比较条件的右侧。

单行操作符对应单行子查询,多行操作符对应多行子查询

示例: 列出'张三'所在部门中每个员工的姓名与部门号

select last_name,department_id from employees

where department_id in (select department_id from employees where last_name in (张三))

这就是查询语句中对子句的一个简单调用。

子查询可以运用到查询语句的各个地方,比如当子语句放的FROM后面时它就相当于是一张表,当子语句放的SELECT 和FROM中间时它就相当于是一个字段,当子语句放的WHERE后面时它就相当于是一个比较条件。

列入下面的示例:

1、查询studemt表中的姓名和性别(使用子查询进行查询)

SELECT * FROM (SELECT SNAME,SSEX FROM STUDEMT)

使用方法:把子查询查出的数据当作一张数据表

2SC 表中插入一些记录,这些记录要求符合以下条件:

没有上过编号“c002”课程的同学学号、“c002”号课的平均成绩;

INSERT INTO SC

  SELECT SNO ,'c002' AS CNO ,(SELECT AVG(SCORE) FROM SC D WHERE CNO = 'c002') AS SCORE

     FROM STUDENT ST

    WHERE SNO NOT IN (SELECT SNO FROM SC WHERE CNO = 'c002')

使用方法:把子查询查出的数据当作一个字段

3、查询“c001”课程比“c002”课程成绩高的所有学生的学号;

SELECT *

  FROM SC

 WHERE CNO = 'c001'

   AND SCORE > all (SELECT max(score) FROM SC WHERE CNO = 'c002')

使用方法:把子查询查出的数据当作比较条件

单行操作符:

等于   =

小于   >

大于   <

小于等于  >=

大于等于  <=

不等于    <> 或 !=

 

多行操作符

IN     等于列表中的任意一个

ANY   和子查询返回的某一个值比较

ALL    和子查询返回的所有值比较

对于子句运用总结:

  1. 子查询的运用使得一些复杂问题变得简单化,但也增加了代码量。
  2. 子查询可以运用到查询语句的各个地方,适应性高。
  3. 单行子查询只能使用单行操作符,多行子查询只能使用多行操作符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值