子查詢

子查詢所要解決的問(wèn)題是不能一步求解,需要兩步或者多步求解的類(lèi)型

注意的問(wèn)題:

1、括號(hào)

2、合理的書(shū)寫(xiě)風(fēng)格

3、可以在主查詢的where select having from后面放置子查詢

4、不可以在group by后面放子查詢

5、強(qiáng)調(diào)from后面的子查詢

(重要)---查詢員工信息:?jiǎn)T工號(hào) ?姓名 ?薪水

select * from ( select empno,ename,sal from emp );

---查詢員工信息:?jiǎn)T工號(hào)? 姓名? 薪水 ?年薪

select * from ( select empno,ename,sal,sal*12 annlsal from emp );

6、主查詢和子查詢可以不是同一張表;只要子查詢返回的結(jié)果主查詢可以使用即可

查詢部門(mén)名稱(chēng)是sales的員工的信息

select? e.*? from emp where e.deptno= (select * from dept where dname='sales' )------------子查詢

select ?e.* ?from emp e,dept d where e.deptno=d.deptno and d.dname='sales'----------------多表查詢

理論上使用多表查詢比子查詢快

7、一般不在子查詢中使用order by;但top-N分析問(wèn)題中,必須對(duì)子查詢排序

8、子查詢(內(nèi)查詢)在主查詢之前一次執(zhí)行完成,子查詢的結(jié)果被主查詢使用(外查詢):一般先執(zhí)行子查詢,再執(zhí)行主查詢;但相關(guān)子查詢例外

9、子查詢分為:?jiǎn)涡凶硬樵兒投嘈凶硬樵?/p>

單行子查詢只能使用單行操作符 多行子查詢只能使用多行操作符

多行子查詢操作符:

in ? ? ? ? ? ? 等于列表中的任何一個(gè)

any ? ? ? ? ?和子查詢返回的任意一個(gè)值比較

select * from emp where sal > (select min(sal) from emp where deptno=30)

=select * from emp where sal > any (select sal from emp where deptno=30)

all ? ? ? ? ? ?和子查詢返回的所有值比較

select * from emp where sal > (select max(sal) from emp where deptno=30)

=select * from emp where sal > all(select sal from emp where deptno=30)

10、注意子查詢的null

not in 子查詢中不能有空值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容