SQL语句复习【专题三】
DML 数据操作语言【insert into update delete】
创建表 简单的方式【使用查询的结果集来创建一张表】
create table temp as select * from emp
select * from temp
--删除表
drop table temp
--创建一张空表【只是复制了表的结构】
select * from emp where 1!=1
create table temp as select * from emp where 1!=1
--insert插入测试数据
select * from temp
insert into temp (empno, ename, job,mgr,hiredate,sal,comm,deptno) values('0001','张三丰','掌门',null,sysdate,5000,1000,10);
insert into temp (empno, ename, job,mgr,hiredate,sal,comm,deptno) values('0002','张无忌','教主',null,sysdate,3000,500,10);
--提交数据【一定要提交事务】
commit
--显式的插入指定的字段数据,字段的顺序可以和表结构不一致。可以不插入所有的数据,插入指定的某些字段的数据。
insert into temp (empno, ename, job,mgr,hiredate,sal,comm,deptno) values('0003','赵敏','郡主',null,sysdate,3000,500,20);
--回滚数据--提交数据之后就不能再回滚。
rollback
-- 只是对插入的数据指定某些值
insert into temp (ename,empno, job,hiredate,sal,deptno) values('周芷若','0004','峨眉派',sysdate,10000,20);
-- 不显式的声明要写入的字段,必须按照表结构的顺序书写
insert into temp values('0005','小昭','侍女',null,sysdate,3000,500,10);
--修改数据 update:所有需要修改的数据,都需要使用 where 条件筛选出来。
--将张无忌的mgr 设置为 张三丰
update temp set mgr='0001' where ename='张无忌'
select * from temp
--将所有的员工的工资都提升50%
update temp set sal=sal*1.5 where 1=1
--将所有奖金为null 的员工的奖金设置为0
update temp set comm=nvl(comm,0) where 1=1
--将没有领导的员工的领导设置为自己的编号
update temp set mgr=nvl(mgr,empno) where 1=1
--删除 from 可以省略
delete from temp where ename='周芷若'
delete temp where ename='赵敏';
commit
--如果删除所有的数据,不加条件就ok
delete temp
--全部删除数据的时候可以使用 truncate, 效率更高,而且不需要提交。
truncate table temp