sql复杂查询语句的使用
&as&V;f/@hy]*f1R0############################复杂查询语句的使用#####################################51Testing软件测试网&O1I K^)V#{:h
1.查询语句的使用
W] Z-}m,E0使用 select语句和子查询(subquery)可以从一个或多个表,视图,实体试图中返回数据.
4jw$HFM}/Z0 51Testing软件测试网^4y0`~Nwe+B
1.1相关子查询
0He*s3ja-S-}G'[ `0可以将子查询(as subquery)或in或exists当成where的一个条件的一部分,这样的查询称为子查询
YV
h3t;c0 .where中可以包含一个select语句的子查询51Testing软件测试网 M Iv2J;]P7y
.where中可以包含in,exists语句51Testing软件测试网 muo(NBb0sK/L!y
B/B7Q
.最多可以嵌套16层51Testing软件测试网E5T ]&N*H_!\ L
.层次过多会影响性能51Testing软件测试网2RD,Afw @R
[例]简单子查询实例51Testing软件测试网,J&`F} q6V6G
查询是否有的专家既以研究所的名义来申请基金项目,又以大学系为单位申请项目
"N!H0]3f@k8~0 (按规定只能以一个单位来申请)
CU6tf[,M$Y0 SQL> create table univ_subject
r3tb'B/V*m+z0 2 (
-xvV9Ku0 3 name varchar2(12) not null,51Testing软件测试网8@%H%q7s f G;ic
4 per_id number not null,51Testing软件测试网j$w2{P,ft
5 dept_name varchar2(20)
L` bD'RzY'z[0 6 );
{EIr-j0 SQL> insert into univ_subject values('gaoqianjing',1001,'信息工程系');
U%v#d+t%}?Y0 SQL> insert into univ_subject values('wangbing',1002,'物理系');51Testing软件测试网f/v)n4rY1|LABP
SQL> insert into univ_subject values('liming',1003,'化学系');51Testing软件测试网6Xt#c;Q0~Q
co
===============
-vQCV*P"H0 SQL> create table colle_subject
f^Yf w7Y
j$\E0 2 (51Testing软件测试网3d#aWhv#mS Rx
3 colle_name varchar2(20),51Testing软件测试网#BiU+Q:SlA:n
4 per_id number51Testing软件测试网_Y$_+w;t
5 );51Testing软件测试网HY.VM? \
p%F-V
SQL> insert into colle_subject values('电子研究所',1001);