1、作用

DML: 数据操作语言
操作对象是记录; 插入、删除、修改

2、insert 插入记录

  1. #语法
  2. INSERT INTO table_name ( field1, field2,...fieldN )
  3. VALUES
  4. ( value1, value2,...valueN );
  5. #如果数据是字符型,必须使用单引号或者双引号,如: "value"
  6. #举例1: 全部列录入 (标准写法)
  7. desc student;
  8. insert into
  9. student(id,name,age,gender,address,intime,shenfen,num)
  10. values(1,'张三',18,'m','北京','2020-04-27','612425199901014321',10);
  11. select * from student;
  12. #举例2: 全部列录入 (省略写法)
  13. insert into
  14. student
  15. values(2,'李四',19,'m','北京','2020-04-27','612425199901014321',11);
  16. #举例3: 部分列录入 (非必填项,有默认值)
  17. insert into
  18. student(name,intime,num)
  19. values('王五',NOW(),12);

3、update更新记录

更新单列数据
#update  student set name='张丽' where id=3;
select * from student;

#更新多列数据
#update  student set name='张莉',age=22 where id=3;
select * from student;

注意:
使用update更新语句,一定要加上where条件,否则就是全表更新

说明:
生产中,尽量使用单列更新,减少锁争用.除非数据量小或者访问压力小使用多列更新

4、delete删除记录

#删除单条记录
#delete from student where id =4;
select * from student;

注意:
使用delete删除语句,一定要加上where条件,否则就是全表删除

4.1、伪删除

update替代delete,添加状态列:1代表存在;0代表删除

1.添加状态列
alter table student
add column state tinyint not null default 1 comment '状态列,0是删除,1是存在';

2.使用update替代delete
update student set state=0 where id=3;

3.替换查询语句
select * from student where state=1;

4.2、不同删除方式区别

drop table tbname
DDL操作, 属于物理性质, 会释放磁盘空间
删除所有表数据:
1. 删除整个表段: rm -rf tbname.idb文件
2. 删除表定义: rm -rf tbname.frm文件

truncate table tbname
DDL操作, 属于物理性质性质, 会释放磁盘空间
清空表段中的数据页,保留表结构

delete from tbname
DML操作, 属于逻辑性质删除, 只是标记删除, 不会立即释放磁盘空间
删除数据行, 逐行删除, 保留表结构

delete删除表: MySQL 高水位线, 低水位线
例如删除id 1-1w的数据, MySQL 高水位线还是1w, 还是会扫描1-1w的数据