13、DML(改变数据结构)
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;