select e.empno, e.ename, d.deptno, d.dname
在寧都等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),寧都網(wǎng)站建設(shè)費(fèi)用合理。
from emp e, dept d
where e.deptno = d.deptno;
在之前所使用的查詢操作之中,都是從一張表之中查詢出所需要的內(nèi)容,那么如果現(xiàn)在一個(gè)查詢語句需要顯示多張表的數(shù)據(jù),則就必須應(yīng)用到多表查詢的操作,而多表查詢的語法如下:
SELECT [DISTINCT] * | 字段 [別名] [,字段 [別名] ,…] FROM 表名稱 [別名], [表名稱 [別名] ,…] [WHERE 條件(S)] [ORDER BY 排序字段 [ASC|DESC] [,排序字段 [ASC|DESC] ,…]]。
擴(kuò)展資料:
Oracle 常用的關(guān)聯(lián)查詢:
Oracle外連接:
(1)左外連接 (左邊的表不加限制)。
(2)右外連接(右邊的表不加限制)。
(3)全外連接(左右兩表都不加限制)。
outer join則會(huì)返回每個(gè)滿足第一個(gè)(頂端)輸入與第二個(gè)(底端)輸入的聯(lián)接的行。它還返回任何在第二個(gè)輸入中沒有匹配行的第一個(gè)輸入中的行。
外連接分為三種: 左外連接,右外連接,全外連接。 對應(yīng)SQL:LEFT/RIGHT/FULL OUTER JOIN。 通常我們省略outer 這個(gè)關(guān)鍵字。 寫成:LEFT/RIGHT/FULL JOIN。
在左外連接和右外連接時(shí)都會(huì)以一張表為基表,該表的內(nèi)容會(huì)全部顯示,然后加上兩張表匹配的內(nèi)容。 如果基表的數(shù)據(jù)在另一張表沒有記錄。 那么在相關(guān)聯(lián)的結(jié)果集行中列顯示為空值(NULL)。
如何查看oracle表相關(guān)聯(lián)的表
1. 查詢一張表里面索引
select * from user_indexes where table_name=XX;
2. 查詢被索引字段
select * from user_ind_columns where index_name=XX;
3.查詢數(shù)據(jù)庫中所有索引
select * from user_objects where object_type='INDEX';
可以通過 desc table_name; 來查看這三張表的數(shù)據(jù)結(jié)構(gòu),選擇自己需要的字段查看。
第一種查詢的語法不全吧,如果補(bǔ)齊了的話,就是先連接的要寫到子查詢中。
如果理解沒錯(cuò)的話,看著覺得應(yīng)該效果一樣。
是這樣嗎?
SELECT ...... FROM (select * from (select * from 表1 LEFT JOIN 表2 ON 表1關(guān)聯(lián)表2條件) 表11 LEFT JOIN 表3 ON 表3關(guān)聯(lián)表11條件) 表111 LEFT JOIN 表4 ON 表111關(guān)聯(lián)表4條件 LEFT JOIN 表5 ON 表111關(guān)聯(lián)表5條件 where ……
跟my sql一樣的關(guān)聯(lián),這些關(guān)聯(lián)查詢都是一樣的,例如內(nèi)聯(lián)查詢,左聯(lián)查詢
內(nèi)聯(lián)查詢:
想把用戶的積分信息, 等級,都列出來,一般會(huì)出現(xiàn):
select * from emd_mteller t1,emd_mrole t2 where t1.teller_id = t2.teller_id
select * from emd_mteller t1 inner join emd_mrole t2 on t1.teller_id = t2.teller_id
左聯(lián)查詢:
left join 或者left outer join
返回左表中的所有行。如果左表的某行在右表中沒有匹配行,則在相關(guān)聯(lián)的結(jié)果集行中右表的所有選擇列表列均為空值(null)。
Select * from t1 left outer join t3 on t1.userid = t2.userid
1、在使用where進(jìn)行查詢的時(shí)候,對于查詢條件中的字段要指定歸屬表或者表別名。如下圖。
2、如果改為using進(jìn)行查詢的話那就不用指定表別名,using關(guān)鍵字的使用規(guī)則就是等值連接而且連接的字段名稱和字段類型必須要一致。
3、如果在使用了using關(guān)鍵字進(jìn)行查詢的時(shí)候如果添加了表的別名或者是表名,則直接會(huì)報(bào)如下錯(cuò)誤,對于using關(guān)鍵字指定的列名 在查詢中是不能使用表名或者表別名的。
4、并且還有一點(diǎn)需要注意的是using后只能接字段名不能使用 大于? 等于? 小于等符號(hào)進(jìn)行比對。
1. 查詢一張表里面索引
select * from user_indexes where table_name=XX;
2. 查詢被索引字段
select * from user_ind_columns where index_name=XX;
3.查詢數(shù)據(jù)庫中所有索引
select * from user_objects where object_type='INDEX';
可以通過 desc table_name; 來查看這三張表的數(shù)據(jù)結(jié)構(gòu),選擇自己需要的字段查看。