網站首頁 健康小知識 母嬰教育 起名 運動知識 職場理財 情感生活 綠色生活 遊戲數碼 美容 特色美食 愛好
當前位置:酷知知識幫 > 遊戲數碼 > 手機

Oracle 10g如何實現高級查詢

欄目: 手機 / 發佈於: / 人氣:1.86W

許多人愁不會Oracle 10g的高級查詢,其實也是比較簡單的。在查詢數據時,為了獲取完整的信息就要將多個表連接起來,這也是關係數據庫的一個重要特性---表之間存在的關係。這種關係可以將表的數據聯繫起來。多表查詢就是根據這種關係,實現從多個表中獲取數據還原信息。下面這個圖就是我將要操作的表結構。

Oracle 10g如何實現高級查詢

工具/材料

電腦

Oracle 10g

操作方法

基本連接查詢
在簡單查詢中我們一般只使用了from字句的一個表,然而在關係數據庫中,表與表之間往往是存在關係的,這就是要求從多個表中檢索數據,以輸出更有意義的結果。最簡單的連接方式就是在select語句中,通過from子句使用多個表,並用逗號將不同的基本表隔開。下面語句將商品信息表和供應商信息表連接起來,查詢其中的商品名稱,產地,供應商名稱。

Oracle 10g如何實現高級查詢 第2張

但此時結果顯示該查詢語句共顯示了200行記錄,這顯然是錯誤的。因為僅僅通過select和from子句連接那麼查詢結果將是一個通過笛卡兒積生成的表,包含大量無意義的信息。而where語句可以有效避免笛卡兒積的出現。只有當兩個表具有相同匹配的列時才返回結果集。例如下面語句通過在where子句中使用連接條件,實現了每件商品名稱,產地,供應商名稱信息。

Oracle 10g如何實現高級查詢 第3張

但也要注意一個問題如果想要查詢“供應商編號”應該怎麼處理,因為兩個表中都有“供應商編號”,所以應該查詢的時候限定一下,説明究竟是哪一個表中的。

Oracle 10g如何實現高級查詢 第4張

join連接查詢
join用於連接兩個不同的表,on用於給出這兩個表之間的連接條件。如果進一步限制查詢範圍,可以在後面添加where語句,下面示例使用從商品信息表和供應商信息表查詢單價大於1200元的商品信息。

Oracle 10g如何實現高級查詢 第5張

並且join連接也可以實現兩個以上的表查詢,寫語句的時候一個join對應一個on,看下面的例子。

Oracle 10g如何實現高級查詢 第6張

自然連接查詢
其實自然連接查詢(natural join)就是更加方便的join連接查詢,自然連接不必指定任何同等連接條件,系統將自動判斷出具有相同名稱的列然後形成匹配,但注意自然連接是根據兩個表中同名的列而進行連接的,當列不同名時,自然連接將失去意義。

Oracle 10g如何實現高級查詢 第7張

集合操作查詢
集合操作就是將兩個或多個SQL查詢結合構成符合查詢,集合操作符有union(並集)、intersect(交集)、minus(差集),現在以union為例,union查詢必須從每個表中讀取相同的列。

Oracle 10g如何實現高級查詢 第8張

子查詢
子查詢和連接查詢一樣提供了使用單個查詢訪問多個表中的數據的方法,使用in關鍵字,意思是在in後面的集合中查詢我們需要的,即in後面是限定條件。

Oracle 10g如何實現高級查詢 第9張

特別提示

注意在Oracle 10g中的標點符號是英文狀態下的

Tags:oracle 10g