数据操纵语言是SQL语言的核心部分之一。在添加、更新或者删除数据库表中的数据时,需要执行DML语句。严格意义上来讲,SELECT查询语句属于查询语言DQL,不属于数据操纵语言DML,但在实际工作中,多数研发人员、数据库管理人员都将SELECT语句归于数据操纵语言中。
1.INSERT语句
要将一行数据插入表中,需要使用INSERT语句,其语法形式如下:
INSERT INTO table[(column1,column2...)] VALUES(value1,value2...)
其中,table表示的是表名,column1,column2...是字段名列表,用“,”隔开,value1,value2...是字段对应值列表,同样用“,”隔开。
- 插入新的行
例如:
insert into study values(1001,'小明',20,'睡觉');
结果:
- 插入带空值的行
需要注意的是,只能对允许为空值的字段插入该字段为控制的行,而且插入新行需要满足该表的其他约束(本章后面的课程会详细介绍)。
例如:
insert into study values(1002,null,null,'睡觉');
结果:
- 插入日期值
例如:
insert into study values(1003,sysdate,null,'吃饭');
结果:
- 插入多行
例如:
insert into study select empno,ename,sal,job from emp where deptno=30;
结果:
2.UPDATE语句
使用INSERT语句可以插入数据。使用UPDATE语句可以修改(更新)表中数据。
其SQL语句如下:
UPDATE 表名 SET 列名=新的数据 WHERE 判断表达式。
例如:
update study set id=10086 where name = '小明';
结果:
- 更新多个字段
例如:
update study set id=1050,age=100,work='无' where name = '小明';
结果:
- 字段的完整性约束
例如:
create table study (id number(10) not null,name varchar2(20) not null, age number(20),work varchar2(30));
insert into study values(1001,null,20,'睡觉');
结果:
3.DELETE语句
删除行使用的是DELETE语句,其语法形式如下:
DELETE [FROM] table[WHERE...]
需要注意的是,DELETE语句执行前没有确认提示,但是该删除操作在数据处理的事务(后面会详细介绍)被提交之前并没有在数据库中被真正执行,如果发现出错,可提前执行ROOLBACK语句撤销该删除操作。
使用DELETE语句时,WHERE子句非常重要,因为如果DELETE语句中没有WHERE子句,则删除整个表可能造成严重后果。
例如:
delete from study where name = '小明';
结果: