Oracle增删改以及事务

select * from dept--部门表
select * from emp--员工表
create table newEmp as
select * from emp where 1=2;
---------------------------------------------------------
--插入数据--

--1.to_date(值,格式)函数
insert into emp(empno,ename,hiredate)
values(1000,'aa',to_date('2000-01-01','yyyy/mm/dd'))

--2.只插入一条数据
--外键的值不允许参照相应主表中不存在的主键值,或者外键为空值. 
insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
values(1234,'张三','clerk',null,sysdate,2000,null,null)
insert into emp(empno,ename,hiredate)
values(&empno,&ename,&hiredate)

--3.一次插入多行数据
insert into newEmp 
select * from emp where sal > 2000
----------------------------------------------------------
--更新数据--
--1.只更新一个字段值

--1.1所有员工涨薪百分之10
update newEmp set sal = sal * 1.1;
--1.2更新comm值为空或者为0的置为100
update emp set comm = 100
 where comm is null or comm =0

--2.同时更新多个字段值

--2.1更新7369号员工的工作和工资使其与7876号员工相同
update emp set(job,sal) =
 (select job,sal from emp where empno=7876)
where empno = 7369

--删除
--1.删除部门名为SALES的员工信息
delete from emp 
where deptno = 
(select deptno from dept where dname='SALES')

--2.删除奖金为空的员工数据
delete from emp
where comm is null

--3.删除部门号为10的部门
delete from dept 
where deptno = 10

--.事务
--DML(data manipulation language)--数据库操纵语言--主要是增删改查操作
--DDL(data definition language)--数据库定义语言--主要命令有(alter,create,drop),主要用它来定义或者改变表的结构、
--数据类型、表之间的连接或者约束等初始化工作
--DCL(data control language)--数据库控制语言--是用来设置或更改数据库用户或角色权限的语句,包括(grant,revoke,deny等),
--还有commit(提交),savepoint(保存点),rollback(回滚)等

--以第一个DML语句的执行作为开始
--以下面的其中之一作为事务的结束:
--1.commit或rollback语句
--2.DDL或DCL语句(自动提交的)
--3.用户会话正常结束(关闭窗口)
--4.系统异常终止了

--使用commit和rollback的优点:
--1.确保数据完整性。
--2.数据改变被提交之前预览
--3.将逻辑上相关的操作分组

--回滚到保留点
--使用savepoint语句在当前十五中创建保存点
select * from emp;
update emp set comm= 500 where comm is null;

savepoint A;
update emp set comm = 1300 where comm = 300;

rollback to savepoint A; 

--使用rollback to savepoint语句回到创建的保存点。
rollback to savepoint A;
commit;
rollback;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Phil Jackson

你的鼓励就是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值