zoukankan      html  css  js  c++  java
  • UPDATE/INSERT用法研究

    UPDATE和INSERT语法相信大家都很熟悉,UPDATE的基本语法结构是 :

    UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

    INSERT的基本语法是:

    INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

    测试环境如下: 

    数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 

    CREATE TABLE DEPT
    (
    DEPT_NAME VARCHAR2(20 BYTE),
    DEPT_ID NUMBER(2)
    );

    CREATE TABLE EMP
    (
    EMP_NAME VARCHAR2(20 BYTE),
    EMP_ID NUMBER(3),
    DEPT_ID NUMBER(2)
    );

    ①多表联合update:现在我们在emp表内增加了一个dept_name字段,并且从dept表将dept_name同步到emp表内。

    UPDATE EMP A SET DEPT_NAME=(SELECT DEPT_NAME FROM DEPT B WHERE A.DEPT_ID=B.DEPT_ID)
    WHERE EXISTS (
    SELECT DEPT_NAME FROM DEPT B WHERE A.DEPT_ID=B.DEPT_ID
    )

    使用merge语法:

    MERGE INTO EMP A
    USING DEPT B
    ON(A.DEPT_ID=B.DEPT_ID)
    WHEN MATCHED THEN UPDATE SET A.DEPT_NAME=B.DEPT_NAME

    效果如图:

    建议:使用merge语法,效率更高

    ②多表insert:同样是以上环境,现在要求有一部emp表EMP_dept_1(表结构同emp),二部emp表EMP_dept_2(表结构同emp),要求将emp内dept_id为1的插入emp_dept_1表,dept_id为2的插入EMP_dept_2(也就是对职工表进行分类)

    INSERT FIRST
    WHEN (DEPT_ID='1')
    THEN INTO EMP_DEPT_1
    WHEN (DEPT_ID='2')
    THEN INTO EMP_DEPT_2
    SELECT * FROM EMP

    这里的INSERT FIRST 是指当满足第一条插入条件的数据,不会继续进行随后的判断;而如果是insert all则是会继续判断,若是满足后续的条件,也仍然会继续插入;

     
  • 相关阅读:
    spring学习(一)IOC&AOP
    MongoDB 写入数据的安全性
    MongoDB MapReduce
    MongoDB 原子操作
    MongoDB 文档间的关系
    MongoDB Java
    MongoDB 持久化
    MongoDB 聚合函数 aggregate
    MongoDB 索引
    MongoDB 文档操作
  • 原文地址:https://www.cnblogs.com/Yggdrasil/p/6542644.html
Copyright © 2011-2022 走看看