1、作用
DML: 数据操作语言
操作对象是记录; 插入、删除、修改
2、insert 插入记录
#语法INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );#如果数据是字符型,必须使用单引号或者双引号,如: "value"#举例1: 全部列录入 (标准写法)desc student;insert into student(id,name,age,gender,address,intime,shenfen,num)values(1,'张三',18,'m','北京','2020-04-27','612425199901014321',10);select * from student;#举例2: 全部列录入 (省略写法)insert into studentvalues(2,'李四',19,'m','北京','2020-04-27','612425199901014321',11);#举例3: 部分列录入 (非必填项,有默认值)insert into student(name,intime,num)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的数据