根基毗連查詢
在簡單查詢中我們一般只利用了from字句的一個表,然而在關系數據庫中,表與表之間往往是存在關系的,這就是要求從多個表中檢索數據,以輸出更有意義的成果。最簡單的毗連體例就是在select語句中,經由過程from子句利用多個表,并用逗號將分歧的根基表離隔。下面語句將商品信息表和供給商信息表毗連起來,查詢此中的商品名稱,產地,供給商名稱。
但此時成果顯示該查詢語句共顯示了200行記實,這顯然是錯誤的。因為僅僅經由過程select和from子句毗連那么查詢成果將是一個經由過程笛卡兒積生當作的表,包含年夜量無意義的信息。而where語句可以有用避免笛卡兒積的呈現。只有當兩個表具有不異匹配的列時才返回成果集。例如下面語句經由過程在where子句中利用毗連前提,實現了每件商品名稱,產地,供給商名稱信息。
但也要注重一個問題若是想要查詢“供給商編號”應該怎么處置,因為兩個表中都有“供給商編號”,所以應該查詢的時辰限制一下,申明事實是哪一個表中的。
join毗連查詢
join用于毗連兩個分歧的表,on用于給出這兩個表之間的毗連前提。若是進一步限制查詢規模,可以在后面添加where語句,下面示例利用從商品信息表和供給商信息表查詢單價年夜于1200元的商品信息。
而且join毗連也可以實現兩個以上的表查詢,寫語句的時辰一個join對應一個on,看下面的例子。
天然毗連查詢
其實天然毗連查詢(natural join)就是加倍便利的join毗連查詢,天然毗連不必指心猿意馬任何劃一毗連前提,系統將主動判定出具有不異名稱的列然后形當作匹配,但注重天然毗連是按照兩個表中同名的列而進行毗連的,當列分歧名時,天然毗連將掉去意義。
調集操作查詢
調集操作就是將兩個或多個SQL查詢連系組成合適查詢,調集操作符有union(并集)、intersect(交集)、minus(差集),此刻以union為例,union查詢必需從每個表中讀取不異的列。
子查詢
子查詢和毗連查詢一樣供給了利用單個查詢拜候多個表中的數據的方式,利用in關頭字,意思是在in后面的調集中查詢我們需要的,即in后面是限制前提。
注重在Oracle 10g中的標點符號是英文狀況下的
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!