oracle经验之谈

13、DML(改变数据结构)

2018-10-21  本文已影响0人  小母牛不生产奶

insert 语句

表间数据拷贝insert into dept1(id, name) select deptno, dname from dept;


update 语句

将编号为 7779 用户的工作换成编号为 7566 的雇员的工作和所属上级。

 UPDATE myemp SET(job,mgr) = (SELECT job,mgr FROM myemp WHERE empno=7566)WHERE empno=7779 ; 

如果子查询中返回的是空,则目标字段也更新成NULL.


delete 语句

Delete from emp; --删除数据


merge 语句

sql描述:

1、创建test1表,并插入两条数据

create table test1(eid number(10), name varchar2(20),birth  date,salary number(8,2));

insert into test1 values (1001, '张三', '20-5 月-70', 2300);

insert into test1 values (1002, '李四', '16-4 月-73', 6600);

select * from test1;

2、创建test2表

create table test2(eid number(10), namevarchar2(20),birth  date,salarynumber(8,2));

select * from test2;  

3、merge into  可以同时执行update或者insert语句,当using的字段在两个表能匹配上时,可执行update操作,当匹配不上时,可执行insert操作

merge into test2

 using test1 on(test1.eid = test2.eid ) 

when matched then

update set name = test1.name, birth =test1.birth, salary = test1.salary

when not matched then                                                                          

insert (eid, name, birth, salary)values(test1.eid, test1.name, test1.birth, test1.salary);  

select * from test2; 

上一篇下一篇

猜你喜欢

热点阅读