oracled update_Oracle update 多字段更新

一次性update多个字段

以student表为例:

-- 创建学生表

create table student

(

id number,

name varchar2(40),

age number,

birthday date,

address varchar2(200)

)

-- 插入数据

insert into student(id, name, age, birthday, address)

values(1, '王小波', 50, to_date('19700520','yyyymmdd'), '广州市天河区')

-- 查询

select * from student

-- 1王小波501970/5/20广州市天河区

如果需要修改数据,一般语法:

update student

set name = '王大锤',

age = 49,

birthday = to_date('19710206','yyyymmdd'),

address = '广州市越秀区'

where id = 1;

如果字段非常多,这样写就稍微麻烦点,因为待修改字段和待修改的数据没有分离。

还有另外一种写法(字段多的时候写的时候方便,书写效率高些;字段少的时候感觉不出来):

update student

set (name, age, birthday, address) =

(select '王大锤', 49, to_date('19710206','yyyymmdd'), '广州市越秀区' from dual)

where id = 1

update 多表级联更新

多表级联更新语法为:

update tableA a set a.col1 = (select b.col1 from tableB b where b.col2 = a.col2),

a.col3 = (select c.col1 from tableC c where c.col2 = a.col2)

where condition

该语句作用就是当tableA中col2列的值等于tableB中col2列的值时,那么将tableA所在行的col1的值设置为tableB相应行的col1的值,当tableA中col2列的值等于tableC中col2列的值时,那么将tableA所在行的col1的值设置为tableC相应行的col1的值,换句话说就是将tablA中所有满足a.col2=b.col2的行的col1列的值设置为b对应的行的col1列的值,将tableA中所有满足a.col3=c.col1的行的col3列的值设置为c对应的行的col1列的值。

多字段update

Oracle 多字段 update语法为:

update table_a

set (a,b,c) =

(select a,b,c from table_b)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值