数据库DML语言--合并语句

来源:互联网 发布:优化企业家发展环境 编辑:程序博客网 时间:2024/06/05 03:09

合并语句

按照指定的条件执行插入或更新操作

如果满足条件的行存在,执行更新操作;否则执行插入操作:

避免多次重复执行插入和删除操作

提高效率而且使用方便

在数据仓库应用中经常使用

 

 

合并语句的语法

可以使用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