DML、DQL主要是针对数据行的操作
7.2
DML 数据操作语言
增行:insert:
插入语句 插入式必须按照列定义好的属性插入
最规范的插入数据
insert into oldguo(id,name,qq,age) values (1,'oldguo','7789789','45');
查行:查看表数据(不代表生产)
select * from oldguo;
改行:update:
更新数据行的值(谨慎操作)
update oldguo set qq='123123' where id=2;
删行:delete:
删除数据行(谨慎操作)
delete from oldguo where id=2;
需求:将一个大表全部数据清空
truncate table oldguo;
问题:delete和truncate的区别
1.delete 是逻辑删除 逐行删除 不会降低自增长得起始值 效率低 产生的碎片多 会影响性能
2.truncate 属于物理删除将表段中的区回收 不会产生碎片性能就高
需求:不想看到一条数据可以用update代替delete 进行伪删除
1. 添加状态列 state (1代表存在 0代表删除)
2. 使用update模拟delete
DELETE FROM oldguo WHERE id=6;
替换为
UPDATE oldguo SET state=1 WHERE id=6;
SELECT * FROM oldguo ;
3. 业务语句修改
SELECT * FROM oldguo ;
改为
SELECT * FROM oldguo WHERE state=0;
7.2
DQL 数据查询语言
select
show
网友评论