欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

OracleMERGE語(yǔ)句-創(chuàng)新互聯(lián)

MERGE語(yǔ)句,它可以在一個(gè)SQL語(yǔ)句中對(duì)一張表或一個(gè)視圖同時(shí)做更新或插入操作,避免了多個(gè)INSERT、UPDATE和DELETE語(yǔ)句。它可以從一個(gè)或多個(gè)數(shù)據(jù)源中選擇數(shù)據(jù)對(duì)目標(biāo)表做更新或插入操作,你可以指定在何種條件下更新或插入目標(biāo)表或視圖。不可以對(duì)同一行做多次更新操作。例如:實(shí)現(xiàn)用B表來(lái)更新A表數(shù)據(jù),如果A表中沒(méi)有,則把B表的數(shù)據(jù)插入A表。

成都創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的十多年時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶,如食品包裝袋等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶的一致稱贊。

11gR2語(yǔ)法如下:

MERGE [ hint ]       INTO [ schema. ] { table | view } [ t_alias ]       USING { [ schema. ] { table | view }          | subquery           } [ t_alias ]       ON ( condition )    [ merge_update_clause ]    [ merge_insert_clause ]    [ error_logging_clause ] ;     #merge_update_clause    WHEN MATCHED THEN UPDATE SET column = { expr | DEFAULT }            [, column = { expr | DEFAULT } ]... [ where_clause ] [ DELETE where_clause ] #merge_insert_clause WHEN NOT MATCHED THEN INSERT [ (column [, column ]...) ] VALUES ({ expr | DEFAULT }           [, { expr | DEFAULT } ]...        ) [ where_clause ] #error_logging_clause LOG ERRORS    [ INTO [schema.] table ]   [ (simple_expression) ]   [ REJECT LIMIT { integer | UNLIMITED } ]

使用例子說(shuō)明MERGE語(yǔ)句的作用:

創(chuàng)建測(cè)試表emp_m

scott@TEST>create table emp_m as select * from emp where comm is not null; Table created. scott@TEST>select * from emp_m;      EMPNO ENAME   JOB      MGR HIREDATE     SAL       COMM     DEPTNO ---------- ------------------------------ --------------------------- ---------- ------------------- ---------- ---------- ----------       7499 ALLEN   SALESMAN     7698 1981-02-20 00:00:00    1600        300    30       7521 WARD    SALESMAN     7698 1981-02-22 00:00:00    1250        500    30       7654 MARTIN   SALESMAN     7698 1981-09-28 00:00:00    1250       1400    30       7844 TURNER   SALESMAN     7698 1981-09-08 00:00:00    1500   0    30

例子1:插入和更新操作

現(xiàn)在測(cè)試表emp_m中只有comm不為空的數(shù)據(jù),現(xiàn)在要把在emp表而不在emp_m表中的數(shù)據(jù)插入到emp_m表中,并把emp_m表中現(xiàn)有的數(shù)據(jù)的comm增加10。

