程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle多表關聯中的update語句實際應用

Oracle多表關聯中的update語句實際應用

編輯:Oracle數據庫基礎

以下的文章主要講述的是 Oracle多表關聯中的update語句的實際應用,為了使大家更為仔細的看明白其實際的操作步驟,我們建立了下面的簡單模型與構造一部分的測試數據:在某個業務受理子系統BSS中,

客戶資料表

  1. create table customers  
  2. (  
  3. customer_id number(8) not null,   

客戶標示

  1. city_name varchar2(10) not null, 

所在城市

  1. customer_type char(2) not null, 

客戶類型

  1. ...  
  2. )  
  3. create unique index PK_customers on customers (customer_id)  

由於某些原因,客戶所在城市這個信息並不什麼准確,但是在

客戶服務部的CRM子系統中,通過主動服務獲取了部分客戶20%的所在

城市等准確信息,於是你將該部分信息提取至一張臨時表中:

  1. create table tmp_cust_city  
  2. (  
  3. customer_id number(8) not null,  
  4. citye_name varchar2(10) not null,  
  5. customer_type char(2) not null  
  6. )  

1) 最簡單的形式

經確認customers表中所有customer_id小於1000均為'北京'

1000以內的均是公司走向全國之前的本城市的老客戶:)

  1. update customers 

set city_name='北京'

  1. where customer_id<1000 

2) 兩表(多表)關聯Oracle update 僅在where字句中的連接

這次提取的數據都是VIP,且包括新增的,所以順便更新客戶類別

  1. update customers a  

使用別名

  1. set customer_type='01'  

01 為vip,00為普通

  1. where exists (select 1  
  2. from tmp_cust_city b  
  3. where b.customer_id=a.customer_id  
  4. )  

3) Oracle 兩表(多表)關聯update 被修改值由另一個表運算而來

  1. update customers a  

使用別名

  1. set city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)  
  2. where exists (select 1  
  3. from tmp_cust_city b  
  4. where b.customer_id=a.customer_id  
  5. )   
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved