orcal sql基礎3 聯接

2021-08-25 09:35:41 字數 1328 閱讀 5130

連線 9i 之後的用法

1.   cross join 笛卡爾積形式的連線   相當於 select empno,ename,dname from emp , dept;

沒有太大的意義

2.   natural join 自然連線   

<1>  從兩張表中選出同名的列的值對應相等的所有行。

<2>  如果兩個表同名列的資料型別不同,則出錯。

<3>  不允許參照列上使用表名或者別名作為字首。

3.using 子句  select empo,ename,deptno,dname from emp,join  dept using (deptno);

可以指明按照哪幾個字段連線。  不用加上別名

4. on   select empo,ename,a.deptno,dname from emp a,join  b dept on (a.deptno=b.deptno);

必須加上別名

5. 內連線  inner join  只返回滿足連線條件的資料

外連線  outer join <1> left outer join     左外連線  除了返回滿足條件的行以外,還返回左表

中不滿足條件的行        

<2> right outer join   右外聯接。。。。。還返回返回右表中不滿足的行

<3> full outer join      滿外聯接。。。。。還返回兩表中不滿足條件的所有行。

這幾種都配合 using 或  on  使用

***************===子查詢注意事項***************

1  在查詢是基於未知值時應考慮使用子查詢

2  子查詢必須包含在括號內

3  建議將子查詢放在比較運算子的右側,以增強可讀性。

4 除非進行top-n (取前幾名?)分析,否則不要在子查詢中使用order by 子句。

5對單行子查詢使用單行運算子

6對多行子查詢使用多行運算子

***************多行子查詢**********====

運算子                含義

in                      等於列表中的任何乙個   只要等於in中的都查出來

any                   和子查詢返回的任意乙個值比較   大於結果集中最小的

all                     和子查詢返回的所有值比較   大於結果集中最大的

**********===top-n分析***************==

select  * from  emp   order by sal  desc  rownum <5;

SQL基礎 聯接 join

理解關係表和關係表的設計。設計關係表的時候,將資訊分散到多個表中,避免在乙個表中存在太多重複資訊。關係錶能更好地擴充套件。當資訊存在多個表裡時,如何在一條查詢語句裡獲取來自不同表中的資訊。join就是一種機制,在同乙個條查詢語句中關聯多個表中的資訊。從關係運算的角度來說,連線運算是從兩個關係的笛卡爾...

sql基礎語法 聯接查詢

交叉聯接 1.不帶where條件的,將返回兩個表的 行乘積 select c.e.from sales.customers c cross join hr.employees e 2.帶where 條件的,交叉聯接不能使用on select e1.empid,e1.firstname,e1.last...

基礎練習3

問題描述 利用字母可以組成一些美麗的圖形,下面給出了乙個例子 abcdefg babcdef cbabcde dcbabcd edcbabc 這是乙個5行7列的圖形,請找出這個圖形的規律,並輸出乙個n行m列的圖形。輸入格式 輸入一行,包含兩個整數n和m,分別表示你要輸出的圖形的行數的列數。輸出格式 ...