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;
Oracle增删改以及事务
最新推荐文章于 2023-03-21 08:14:53 发布