DML 语句
一.FOR UPDATE
1.概述
FOR UPDATE用于SELECT 语句后,执行后手动更改SELETC 语句查询后的结果
2.语法
SELECT * FROM TABLE_NAME FOR UPDATE --全局修改
SELECT * FROM TABLE_NAME WHERE CONDITION FOR UPDATE -------------部分修改
3.优缺点
优点:
1.操作简单;
2.可以同时满足增、删、改三方面的需求。
缺点:
1同时对大量数据操作时会有崩溃的危险;
2.必须依赖特定的数据库操作工具。
三.自动修改
1.插入数据
-----INSERT
语法:1.INSERT INTO TABLE_NAME (COLUMN1,…) VALUES(VALUE1,…);
2.INSERT INTO TABLE_NAME(COLUMN1…) SELECT 语句;
注意:
1).插入语句执行后,可以回滚、提交
2).未提交状态下,只在当前窗口有效
3).未提交状态下,右键表名删除时,报错 资源正忙
4).同时承受的数据插入会更多,但会有崩溃的危险。
若数据量较多建议改到命令窗口执行且中间多穿插’【COMMIT; 】命令。
5).插入数据在表中数据的最后一行添加一行新的数据,未给定数据的字段,表中结果为空
2.修改数据
定义:dml语句,用来修改表中的数据
语法:UPDATE TABLE_NAME SET COLUMN=VALUE [WHERE CONDITION];
示例:
1)将emp表中20号部门的COMM列修改为1000
UPDATE EMP SET COMM=1000 WHERE DEPTNO=20;
注意:
1).不加where条件的修改,是表中整个列全部修改 ,添加WHERE 条件后修改的为表中符合条件的列
2).SET后字段名=值,顺序不能颠倒
3).SET后的字段和值数据类型一致
4).多列同一条件下修改时,直接写在SET后,中间用逗号间隔即可
5).SET后的数值可以是函数(返回对应字段的数据)不能为分组函数,运算,子查询(单行单列,单行多列,相关子查询)
6).加条件修改表中的数据,WHERE的使用和SELECT 语句中的使用一致
.删除表中数据
定义:删除表中的数据
语法:DELETE FROM TABLE_NAME; ------删除表中全部数据
DELETE FROM TABLE_NAME WHERE CONDITION; -----删除表中符合条件的数据
示例:
1).删除EMP3表中JOB列为空的数据
SELECT * FROM EMP3;
DELETE FROM EMP3 WHERE JOB IS NULL;
注意:
1.删除表中数据时一定要注意删除语句的书写,确保数据删除正确,然后在提交,
一旦提交结果,以后操作不可撤销
2.加where条件的删除数据,和之前讲的条件查询中where的用法一致
只把表中符合条件的数据删除
3.删除数据时是以整条数据为基础删除的,即要么不删 要么整条数据全部删除
四.复制表
1.语法
CREATE TABLE TABLE_NAME AS SELECT 语句;
–创建一张名为TABLE_NAME的表,表的结构和select语句查询的结果集的结构一致,并将select语句的查询结果插入到表中
示例:
1).备份emp表中的数据
CREATE TABLE EMP3 AS SELECT * FROM EMP;
SELECT * FROM EMP3;
2)备份表
SELECT * FROM EMP3;
CREATE TABLE EMP3 AS SELECT E.DEPTNO,DNAME,ENAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO;
注意:
1).复制表时只会将SELECT语句的结 构和数据以及该表的非空约束复制过来,其他均不会复制
2).复制的表中的结构和数据以select语句为准
五.MERGE语法
1.概述
可以实现在一个语句中同时完成增加,删除,修改的功能
2.语法
MERGE INTO TABLE_NAME A ----要更新的表
USING TABLE_NAME B -----更新表要用到的数据
ON CONDITION -----匹配条件
WHEN MATCHED THEN -----如果ON后的条件能匹配上
UPDATE SET COL=VAL1… ------对A表中的数据用B表的数据更新
WHERE CONDITION----条件
DELETE WHERE CONDITION -----对A表中的数据进行删除操作
WHEN NOT MATCHED THEN -----如果WHERE后的条件未匹配上
INSERT () VALUES() ----对A表插入B表的数据
注意:
1.ON关联条件必须用括号引起
2.ON后可以为多个条件,用AND/OR连接
3.ON后的条件需不含有重复的数据
4.UPDATE后不需要表名,INSERT后不需要INTO关键字,DELETE后不需要FROM,不能单独删除,必须跟在UPDAET后
5.不能去更细ON条件中引用的列
6.插入语句可以在INSERT后跟字段指定要插入的列的数据
7.MERGE不能加子查询语句
8.两个when条件可以只有一个
MERGE语法的优势:
1.可以同时满足增、删、改的要求,而不必分开书写多个SQL
2.可以依据目标表原有数据的情况作出改动
劣势:
无法单独满足删除的要求
六.小结
1.掌握DML语句的定义
2.熟练使用INSERT UPDATE DELETE 语句
3.会用MERGE INTO语句
4.熟练使用DML语句和子查询、表连接的联合使用
DDL
特点:
1.ddl语句执行完立即生效,不需要提交/回滚操作
2.ddl语句修改的为表的结构,并不修改表中的数据
DDL与DML区别:
1.ddl语句修改表的结构,不对表中数据做修改
2.dml语句修改的是表中的数据,不对表的结构做修改
3.DDL语句执行完后没有提交回滚操作
DML语句执行完后有提交回滚操作