oracle 多表查詢

來源:互聯網
上載者:User

標籤:

1.注意點

在查詢過程中,不確定資料庫表中的資料量,先查詢資料量,資料量較大,則不能直接查詢(select * from emp),如果資料量較大,直接查詢容易造成死機或者資料讀取較慢,如果較小可以查詢。

查詢資料量   count(*)

select count(*) from emp;  從emp表中查詢資料量(也就是資料記錄數量)

 

2.表別名

訪問表欄位時通常會使用“表名.欄位”的顯示方法,假設表名很長時,可以給表名起一個別名,用別名.欄位名表示。

select * from user-dep-leader e where e.name="liu"

將表名user-dep-leader起一個別名e,用e.name 表示user-dep-leader.name

 

3.查詢多表

當查詢多表時,例如有兩個表,emp和dept,資料量分別為2和3,則直接查詢的資料量為6,這種操作叫做笛卡爾積。(多張表的資料乘積)

select * from emp,dept;  資料量為6;

因此,要多表查詢,首先要消除笛卡爾積。

(1)採取關聯欄位

select e.name , e.job,m.name from dept e, emp m where e.deptno=m.empno

(2)左右串連

左右串連,簡單的理解就是查詢的參考的方向。如果dept表中某些部門沒有員工,使用內串連,沒有員工的部門就沒有顯示,因此要使用以dept表為基準的外串連。而“(+)”就用於左、右串連的更改,這種符號有以下兩種使用方式:

  • (+)=:放在了等號的左邊,表示的是右串連;也就是以右邊的列名為參考
  • =(+):放在了等號的右邊,表示的是左串連;也就是以左邊的列名為參考

但是不用去刻意的區分是左還是右,只是根據查詢結果而定,如果發現有些需要的資料沒有顯示出來,就使用此符號更改串連方向。

 

oracle 多表查詢

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.