linux oracle增删改,Oracle增删改数据详解

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

insert into emp values (1111, 'JACK', 'IT', 7788, sysdate, 1000, 100, 40);/*向emp表中插入一条记录(方式二:按自定义顺序)insert into 表名(列名) values ...语法*/

insert intoemp

(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 intoemp

(ENAME, EMPNO, JOB, MGR, HIREDATE, SAL, DEPTNO)values('SOSO', 4444, 'IT', 7788, sysdate, 1000, 40);/*使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在values子句中使用,例如:'&ename'和&sal*/

insert intoempvalues(&empno, '&ename', '&job', &mgr, &hiredate, &sal, &comm, &xxxxxxxx);

注意:&是sqlplus工具提供的占位符,如果是字符串或日期型要加''符,数值型无需加''符/*使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在from子句中使用*/

select * from &table;/*使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在select子句中使用*/

select empno,ename,&colname fromemp;/*使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在where子句中使用*/

select * from emp where sal > &money;/*使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在group by 和 having子句中使用*/

select &deptno, avg(sal) from emp group by deptno having avg(sal) > &money;/*删除emp表中的所有记录*/

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

insert intoempselect * from xxx_emp where 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'的工资设置为2207update emp set sal=2207 where ename = 'SMITH';

子查询:updateempset sal =(select avg(sal) from emp where deptno = 20)where ename = 'SMITH';/*删除工资比所有部门平均工资都低的员工,这是一个条件未知的事物,优先考虑子查询*/第一:查询所有部门的平均工资select avg(sal) from emp group bydeptno;

第二:删除工资比(*,*,*)都低的员工delete from emp where sal

子查询:delete from emp where sal < all (select avg(sal) from emp group bydeptno);/*删除无佣金的员工*/

delete from emp where comm is null;/*将emp表丢入回收站,drop table 表名*/

drop tableemp;/*查询回收站,show recyclebin,但是经过使用发现这个语句不能使用,这里贴出来参考*/show recyclebin;/*查询回收站,使用下面语句,亲测可以*/

select * fromrecyclebin;create tablet_hzp(

idnumber(12) primary key,

namevarchar(32)

);--创建表

insert into t_hzp (id,name) values (12,'夜孤寒');--插入数据

select * from t_hzp;--查询表数据

drop table t_hzp;--删除表

select * from t_hzp;--测试表是否已经删除

select * from recyclebin;--查询回收站是否有已删除表

/*从回收站将emp表闪回,flashback table 表名 to before drop*/flashbacktable emp to before drop;--亲测可以,但是可能要在command sql窗口使用

/*清空回收站,purge recyclebin*/

drop table t_hzp;--删除表

select * from recyclebin;--查看删除的表是不是在回收站中

purge recyclebin;--清空回收站

select * from recyclebin;--查询清空之后删除的表是不是还是在回收站(亲测不在回收站中了)

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

create tablet_hzp(

idnumber(12) primary key,

namevarchar(32)

);--创建表

insert into t_hzp (id,name) values (12,'夜孤寒');--插入数据

select * from t_hzp;--查询表数据

drop table emp purge;--彻底删除表

select * from recyclebin;--查询删除的表是不是在回收站中

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

create tablexxx_empas

select * from emp where 1<>1;--复制表结构

select * from xxx_emp;--

/*当不小心使用关键字purge将表彻底删除之后怎么回复?如果没有办法的话,那就创建吧...*/

create tableEMP

(

empnoNUMBER(4) not null,

enameVARCHAR2(10),

jobVARCHAR2(9),

mgrNUMBER(4),

hiredate DATE,

salNUMBER(7,2),

commNUMBER(7,2),

deptnoNUMBER(2)

);/*使用下面语句更新或者创建对象比较方便*/

select * from emp for update;/*创建emp表,复制xxx_emp表中的结构,同时复制xxx_emp表的所有数据*/

create tableyyy_empas

select * from emp where 1=1;--复制表

select * from yyy_emp;--查询表

注意:where不写的话,默认为true/*将emp截断,再自动创建emp表,truncate table 表名*/

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

insert intoemp

(empno, ename, job, sal)select empno, ename, job, sal from xxx_emp where deptno = 20;/*使用关键字purge,彻底删除emp表,即不会将emp表丢入回收站,不要乱用,不然就炸了*/

drop tableemp purge;/*依据xxx_emp表,只创建emp表,但不复制数据,且emp表只包括empno,ename字段*/

create tableemp(empno,ename)as

select empno,ename from xxx_emp where 1=2;/*向emp表(只含有empno和ename字段),批量插入xxx_emp表中部门号为20的员工信息*/

insert intoemp

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值