sql查詢給表起別名要點小結(jié)(涉及嵌套查詢)
可以通過空格或者as給表起別名
但是注意如果操作的數(shù)據(jù)庫是Oracle的話,只能使用空格,as不符合Oracle的語法。
舉個栗子
簡單查詢中使用別名
select * from student s where s.id = '10';
在簡單的查詢中使用別名,一般沒有特別需要注意的地方,要做的操作少
復(fù)雜查詢中使用別名
題目概要:有三個表格,student(sno,sname,ssex,sbirthday,class)
score(sno,cno,degree)
course(cno,cname,tno)
查詢選修“3-105”課程的成績高于“109”號同學(xué)成績的所有同學(xué)的記錄。
答案:
select * from (select s.sno,s.sname,s.ssex,s.sbirthday,s.class, sc.degree,c.cno,c.cname,c.tno from student s , course c ,score sc where s.sno = sc.sno and c.cno = sc.cno) ss where ss.cno = '3-105' and ss.degree >( select degree from score where sno = '109' and cno = '3-105');
可以看到,為了方便操作,我們重新定義了一個表格ss,這個表格是一個大表格同時包含了,以上三個表中的內(nèi)容。但是要注意以下幾點,不然容易出錯
要全部顯示新定義表格的值時,不能直接使用*
比如聲明的答案中如果改為
select * from (select * from student s , course c ,score sc where s.sno = sc.sno and c.cno = sc.cno) ss where ss.cno = '3-105' and ss.degree >( select degree from score where sno = '109' and cno = '3-105');
命令行會顯示列未明確定義,因為我們要現(xiàn)在指定的列作為一個新的表,但是有些列的列名是重復(fù)的,我們需要指定其中的一個。
在嵌套查詢語句中無法使用新創(chuàng)的表,因為嵌套查詢里面的代碼是一個完整的執(zhí)行段,會從頭開始運行?反正在里面調(diào)用會報錯
select * from (select * from student s , course c ,score sc where s.sno = sc.sno and c.cno = sc.cno) ss where ss.cno = '3-105' and ss.degree >( select degree from ss where sno = '109' and cno = '3-105');
這段SQL里面在where里面的子查詢使用了ss新表,編譯會顯示表或視圖不存在錯誤。
總結(jié)
到此這篇關(guān)于sql查詢給表起別名要點(涉及嵌套查詢)的文章就介紹到這了,更多相關(guān)sql查詢給表起別名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ORACLE 12C PDB 維護(hù)基礎(chǔ)知識介紹
CDB和PDB是ORACLE 12C一個很亮的新特性,由于他們的引入導(dǎo)致傳統(tǒng)的ORACLE數(shù)據(jù)庫管理理念不少發(fā)生了改變,這里列舉了部分最基本的cdb和pdb管理方式2016-09-09Oracle數(shù)據(jù)庫恢復(fù)教程之resetlogs操作
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫恢復(fù)教程之resetlogs操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Oracle數(shù)據(jù)庫具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05有關(guān)Oracle數(shù)據(jù)庫的備份情況
有關(guān)Oracle數(shù)據(jù)庫的備份情況...2007-03-03詳解oracle中通過觸發(fā)器記錄每個語句影響總行數(shù)
這篇文章主要介紹了詳解oracle中通過觸發(fā)器記錄每個語句影響總行數(shù)的相關(guān)資料,需要的朋友可以參考下2017-06-06oracle 11g導(dǎo)出數(shù)據(jù)時報ORA 1455錯誤的處理方法
oracle 11g導(dǎo)出數(shù)據(jù)時報ORA 1455錯誤,原因是由于導(dǎo)出的該用戶的表可能存在空數(shù)據(jù)表,下面是正確的導(dǎo)出步驟2014-08-08