oracle的多表關聯更新或者插入
http://blog.csdn.net/yuzhic/article/details/1896878
http://blog.csdn.net/macle2010/article/details/5980965
該命令使用一條語句從一個或者多個數據源中完成對錶的更新和插入資料. ORACLE 9i 中,使用此命令必須同時指定UPDATE 和INSERT 關鍵詞,ORACLE 10g 做了如下改動。
1,insert 和update是可選的 2,UPDATE 和INSERT 後面可以跟WHERE 子句 3,在ON條件中可以使用常量來insert 所有的行到目標表中,不需要連線到源表和目標表 4,UPDATE 子句後面可以跟delete 來去除一些不需要的行。
舉例:
- createtable PRODUCTS
- (
- PRODUCT_ID INTEGER,
- PRODUCT_NAME VARCHAR2(60),
- CATEGORY VARCHAR2(60)
- );
- insertinto PRODUCTS values (1501, 'VIVITAR 35MM', 'ELECTRNCS');
- insertinto PRODUCTS values (1502, 'OLYMPUS IS50', 'ELECTRNCS');
-
insertinto
- insertinto PRODUCTS values (1601, 'LAMAZE', 'TOYS');
- insertinto PRODUCTS values (1666, 'HARRY POTTER', 'DVD');
- commit;
- createtable NEWPRODUCTS
- (
- PRODUCT_ID INTEGER,
- PRODUCT_NAME VARCHAR2(60),
-
CATEGORY VARCHAR2(60)
- );
- insertinto NEWPRODUCTS values (1502, 'OLYMPUS CAMERA', 'ELECTRNCS');
- insertinto NEWPRODUCTS values (1601, 'LAMAZE', 'TOYS');
- insertinto NEWPRODUCTS values (1666, 'HARRY POTTER', 'TOYS');
- insertinto NEWPRODUCTS values (1700, 'WAIT INTERFACE', 'BOOKS');
- commit;
- 1,可省略的update 或者insert
- MERGE INTO products p
- 2 USING newproducts np
- 3 ON (p.product_id = np.product_id)
- 4 WHEN MATCHED THEN
- 5 UPDATE
- 6 SET p.product_name = np.product_name,
- 7 p.category = np.category;
使用表newproducts中的product_name 和category欄位來更新表products 中相同product_id的product_name 和category.
2,當條件不滿足的時候把newproducts表中的資料INSERT 到表products中。
- MERGE INTO products p
- USING newproducts np
- ON (p.product_id = np.product_id)
- WHENNOT MATCHED THEN
- INSERT
- VALUES (np.product_id, np.product_name,
- np.category);
3,帶條件的insert 和update
- MERGE INTO products p
- USING newproducts np
- ON (p.product_id = np.product_id)
- WHEN MATCHED THEN
- UPDATE
-
相關推薦
oracle的多表關聯更新或者插入
http://blog.csdn.net/yuzhic/article/details/1896878 http://blog.csdn.net/macle2010/article/details/5980965 該命令使用一條語句從一個或者多個數據源中完成對錶的更新和插入資料. OR
Oracle 多表關聯更新
upd from ber char set var rom rac reat create table t1( id number(10), name varchar2(10));create table t2( id num
Oracle多表關聯更新(update多表關聯)
.Oracle沒有update from語法,可以通過兩種實現方式: 1、利用子查詢: update A SET 欄位1=(select 欄位表示式 from B WHERE ...),
oracle 多表關聯更新,需要更新的欄位在另一個表裡(lfn)
update customers a -- 使用別名 set city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id) where exists (select
Oracle多表關聯如何更新多個字段
表關聯 select 結果集 sele 部分 date sts 條件 from 註意點:1、被update主表一定要加上過濾條件。2、查詢出來更新結果集,同時也要作為被更新主表的條件,作為同步大家都是更新這部分數據。update student stu set (stu.
多表關聯更新sql
cheng upan update 表關聯 關聯 sel mce date 多表 UPDATE S_fangyuanxinxi SET wuyeleixing = (SELECT s_dalou.yongtu FROM s_dalou
ORACLE多表關聯UPDATE 語句
dbms 說明 相同 linux 全國 別名 所有 問題 from 1) 最簡單的形式 SQL 代碼 --經確認customers表中所有customer_id小於1000均為‘北京‘ --1000以內的均是公司走向全國之前的本城市的老客戶:) updat
MySQL5.7多表關聯更新
mysqlupdate ord ainner join room b on a.roomno=b.roomnoinner join flat c on a.flatno = c.flatno and a.flatsub=c.flatsubset a.xrea = b.xrea,a.ritysubn=b.rit
多表關聯更新
有A、B張表,其記錄如下: A表 c1 c2 -------------- 1 a1 2 a2 3 a3 8 a8 B表 c1 c3 -------------- 1 b1
Oracle多表關聯查詢
select e.empno, e.ename, d.deptno, d.dname from emp e, dept d where e.deptno = d.deptno; 在上述sql語句中先執行 from 後執行select和where 如果使用了別
MySQL 多表關聯更新及刪除
一、 多表關聯更新 問題描述:現有tdb_goods表(含有具體資訊)和tdb_goods_cates表(沒有具體資訊),需要查詢tdb_goods表的所有記錄,並且按"類別"分組,且將分組結果寫入到tdb_goods_cates資料表。然後通過tdb_goods
UPDATE多表關聯更新時為什麼會慢
構建環境如下: Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 Connected as [email protected]:1521/orcl SQL> C
SQL/Oracle 兩表關聯更新
有TA, TB兩表,假設均有三個欄位id, name, remark. 現在需要把TB表的name, remark兩個欄位通過id關聯,更新到TA表的對應欄位。 建表指令碼: drop table TA; create table TA ( id number n
Oracle多表聯合更新
以下是在後臺更新易拓ERP資料庫時遇到的一個問題: 1.在DB14資料庫中將料件號P44開頭,並且品名為"塑料袋"的料件改為消耗性料件. 這個簡單: UPDATE DB14.ima_file SET ima70 = ‘Y’ WHERE ima
update left join 多表關聯更新,
UPDATE table_1 t1 left join table_2 t2 on t2.id = t1.tid SET t1.username = t2.uname where t1.id>5
ORACLE 多表關聯 UPDATE 語句
-- 源表 CREATE TABLE test_from (id INT, val VARCHAR(20)); -- 目標表 CREATE TABLE test_to (id INT, val VARCHAR(20)); -- 插入源表 INSERT INTO test_from VALUES
Oracle 兩表關聯更新
有TA, TB兩表,假設均有三個欄位id, name, remark. 現在需要把TB表的name, remark兩個欄位通過id關聯,更新到TA表的對應欄位。 建表指令碼: droptable TA; createtable TA ( id nu
Oracle 多表關聯查詢後修改
--t_veh_traffic_vio 違法表 --vhcl_info 車輛資訊表 --單表修改,修改2014年4月份違法資料的同步標誌位 update t_veh_traffic_vio t
SQL update多表關聯更新
UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE exists ( SELECT 1 FROM 表1 WHERE 表1.A = 表2.A) ; update TA a set(name, re
Oracle 多表關聯update
多表關聯執行update1.僅在where子句中連線--table2中全部為優秀學生,將table1中的優秀學生的成績更新為優 update table1 t1 set t1.grade = '優' where exists ( select 1 from table