2.2 Oracle之DML的SQL語句之多表查詢以及組函數

1、SQL的多表查詢:

1、左鏈接和右鏈接(不重要一方加(+))函數

SELECT e.empno,e.ename,d.deptno,d.dname,d.loc FROM emp e,dept d WHERE e.deptno(+)=d.deptno ;spa

(+)在等號左邊是右鏈接,反之左鏈接。排序

二、交叉鏈接 CROSS JOIN產生笛卡爾積)事務

SELECT * FROM emp CROSS JOIN dept ;程序

三、天然鏈接 NATURAL JOIN)自動關聯字段匹配查詢

SELECT * FROM emp NATURAL JOIN dept ;備份

四、USING子句、直接關聯操做列(不經常使用)

SELECT * FROM emp e JOIN dept d USING(deptno) WHERE deptno=30 ;

五、ON子句、用戶本身規定鏈接條件

SELECT * FROM emp e JOIN dept d ON(e.deptno=d.deptno) WHERE deptno=30 ;

2、組函數:

一、經常使用:COUNT() MAX() MIN() AVG() SUM(),

使用條件,1、程序中存在GROUP BY,而且指定分組條件。2、單獨使用分組函數除了相等條件分組函數使用HAVING條件。

公式:SELECT {DISTINCT} FROM{WHERE (s)} {GROUP BY {HAVING 分組條件}} {ORDER BY排序字段 ASC|DESC , 排序字段ACS | DESC ,}

分組:一列上有重複內容,能夠嵌套使用

=ANY 等於IN 比最大值要小、>ALL比最大值大、<ALL比最小值小

事務操做(執行以及回滾)

二、對錶的操做

插入:CREATE TABLE myemp AS SELECT * FROM emp ;(建立備份表)

INSERT INTO 表名(字段)valuesTO_DATE('2009-01-16','yyyy-mm-dd'

更新:UPDATE 表名SET sal=5000 WHERE empno=7899;

刪除:DELETE FROM表名 WHERE條件;

DROP TABLE book CASCADE CONSTRAINT ;強制刪除

相關文章
相關標籤/搜索