设为首页 收藏本站
查看: 1776|回复: 0

[经验分享] Oracle系列:(19)增删改数据

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2018-9-7 12:41:36 | 显示全部楼层 |阅读模式
准备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_emp
  
as
  
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;
DSC0000.png

  【&占位符应用于select的列名】使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在select子句中使用
select empno,ename,&colname from emp;
DSC0001.png

  【&占位符应用于where】使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在where子句中使用
select * from emp where sal > &money;  【&占位符应用于group by和having】使用&占位符,动态输入值,&可以运用在任何一个DML语句中,在group by 和 having子句中使用
select deptno,avg(sal)  
from emp
  
group by &deptno
  
having avg(sal) > &money;
  删除emp表中的所有记录
delete from emp;  将xxx_emp表中所有20号部门的员工,复制到emp表中,批量插入,insert into 表名 select ...语法
insert into emp  
select *
  
from xxx_emp
  
where deptno=20;
DSC0002.png

  将'SMITH'的工资增加20%
update emp set sal=sal*1.2 where ename = upper('smith');
DSC0003.png

  将'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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-566105-1-1.html 上篇帖子: linux配置oracle sqldeveloper 下篇帖子: Oracle系列:(20)事务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表