標籤:des style http color 使用 os io strong
Oracle資料庫中Select語句文法及介紹
SELECT [ ALL | DISTINCT ] <欄位運算式1[,<欄位運算式2[,…]
FROM <表名1>,<表名2>[,…]
[WHERE <篩選擇條件運算式>]
[GROUP BY <分組運算式> [HAVING<分組條件運算式>]]
[ORDER BY <欄位>[ASC | DESC]]
語句說明:
[]方括弧為可選項
[GROUP BY <分組運算式> [HAVING<分組條件運算式>]]
指將結果按<分組運算式>的值進行分組,該值相等的記錄為一組,帶【HAVING】
短語則只有滿足指定條件的組才會輸出。
[ORDER BY <欄位>[ASC | DESC]]
顯示結果要按<欄位>值升序或降序進行排序
sql各子句的執行順序:
1. FROM
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. ORDER BY
www.169it.com
多表關聯查詢
表的串連是指在一個SQL語句中通過表與表之間的關連,從一個或多個表中檢索相關的資料,大體上表與表之間的串連主要可分四種,分別為相等串連,外串連,不等串連和自串連,本文將主要從以下幾個典型的例子來分析Oracle表的四種不同串連方式:
1. 相等串連
通過兩個表具有相同意義的列,可以建立相等串連條件。
只有串連列上在兩個表中都出現且值相等的行才會出現在查詢結果中。
例 查詢員工資訊以及對應的員工所在的部門資訊;
SELECT * FROM EMP,DEPT;
SELECT * FROM EMP,DEPT;
WHERE EMP.DEPTNO = DEPT.DEPTNO;
REM 顯示工資超過2000的員工資訊以及對應的員工的部門名稱。
2. 外串連
對於外串連,Oracle中可以使用“(+)”來表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面將配合執行個體一一介紹。除了顯示匹配相等串連條件的資訊之外,還顯示無法匹配相等串連條件的某個表的資訊。
外串連採用(+)來識別。
A) 左條件(+) = 右條件;
代表除了顯示匹配相等串連條件的資訊之外,還顯示右條件所在的表中無法匹配相等串連條件的資訊。
此時也稱為"右外串連".另一種表示方法是:
SELECT ... FROM 表1 RIGHT OUTER JOIN 表2 ON 串連條件
B) 左條件 = 右條件(+);
代表除了顯示匹配相等串連條件的資訊之外,還顯示左條件所在的表中無法匹配相等串連條件的資訊。
此時也稱為"左外串連".
SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 串連條件
例 顯示員工資訊以及所對應的部門資訊
--無法顯示沒有部門的員工資訊
--無法顯示沒有員工的部門資訊
--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;
--直接做相等串連:
SELECT * FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;
REM 顯示員工資訊以及所對應的部門資訊,顯示沒有員工的部門資訊
--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO(+) = DEPT.DEPTNO;
SELECT * FROM EMP RIGHT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;
REM 顯示員工資訊以及所對應的部門資訊,顯示沒有部門的員工資訊
--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO(+);
SELECT * FROM EMP LEFT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;
3. 不等串連
兩個表中的相關的兩列進行不等串連,比較符號一般為>,<,...,BETWEEN.. AND..
REM SALGRADE
--DESC SALGRADE;
--SELECT * FROM SALGRADE;
REM 顯示員工的編號,姓名,工資,以及工資所對應的層級。
SELECT EMPNO,ENAME,SAL,SALGRADE.* FROM SALGRADE,EMP
WHERE EMP.SAL BETWEEN LOSAL AND HISAL;
REM 顯示僱員的編號,姓名,工資,工資層級,所在部門的名稱;
SELECT EMPNO,ENAME,SAL,GRADE,DNAME FROM EMP,DEPT,SALGRADE
WHERE EMP.DEPTNO = DEPT.DEPTNO AND EMP.SAL BETWEEN LOSAL AND HISAL;
4. 自串連
自串連是資料庫中經常要用的串連方式,使用自串連可以將自身表的一個鏡像當作另一個表來對待,從而能夠得到一些特殊的資料。下面介紹一下自串連的方法:
將原表複製一份作為另一個表,兩表做笛卡兒相等串連。
例 顯示僱員的編號,名稱,以及該僱員的經理名稱
SELECT WORKER.ENAME,WORKER.MGR,MANAGER.EMPNO,MANAGER.ENAME FROM EMP WORKER,EMP MANAGER
WHERE WORKER.MGR = MANAGER.EMPNO;
本文來源:Oracle 資料庫(oracle Database)Select 多表關聯查詢方式