mysql和oracle复杂查询语句_oracle中复杂sql查询语句详解 (1/4)

本文介绍了如何使用SQL的子查询从多个表中检索数据,特别是关注相关子查询在WHERE子句中的应用。通过一个具体例子展示了如何查询同时以研究所和大学系名义申请项目的专家,强调了子查询在数据库查询中的灵活性和重要性。
摘要由CSDN通过智能技术生成

1.查询语句的使用

使用 select语句和子查询(subquery)可以从一个或多个表,视图,实体试图中返回数据.

1.1相关子查询

可以将子查询(as subquery)或in或exists当成where的一个条件的一部分,这样的查询称为子查询

.where中可以包含一个select语句的子查询

.where中可以包含in,exists语句

.最多可以嵌套16层

.层次过多会影响性能

[例]简单子查询实例

查询是否有的专家既以研究所的名义来申请基金项目,又以大学系为单位申请项目

(按规定只能以一个单位来申请)

sql> create table univ_subject

2 (

3 name varchar2(12) not null,

4 per_id number not null,

5 dept_name varchar2(20)

6 );

sql> insert into univ_subject values('gaoqianjing',1001,'信息工程系');

sql> insert into univ_subject values('wangbing',1002,'物理系');

sql> insert into univ_subject values('liming',1003,'化学系');

===============

sql> create table colle_subject

2 (

3 colle_name varchar2(20),

4 per_id number

5 );

sql> insert into colle_subject values('电子研究所',1001);

sql> insert into colle_subject values('物理研究所',1005);

================

sql> select name,per_id,dept_name from univ_subject where per_id in

2 (select per_id from colle_subject);

name per_id dept_name

------------ --------- --------------------

gaoqianjing 1001 信息工程系

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值