免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
[精華] Oracle9i表連接(轉(zhuǎn)載)
Oracle對Oracle9i SQL 做了一些很重要的改進(jìn),包括一些令人興奮的新特點(diǎn),支持1:5的數(shù)量級和ISO99中的SQL標(biāo)準(zhǔn)。作為Oracle的補(bǔ)充,它包括以下新的TABLE JOIN的句法結(jié)構(gòu):
CROSS IN——它在兩個表格中創(chuàng)建了一個卡迪爾列,就象是在Oracle8i中沒寫WHERE時那樣。
NATURAL JOIN——這是一個很有用的Oracle9i的句法,它通過從WHERE子句中移動連接標(biāo)準(zhǔn)來改善SQL的穩(wěn)定性
USING子句——它可以通過名字來具體指定連接
ON子句——這個句法允許在兩個表格中為連接具體指定欄目的名頭
LEFT OUTER JOIN——它返回表格中左邊的行和右邊的數(shù)值,如果沒有搭配的行的話,則返回零
RIGHT OUTER JOIN——它返回表格中右邊的行和左邊的數(shù)值,如果沒有搭配的行的話,則返回零
FULL OUTER JOIN——它返回的是兩個表格中所有的行,用零填滿每一個空格。這在Oracle8i中則沒有相應(yīng)的此種句法
大多數(shù)改進(jìn)都是為了讓那些非Oracle的請求以快速的進(jìn)入Oracle數(shù)據(jù)庫而引進(jìn)的,并且必須記住這些只是句法上的不同,ISO99標(biāo)準(zhǔn)并沒有給Oracle9i SQL帶來任何新的功能。
The CROSS JOIN
在Oracle中,CROSS JOIN產(chǎn)生了一個“卡迪爾的產(chǎn)物(Cartesian product)”,就象是在連接兩個表格時忘記加入一個WHERE子句一樣
select last_name,dept_id
from emp,depts;
在Oracle9i中,我們使用CROSS JOIN 來達(dá)到相同的結(jié)果
select last_name.dept_id
from emp
CROSS JOIN dept;
NATURAL JOIN
我喜歡NATURAL JOIN的原因在于它能夠通過在兩個表格中配對的欄目的名頭來自動的檢查join。它同時還簡化了Oracle9i SQL,由于where子句僅僅只能過濾謂語,當(dāng)然,NATURAL JOIN要求在每一個表格中的欄目的名字相同。很有意思的是,這種特性甚至在沒有主要的或是外來的關(guān)鍵詞作為參考是也能起作用
Oracle8i,
Select book_title, sum(quantity)
From book, sales
Where book.book_id = sales.book_id
group by book_title;
Oracle9i
Select book_title, sum(quantity)
from book
natural join sales
group by book_title;
USING子句
假如幾個欄目有同樣的名字,而你又不想用所有的這些欄目來連接的時候,你就可以用USING子句。在USING子句中所列的欄目的句子中不會有任何的修飾詞,包括where子句也不會有
Oracle8i
select dept_id, city
from departments, locations
where departments.location_id = location.location_id;
Oracle9i
select department_name, city
from departments
JOIN locations
USING (location_id);
ON子句
ON子句被用于當(dāng)在兩個表格中的欄目名字不搭配時來連接表格。而連接條件就是where子句中的過濾條件
Oracle8i
select department_name, city
from department, location
where department.location_id = location.loc_id;
Oracle9i
select department_name, city
from department d
JOIN location l
ON (d.location_id = l.id);
易變的連接
易變的連接就是兩個以上的表格被連接所用的。ISO SQL 1999標(biāo)準(zhǔn)通常假設(shè)表格從左至右連接,連接的條件是能夠為現(xiàn)在的連接或以前的與左邊的連接相關(guān)聯(lián)的欄目提供參考。
Oracle8i
select emp_id, city_name, dept_name
from location l, department d, emp e
where d.location_id = l.location_id
and d.department_id = e.department_id;
Oracle9i
select emp_id, city_name, dept_name
from locations l
JOIN departments d ON (d.location_id = l.location_id)
JOIN employees e ON (d.department_id = e.department_id);
新的OUTER JOIN句法
ISO99標(biāo)準(zhǔn)把復(fù)雜的加號從Oracle outer join中拿出去,并使得outer join SQL更容易理解。
LEFT OUTER JOIN
在LEFT OUTER JOIN中,會返回所有左邊表格中的行,甚至在被連接的表格中沒有可配對的欄目的情況下也如此。在下邊的例子中,返回了所有雇員的姓,甚至包括了那些沒有分配到部門的雇員。
Oracle8i
select last_name, dept_id
from emp e, dept d
where e.department_id = d.department_id(+);
Oracle9i
select last_name, dept_id
from emp
LEFT OUTER JOIN Dept
ON e.dept_id = d.dept_id;
RIGHT OUTER JOIN
在RIGHT OUTER JOIN中返回的是表格中所有右邊的行,甚至在被連接的表格中沒有可配對的欄目的情況下也如此。在這個例子中,返回了所有部門的ID,包括那些沒有一個雇員的的部門。
Oracle8i
select last_name, d.dept_id
from employees e, departments d
where e.department_id(+) = d.department_id;
Oracle9i
select last_name, d.dept_id
from employees e
RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id);
總結(jié)
ISO99標(biāo)準(zhǔn)是Oracle改進(jìn)SQL工具的另一個例子。NATURAL JOIN LEFT OUTER JOIN 和 RIGHT OUTER JOIN是這些改進(jìn)中最受歡迎的,它們分別簡化了SQL句法以及消除了對于復(fù)雜句法(比如+)的需要。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Oracle SQL語句(連接查詢)
Oracle 表連接方式(內(nèi)連接/外連接/自連接) 詳解
ORACLE關(guān)聯(lián)查詢
SQL連接(內(nèi)連接,左連接,右連接,自連接)詳解
SQLite Joins | w3cschool菜鳥教程
SAP CDS view 里 Inner Join,Left Outer Join 和 Right Outer Join 的區(qū)別
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服