基本介绍
DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中表的数据记录进行更新。主要操作是对表中的数据进行增、删、改。
关键字:
- 插入insert
- 删除delete
- 更改update
数据插入
格式1:
-- DML操作
-- 数据的插入
-- 格式1:
-- insrt into 表 (列名1,列名2,列名3...) values(值1,值2,值3...);
insert into 学生表(id,班级,院系,成绩)
values(01,'1班','信息系',90);
格式2:
-- 格式2:
-- 语法格式:insert int 表 values (值1,值2,值3...);向表中插入所有列
insert into 学生表 values(02,'2班','信息系',89);
注:格式1比较灵活,可以选择自己需要负责的列,但所有的数据都必须要对应,这样才不会报错,数据的类型要匹配
格式2更加简化,都是每一列都需要给一个值
数据修改
-- 数据修改
-- 格式1:
-- update 表名 set 字段名=值,字段名=值...;
-- 格式2:
-- update 表名 set 字段名=值 where 条件;
-- 1.将所有学生的班级改为1班
update 学生表 set 班级='1班';
-- 格式1
-- 2.将id为1的学生id改为202201
update 学生表 set id=202201 where id=1;
-- 格式2
-- 3.将id为2的学生id改为202202,成绩改为95
update 学生表 set id=202202,成绩=95 where id=2;
-- 格式2
注:
格式1不加条件,会将该列的所有值修改
格式2只会修改符合条件的值
可以通过加逗号为多列赋值
数据删除
-- 数据删除:
-- 语法1:delete from 表名 [where 条件]
-- 语法2:truncate table 表名 或者 truncate 表名
-- 1.删除sid为202204的学生数据
delete from 学生表 where id=202204;
-- 2,删除表所有数据
delete from 学生表;
-- 3.清空表数据
truncate table 学生表;
truncate 学生表;
注意:
delete和truncate的比较:
相同点
两者都是删除表数据 但不会删除表结构
不同点
1.delete支持按条件删除,TRUNCATE不支持。
2.delete 删除后自增列不会重置,而TRUNCATE会被重置。
3.delete是逐条删除(速度较慢),truncate是整体删除(速度较快)。
4.delete删除是一条一条删除,并不会改变表结构,属于DML,而truncate删除表数据是将表删掉,重新新建一张表,属于DDL。
5.delete不会释放空间,而TRUNCATE会释放空间。
6.delete 支持回滚,TRUNCATE不支持。