Oracle入门学习系列笔记(二)之数据定义语言(DML)
说明: 本文档为本人学习Oracle过程中整理的相关笔记,供大家学习时参考,如有不妥之处,请大家指正
介绍
数据定义语言,英文全称为:Data Manipulation Language,简称为:DML,用于改变表中的数据;和事务相关,执行完后需要经过事务控制语句提交后才真正的将改变应用到数据库中
主要包括:
- INSERT: 将数据插入到数据库表中
- UPDATE: 更新数据库表中已经存在的数据
- DELETE: 删除数据库表中的数据
INSERT 语句
- 语法:
INSERT INTO tableName [(column[,colume])] VALUES (value[,value])
- 作用: 向数据库表中插入一条记录
- 例如: 向学生信息表中插入一条数据,使用如下语句
insert into david.stu_inf (ID,STU_NME,SEX,FEE,BIR_DATE,PHONE_NO) values (1002,'李翠花','F',3100.00,to_date('2002-07-15','YYYY-MM-DD'),'15989990000');
commit;
- 列名也可以省略不写,不过要按照列的顺序将相应的数据类型的值插入,使用下面的语句:
insert into DAVID.STU_INF values (1001,'张晓军','M',3000.00,to_date('2001-03-25','YYYY-MM-DD'),'13899990000');
commit;
- 说明:
- 1.在执行插入操作时,列名可以不用指定,但是此时必须按照数据库表中列的顺序插入相应类型的合法的值,方能成功执行;严格来说建议采用指定列名的方式来执行插入操作
- 2.上面的两条sql语句中,针对日期类型的插入使用了to_date函数,这种在我们以后的操作中也建议使用此种方式,方面我们插入指定格式的日期参数
UPDATE 语句
- 语法:
UPDATE tableName SET column=value[,column=value]…
[WHERE condition]
- 作用: 更新数据库表中已经存在的数据
- 例如: 将学生信息表中的ID为1002的学生的学费更新为3000元,则使用如下的语句
UPDATE DAVID.STU_INF SET FEE=3000.00 WHERE ID=1002;
commit;
- 说明: WHERE 子句可以不带,但是不包含WHERE子句的更新表示全表的数据都要更新,所以这里建议根据所需的指定的条件去更新数据库表
DELETE 语句
- 语法:
DELETE [FROM] tableName [WHERE condition];
- 作用: 删除表中的记录
- 例如: 删除学生信息表中ID为1002的学生的学生信息,则使用如下的语句
DELETE DAVID.STU_INF WHERE ID=1002;
commit;
- 说明:
- 1.FROM关键字可以不用包含
- 2.WHERE 子句可以不带,但是不带WHERE子句表示要将 全表的数据删除,这里一定要慎重!!!
说明:DML数据操作语言和事务相关,所以在执行完语句之后,需要将事务提交,方能将数据更改应用到数据库中,在本文档中每执行一次的DML都执行了一次commit操作
DELETE和TRUNCATE语句
- 联系: DELETE语句和TRUNCATE语句两者都具有删除表数据的作用
- 区别:
- 1.DELETE是DML语句,可以回退;而TRUNCATE是DDL语句,立刻生效,不能回退
- 2.DELETE可以有条件的删除,TRUNCATE只能将全表的数据删除
- 3.如果是删除全表的数据,且数据量大时,TRUNCATE的执行效率比DELETE要高,建议采用
如果你觉得本笔记对你有帮助,请扫码给予支持,金额随意