DML语句
Oracle中的语句
一、 DQL 语句
DQL(Data Query Language)语句:数据查询语言,主要是对数据进行查询操作。
常用关键字有 SELECT、FROM、WHERE 等。
二、 DDL 语句
DDL(Data Definition Language)语句: 数据定义语言,主要是进行定义/改变表的结构、数据类型、表之间的链接等操作。
常用的语句关键字有 CREATE、DROP、ALTER 等。
三、 DML 语句
DML(Data Manipulation Language)语句: 数据操纵语言,主要是对数据进行增加、删除、修改操作。
常用的语句关键字有 INSERT、DELETE、 UPDATE 等。
四、 DCL 语句
DCL(Data Control Language)语句: 数据控制语言,主要是用来设置/更改数据库用户权限。
常用关键字有 GRANT、REVOKE 等。
DML语句 数据操纵语言
一.INSERT 插入
1.插入整行数据
1 | INSERT INTO 表名 VALUES(值1,值2,值...); |
插入字符型数据
1 | INSERT INTO AAA VALUES(ZHUYUXUAN);--报错 |
可以插入相同的数据
1 | INSERT INTO AAA VALUES('DUHAO','HUANGYINGZHENG');--报错,当插入的值超过列数时,值过多,列数得保持一致 |
插入数值型数据
1 | DROP TABLE AAA; |
插入日期型数据
1 | VARCHAR2(20)--20指的是 |
以下为拓展内容
1 | INSERT INTO AAA VALUES('123');--可以插入字符串 |
2.插入部分行数据
(插入一行内部分数据)
语法:
1 | INSERT INTO 表名(字段1,字段2,...) VALUES(值1,值2,...) |
1 | 例如:INSERT INTO EMP_2(CNAME,ENGLISH) VALUES('可钦',90); |
–没有插入值的地方以空值填充
1 | INSERT INTO EMP_2(CNAME,ENGLISH) VALUES('',100); |
–空值可以为两个单引号,中间不写内容,也可以为NULL
1 | COMMIT;--提交,在上一次提交之后做的操作都被提交掉 |
–DDL语句默认运行提交,会把在上一次提交之后做的操作都被提交掉
1 | alter TABLE EMP_2 ADD(SEX CHAR(10)); |
3.从来源表插入数据
语法:
1 | INSERT INTO 表名(字段1,字段2) SELECT 字段1,字段2 FROM 数据来源表 <WHERE> |
前面写插入到哪些列里面去,后面写插入哪些列的内容
- 如果有多个满足条件的会全部插入,如果没有where会把内容全部插入
- 如果插入的数据长度大于被插入的列,会报错,需要修改被插入的列的数据类型
二.UPDATE 更新表
FOR UPDATE
更新表语句
语法:
1 | UPDATE 表名 SET 字段1=新值1,字段2=新值2,...<WHERE> |
例如:
1 | UPDATE EMP_2 SET CHINESE = 100 WHERE CNO = 1; |
三.DELETE 删除
–只能删除数据,不能删除表
语法:DELETE FROM
表名 WHERE
条件;
1 | DELETE FROM EMP_2 WHERE CNAME = '沉渊' OR CNO IN(1,2,3); |
事务在处理过程中遇到错误时,点击确定或帮助,会跳过错误,继续执行,直到遇到下一个错误或者结束。
点击取消或者叉掉,直接结束运行,没有报错的部分会被执行。
四.事务
使用一系列语句构成的逻辑工作单元
COMMIT
–提交ROLLBACK
–回滚SAVEPOINT
保存点名 –保存点
思考题:COMMIT
和SAVEPOINT
连用会怎么样呢?
1 | SELECT * FROM EMP_2; |
–事务在处理过程中遇到错误时,点击确定或帮助,会跳过错误,继续执行,直到遇到下一个错误或者结束
–点击取消或者叉掉,直接结束运行,没有报错的部分会被执行
事务的四个属性:
原子性
事务是一个整体的工作单元,要么全部提交,要么全部回滚;
一致性
所有数据必须保持状态一致,以保持数据的完整性;
(事务执行成功时,所有数据会变为新状态,执行失败则所有数据变为事务开始前的状态)
隔离性
当前事务进行数据修改时,只要还没提交,其他事务只能查看修改前的状态;
(以后可能很多人同时使用一个数据库,只要没提交,别人就看不到新状态(新数据))持久性
事务提交后,修改的内容会被永久保存。
显式提交 DML
隐式提交 DDL