千家信息网

Oracle系列:(19)增删改数据

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,准备col empno for 9999;col ename for a10;col job for a10;col mgr for 9999;col hiredate for a12;col sal
千家信息网最后更新 2026年11月02日Oracle系列:(19)增删改数据


准备
col empno for 9999;col ename for a10;col job for a10;col mgr for 9999;col hiredate for a12;col sal for 9999;col comm for 9999;col deptno for 99;col tname for a40;set pagesize 80;


--创建新表xxx_emp,复制emp表中的结构,同时复制emp表的所有数据create table xxx_empas select * from emp;




回顾SQL92/99标准的四大类

(1)DML(数据操纵语言):select,insert,update,delete

(2)DDL(数据定义语言):create table,alter table,drop table,truncate table

(3)DCL(数据控制语言):grant select any table to scott/revoke select any table from scott

(4)TCL(事务控制语言):commit,rollback,savepoint to 回滚点


向emp表中插入一条记录(方式一:按表默认结构顺序)insert into 表名 values ...语法

insert into emp values(1111,'JACK','IT',7788,sysdate,1000,100,40);


向emp表中插入一条记录(方式二:按自定义顺序)insert into 表名(列名) values ...语法

insert into emp(ENAME,EMPNO,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values('MARRY',2222,'IT',7788,sysdate,1000,100,40);


向emp表中插入NULL值(方式一:采用显示插入NULL值)

insert into emp values(3333,'SISI','IT',7788,sysdate,1000,NULL,40);


向emp表中插入NULL值 (方式二:采用隐式插入NULL值),前提是所插入的字段允许插入NULL值

insert into emp(ENAME,EMPNO,JOB,MGR,HIREDATE,SAL,DEPTNO) values('SOSO',4444,'IT',7788,sysdate,1000,40);


【&占位符应用于insert】使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在values子句中使用,例如:'&ename'和&sal

insert into emp values(&empno,'&ename','&job',&mgr,&hiredate,&sal,&comm,&xxxxxxxx);

注意:&是sqlplus工具提供的占位符,如果是字符串或日期型要加''符,数值型无需加''符


【&占位符应用于select的表名】使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在from子句中使用

select * from &table;


【&占位符应用于select的列名】使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在select子句中使用

select empno,ename,&colname from emp;


【&占位符应用于where】使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在where子句中使用

select * from emp where sal > &money;


【&占位符应用于group by和having】使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在group by 和 having子句中使用

select deptno,avg(sal)from empgroup by &deptnohaving avg(sal) > &money;


删除emp表中的所有记录

delete from emp;


将xxx_emp表中所有20号部门的员工,复制到emp表中,批量插入,insert into 表名 select ...语法

insert into empselect * from xxx_empwhere deptno=20;


将'SMITH'的工资增加20%

update emp set sal=sal*1.2 where ename = upper('smith');


将'SMITH'的工资设置为20号部门的平均工资,这是一个条件未知的事物,优先考虑子查询

第一:20号部门的平均工资

select avg(sal) from emp where deptno=20;

第二:将'SMITH'的工资设置为2207

update emp set sal=2207 where ename = 'SMITH';


子查询:

update emp set sal = (    select avg(sal)     from emp     where deptno=20    ) where ename = 'SMITH';



删除工资比所有部门平均工资都低的员工,这是一个条件未知的事物,优先考虑子查询

第一:查询所有部门的平均工资

select avg(sal) from emp group by deptno;

第二:删除工资比(*,*,*)都低的员工

delete from emp where sal

子查询:

delete from emp where sal < all(    select avg(sal)     from emp     group by deptno);


删除无佣金的员工

delete from emp where comm is null;


将emp表丢入回收站,drop table 表名

drop table emp;


从回收站将emp表闪回,flashback table 表名 to before drop

flashback table emp to before drop;


查询回收站,show recyclebin

show recyclebin;


清空回收站,purge recyclebin

purge recyclebin;


使用关键字purge,彻底删除emp表,即不会将emp表丢入回收站,永久删除emp表,drop table 表名 purge

drop table emp purge;


依据xxx_emp表结构,创建emp表的结构,但不会插入数据

create table empasselect * from xxx_emp where 1<>1;
create table emp(empno,ename)asselect empno,ename from xxx_emp where 1=2;



创建emp表,复制xxx_emp表中的结构,同时复制xxx_emp表的所有数据

create table empasselect * from xxx_emp where 1=1;

注意:where不写的话,默认为true


将emp截断,再自动创建emp表,truncate table 表名

truncate table emp;


向emp表,批量插入来自xxx_emp表中部门号为20的员工信息,只包括empno,ename,job,sal字段

insert into emp(empno,ename,job,sal)select empno,ename,job,sal from xxx_emp where deptno=20;



向emp表(只含有empno和ename字段),批量插入xxx_emp表中部门号为20的员工信息

insert into emp(empno,ename)select empno,ename from xxx_emp where deptno=20;



drop table 和 truncate table 和 delete from 区别:

drop table

1)属于DDL

2)不可回滚

3)不可带where

4)表内容和结构删除

5)删除速度快

truncate table

1)属于DDL

2)不可回滚

3)不可带where

4)表内容删除

5)删除速度快

delete from

1)属于DML

2)可回滚

3)可带where

4)表结构在,表内容要看where执行的情况

5)删除速度慢,需要逐行删除


工资 结构 数据 员工 查询 动态 回收站 子句 语句 部门 应用 输入 方式 语言 内容 字段 语法 速度 事物 信息 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 有格互联网科技 喔噻互联网科技有限公司 网络科技有限互联网 互联网科技股票 百单互联网科技有限公司 互联网 视角下的科技创新 联恩商钥互联网科技有限公司 互联网科技公司的市场部门 中国的互联网科技企业的崛起 受益于互联网科技的高速发展 亳州好赞互联网科技有限公司 区块链结合互联网科技 工业互联网展湾科技股份有限公司 南通创西澳互联网科技有限公司 雨阳互联网卡科技有限公司 扫呗互联网科技有限公司 上海乐五互联网科技有限公司 易租星互联网科技有限公司 银川新华互联网科技学校原画 科技互联网公司两年变化 耶加雪菲 互联网科技公司排名 中关村互联网 科技集团 鸠鸠互联网科技 互联网科技小贷 互联网金融科技创新 居家互联网科技有限公司 欧洲十大科技互联网公司 互联网金融科技名词解释 国大互联网教育科技有限公司薪资
0