1. 程式人生 > >資料庫DML語言--合併語句

資料庫DML語言--合併語句

合併語句

按照指定的條件執行插入或更新操作

如果滿足條件的行存在,執行更新操作;否則執行插入操作:

避免多次重複執行插入和刪除操作

提高效率而且使用方便

在資料倉庫應用中經常使用

合併語句的語法

可以使用merge語句,根據指定的條件進行插入或更新操作

MERGE INTO table_name table_alias

  USING (table|view|sub_query) alias

  ON (join condition)

  WHEN MATCHED THEN

    UPDATE SET

    col1 = col_val1,

    col2 = col2_val

  WHEN NOT MATCHED THEN

    INSERT (column_list)

    VALUES (column_values);

在對錶COPY_EMP使用merge語句,根據指定的條件從表  

 EMPLOYEES中插入或更新資料。

MERGE INTO copy_emp  c

  USING employees e

  ON (c.employee_id = e.employee_id)

WHEN MATCHED THEN

  UPDATE SET

     c.first_name     = e.first_name,

     c.last_name      = e.last_name,

     ...

     c.department_id  = e.department_id

WHEN NOT MATCHED THEN

 INSERT VALUES(e.employee_id, e.first_name, e.last_name,

          e.email, e.phone_number, e.hire_date, e.job_id,

          e.salary, e.commission_pct, e.manager_id,

          e.department_id);

SELECT *

FROM COPY_EMP;

no rows selected

MERGE INTO copy_emp c

  USING employees e

  ON (c.employee_id = e.employee_id)

WHEN MATCHED THEN

  UPDATE SET

     ...

WHEN NOT MATCHED THEN

 INSERT VALUES...;

SELECT *

FROM COPY_EMP;

20 rows selected