Oracle数据库之操作数据表

--操纵数据表  简单的语句不多介绍
--插入记录
--数据操纵语言 DML  INSERT UPDATE DELETE MEGRE
--插入单行记录
insert into test(id,c_name) value(sys_guid(),'lisi');
--前提是值的顺序要完全匹配表中的顺序
insert into test values(sys_guid(),'lisi');
--如果要插入的字符串中本身也包含单引号,那么需使用两个单引号来匹配单引号,如添加o'malley这个员工名字
insert into test values(sys_guid(),'o''malley');
--使用子查询插入多行数据
--方法一
insert into test11 as select * from test;
--方法二
insert into test11(id,c_name) select id,c_name frmo test;
insert first when deptno='10' then insert emp_10
             when deptno='20' then insert emp_20
             else insert into emp_30
select * from emp;
--默认情况下,不指定列名,会将子查询的所有列值插入到目标表中,可以为要插入的列指定列
insert first when deptno='10' when insert dept_10(id,deptname,deptno) values(id,deptname,deptno)
             when deptno='20' when insert dept_20(id,deptname,deptno) values(id,deptname,deptno)
             else insert dept_20(id,deptname,deptno) values(id,deptname,deptno)
select * from emp;  
--更新记录
--更新单行记录
update test set c_name='lisi' where id='334';
--使用子查询更新记录
update test set salary=(select avg(salary) from test1 where test.id=test1.id) where test.id='123';
update test t set (t.salary,t.comn)=(select t1.salary,t1.comn from test1 t1 where t.id=t1.id) where t.deptno='20';
--真特么的、、、 merge合并表行 提供了多个表之间合并数据的能力,对数据进行插入时,如存在则更新,不存在,则添加;
merge into emp_copy c using emp e on (c.empno=e.empno)
   when matched then update set c.ename=e.ename,c.job=e.job,c.mgr=e.mgr ...
     when not matched then insert values(e.empno,e.ename,e.job,e.mgr...);
--删除记录  简单删除和子查询删除
--使用truncate 清除表数据
truncate table teble_name;
--与delete语句相比,使用truncate命令速度要快一些,1truncate语句不会激活表的删除触发器;2属于ddl语句,不会产生撤消信息;3如果表是主外键关系主工,则无法清除表内容,必须解禁约束后;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值