Oracle之数据操作__更新

一.更新操作前的准备

    在SQL语句之中,数据的操作语言(DML)由两部分组成:查询( DQL ),更新操作(增加,修改,删除)。

1.复制emp表---新的表名为:myemp

CREATE TABLE myemp AS SELECT * FROM emp;

2.查看目前有哪些表

select * from tab;

二. 数据的增加操作

   增加数据:

                

A. 可以为数据表添加新的数据

 1.使用完整语法,进行数据增加时,需要写上数据的列的名称(推荐)

INSERT INTO myemp(empno,ename,job,mgr,hiredate,sal,comm,did)
VALUES(8888,'悟空','CLERK',7692,SYSDATE,11111,100,20);

2.使用简化语法,需要按照列的顺序增加,否则会出现错误(不推荐)

INSERT INTO myemp
VALUES(8899,'镇元','MANAGER',7692,TO_DATE('1981-01-01','yyyy-mm-dd'),22222,200,20);

3.添加没有 comm,did 的雇员

#--完整语法:只需写要添加的列
INSERT INTO myemp(empno,ename,job,mgr,hiredate,sal)
VALUES(8888,'如来','CLERK',7692,SYSDATE,11111);

#--简化语法,需要设置null的数据,要明确写出null
INSERT INTO myemp
VALUES(9999,'玉皇','CLERK',7692,SYSDATE,11111,null,null);

B. 将子查询结果作为增加数据

   子查询的数据实际上也是一张表的结构,所以可直接将这些数据保存到指定表中。            

#完整格式:将所有20部门雇员信息插入到myemp表之中
INSERT INTO myemp(empno,ename,job,mgr,hiredate,sal,comm,did)
SELECT * FROM emp WHERE did=20;

#简化格式:将所有30部门雇员信息插入到myemp表之中
INSERT INTO myemp
SELECT * FROM emp WHERE did=30;

## 在标准开发上,使用完整语法,增加代码的可维护性

三. 数据的更新操作

    数据库的更新操作主要是指:对数据表中的数据进行修改。

数据修改时,有两种形式:

形式一:由用户指定要更新数据的内容

1.修改 7692 的 sal,comm

UPDATE myemp SET sal=33333,comm=333 WHERE empno=7692;

2. 将工资低于公司平均薪金的雇员的基本工资全部 *100

UPDATE myemp SET sal=sal*100 
WHERE sal<(select avg(sal) from myemp)

形式二:基于子查询的更新

1. 将雇员7692的职位,基本工资,雇佣日期更新为与 7642

UPDATE myemp SET (job,sal,hiredate)=(select job,sal,hiredate from myemp where empno=7642)
WHERE empno=7692;

四. 数据的删除操作

1.删除单个

DELETE FROM myemp WHERE empno=8888;

2.删除多个

delete from myemp where empno in(8899,9999)

 3.删除工资最高的

DELETE FROM myemp WHERE sal=(select max(sal) from myemp);

4.删除1981的雇员

DELETE FROM myemp WHERE TO_CHAR(hiredate,'yyyy')=1981;

## 对于更新的三个操作:增加,修改,删除,每一次都会一定返回当前操作所影响到的数据行数。

原文地址:https://www.cnblogs.com/zhaochangbo/p/8429089.html