scott@TEST>MERGE INTO EMP_M M   2  USING EMP N   3  ON (M.EMPNO = N.EMPNO)   4  WHEN NOT MATCHED THEN   5    INSERT   6      (M.EMPNO, M.ENAME, M.JOB, M.MGR, M.HIREDATE, M.SAL, M.COMM, M.DEPTNO)   7    VALUES   8      (N.EMPNO, N.ENAME, N.JOB, N.MGR, N.HIREDATE, N.SAL, N.COMM, N.DEPTNO)   9  WHEN MATCHED THEN  10    UPDATE SET M.COMM = M.COMM + 10; 14 rows merged. scott@TEST>select * from emp_m;      EMPNO ENAME                          JOB                                MGR HIREDATE                   SAL       COMM     DEPTNO ---------- ------------------------------ --------------------------- ---------- ------------------- ---------- ---------- ----------       7499 ALLEN                          SALESMAN                          7698 1981-02-20 00:00:00       1600        310         30       7521 WARD                           SALESMAN                          7698 1981-02-22 00:00:00       1250        510         30       7654 MARTIN                         SALESMAN                          7698 1981-09-28 00:00:00       1250       1410         30       7844 TURNER                         SALESMAN                          7698 1981-09-08 00:00:00       1500         10         30       7369 SMITH                          CLERK                             7902 1980-12-17 00:00:00        800                    20       7566 JONES                          MANAGER                           7839 1981-04-02 00:00:00       2975                    20       7698 BLAKE                          MANAGER                           7839 1981-05-01 00:00:00       2850                    30       7782 CLARK                          MANAGER                           7839 1981-06-09 00:00:00       2450                    10       7788 SCOTT                          ANALYST                           7566 1987-04-19 00:00:00       3000                    20       7839 KING                           PRESIDENT                              1981-11-17 00:00:00       5000                    10       7876 ADAMS                          CLERK                             7788 1987-05-23 00:00:00       1100                    20       7900 JAMES                          CLERK                             7698 1981-12-03 00:00:00        950                    30       7902 FORD                           ANALYST                           7566 1981-12-03 00:00:00       3000                    20       7934 MILLER                         CLERK                             7782 1982-01-23 00:00:00       1300                    10 14 rows selected.

例子2:實(shí)現(xiàn)刪除操作

從emp_m表中刪除表emp中DEPTNO=30的記錄。

scott@TEST>MERGE INTO EMP_M M   2  USING (SELECT EMPNO FROM EMP WHERE DEPTNO = 30) N   3  ON (M.EMPNO = N.EMPNO)   4  WHEN MATCHED THEN   5    UPDATE SET M.COMM = DEFAULT    6    DELETE WHERE M.EMPNO = N.EMPNO; 6 rows merged. scott@TEST>select * from emp_m;      EMPNO ENAME                          JOB                                MGR HIREDATE                   SAL       COMM     DEPTNO ---------- ------------------------------ --------------------------- ---------- ------------------- ---------- ---------- ----------       7369 SMITH                          CLERK                             7902 1980-12-17 00:00:00        800                    20       7566 JONES                          MANAGER                           7839 1981-04-02 00:00:00       2975                    20       7782 CLARK                          MANAGER                           7839 1981-06-09 00:00:00       2450                    10       7788 SCOTT                          ANALYST                           7566 1987-04-19 00:00:00       3000                    20       7839 KING                           PRESIDENT                              1981-11-17 00:00:00       5000                    10       7876 ADAMS                          CLERK                             7788 1987-05-23 00:00:00       1100                    20       7902 FORD                           ANALYST                           7566 1981-12-03 00:00:00       3000                    20       7934 MILLER                         CLERK                             7782 1982-01-23 00:00:00       1300                    10

使用注意事項(xiàng):

  • 不能指定一個(gè)在它上面定義了INSTEAD OF觸發(fā)器的視圖為目標(biāo)視圖。

  • USING子名指定源數(shù)據(jù),可以是表、視圖或子查詢

  • UPDATE子句中的where條件可以指定目標(biāo)表的條件也可以指定源表的條件

  • UPDATE子句中不能更新ON條件中的列,更新表時(shí)不能指定DEFAULT

  • UPDATE子句中指定DELETE WHERE用于刪除數(shù)據(jù)。

  • INSERT子句中,如果INSERT后省略列名,VALUES后的列的個(gè)數(shù)必須與目標(biāo)表列個(gè)數(shù)一致

  • INSERT子句中,可以使用WHERE條件限制插入的數(shù)據(jù)

官方文檔:http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_9016.htm#SQLRF01606

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享標(biāo)題:OracleMERGE語(yǔ)句-創(chuàng)新互聯(lián)
鏈接分享:http://chinadenli.net/article6/eghog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司網(wǎng)站內(nèi)鏈虛擬主機(jī)面包屑導(dǎo)航營(yíng)銷型網(wǎng)站建設(shè)品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管