一.更新操作前的准备
在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;
## 对于更新的三个操作:增加,修改,删除,每一次都会一定返回当前操作所影响到的数据行数。