sql复杂查询语句的使用
############################复杂查询语句的使用#####################################
k(G!q&q%n5J|01.查询语句的使用
L.IG6[9K#}"Z0使用 select语句和子查询(subquery)可以从一个或多个表,视图,实体试图中返回数据.
e@H xO0 51Testing软件测试网-e?1zqY s'xq$~
1.1相关子查询51Testing软件测试网3F!K]
x'r
可以将子查询(as subquery)或in或exists当成where的一个条件的一部分,这样的查询称为子查询51Testing软件测试网*mV
TLAQ"V
.where中可以包含一个select语句的子查询
+@:BhLeT$U;X0 .where中可以包含in,exists语句
+g$hq Yr5Hp+@Pv*|0 .最多可以嵌套16层
*@9Y#\*^({^0 .层次过多会影响性能51Testing软件测试网'ok/Kq~["xxx
[例]简单子查询实例
9hR HO)N0 查询是否有的专家既以研究所的名义来申请基金项目,又以大学系为单位申请项目
Z2XT.?0y&}E!wQ/DW`0 (按规定只能以一个单位来申请)51Testing软件测试网NN].ex
SQL> create table univ_subject51Testing软件测试网~)c:k1_F/X!zu
ho
2 (
5w"Z+^0o,Q6`0 3 name varchar2(12) not null,51Testing软件测试网sKmT3g$vw%I
4 per_id number not null,
w4T7Vu8o d'@R MA@t)@3H0 5 dept_name varchar2(20) 51Testing软件测试网$_MSL"vS*LV
6 );51Testing软件测试网_1x1Nqn&n#]@}
SQL> insert into univ_subject values('gaoqianjing',1001,'信息工程系');51Testing软件测试网!R3|-|/Cuw"moQ
SQL> insert into univ_subject values('wangbing',1002,'物理系');51Testing软件测试网-K*xadK5E_RP
SQL> insert into univ_subject values('liming',1003,'化学系');
3y
VX-vO)F0 ===============51Testing软件测试网8J%b3e8?
kW
SQL> create table colle_subject
fV)Z?,I/a HoW0 2 (51Testing软件测试网s~[BF&g7AvB
3 colle_name varchar2(20),
0vRR&mw](?~S-n%H0 4 per_id number
eXoD2Ng8D0 5 );
U gd!O&v4pn q.S0 SQL> insert into colle_subject values('电子研究所',1001);
8JFd"G%I9k3A0 SQL> insert into colle_subject values('物理研究所',1005);