MySQL系列-DML语句

运维少年 运维少年

系列文章说明

MySQL系列文章包含了软件安装、具体使用、备份恢复等内容,主要用于记录个人的学习笔记,主要使用的MySQL版本为5.7.28,服务器系统版本为CentOS 7.5。本章节为DML语句使用,其中不包含select语句。

何为DML语句

DML(Data Manipulation Language)数据操纵语言命令使用户能够查询数据库以及操作已有数据库中的数据。

DML语句和DDL语句有何不同?DML语句用于对表中的数据进行操作(如插入数据insert、删除数据delete、更新数据update、查询数据select等),而DDL语句则是对数据库和数据表的结构进行操作(如创建表/库 create、删除表/库 drop 、修改表/库 alter等)。

总结:DML是日常使用最多的语句,其主要作用是对表中的数据进行管理。

DML语句使用

DML语句主要包括insert、update、delete、select(后续章节介绍)
本次用到的表如下:

DML insert


insert语句用于表数据插入,格式如下:

insert into 表名(列名) values(列值)
  • 例1:在student表中插入yunwei1的信息
insert into student(sno,sname,sage,ssex) values(11,'yunwei1',24,'m');
insert语句说明①如果全部列都设置列值,可以不用指定列名②一般来说,自增长列可以不用指定列名和设置列值
  • 例2:不指定列名插入yunwei2的信息
insert into student values(12,'yunwei2',27,'f');

例3:不指定自增长列插入yunwei3的信息

insert into student(sname,sage,ssex) values('yunwei3',30,'m');

  • 例4:一条语句插入yunwei4和yunwei5的信息
insert into student(sname,sage,ssex) values('yunwei4',19,'m'),('yunwei5',17,'f');

DML update


update语句主要用于更新表数据,一般配合where使用,其格式如下:
update 表名 set 列名1=列值1,列名2=列值2 where 条件;

  • 例1:将yunwei5的年龄修改为27
update student set sage=27 where sname='yunwei5';

  • 例2:将yunwei4的名字修改为yunwei44,年龄改为88
update student set sname='yunwei44',sage=88 where sname='yunwei4';

DML delete


delete用于删除表中的数据,一般配合where语句使用,其格式如下:

delete from 表名 where 条件;
  • 例1:删除yunwei44的信息
delete from student where sname='yunwei44';

0 1伪删除


  • 伪删除是什么?伪删除即表面上看不到该数据,但数据还是存在的。
  • 为什么需要伪删除?一般数据删除后,恢复流程麻烦,且有无法恢复的风险。伪删除可以帮助我们实现删除的数据不显示,但如果想使用的时候可以将数据随时显示出来。
  • 伪删除是怎么做的?伪删除的实现办法是在表中添加一个状态列标识数据行的状态,比如列值1表示没有删除,0表示数据已删除,然后在查看数据时,加上条件,只显示状态列为1的数据即可。
 #在表中插入新列(注:生产上请谨慎操作,修改表结构会导致暂时的锁表)alter table student add column status tinyint not null default 1 comment '数据状态';

  • 例:伪删除yunwei5的信息
update student set status=0 where sname='yunwei5';

例:恢复yunwei5的信息

update student set status=1 where sname='yunwei5';

0 2删除表所有数据


删除表所有数据可以使用delete和truncate语句进行删除。

  • delete:逐行删除,如果数据行过多,删除操作很慢,而且并没有真正从磁盘删除,只是在存储层面打标记,磁盘空间不会立即释放,自增的值也不会释放。HWM高水位线不会降低。
  • truncate:清空表段中的所有数据页面,物理磁盘空间上删除,磁盘空间立即释放,HWM高水位线会降低

  • delete命令格式如下:
delete from 表名;
  • truncate命令格式如下:
truncate table 表名;

个人思维导图

end

©著作权归作者所有:来自51CTO博客作者mb5ffd6f0f39006的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. SQL基础知识V2——SELECT
  2. MySQL系列-表是如何组成的?
  3. MySQL系列-DDL语句
  4. Unity3D直接从Zip中读取文本数据
  5. EXCEL应用之商机分析:Smartbi助你抓住每个销售机会
  6. postgresql备份与PITR恢复
  7. Redo Log & CacheEngine 性能详解
  8. 高频数据采集请求如何不影响主业务(7)
  9. PowerBI基础知识——显示和导出数据

随机推荐

  1. android - 为安全而设计 - 1 - 开发文档
  2. Android数据储存
  3. Android JNI开发入门之二
  4. Android软件安全与逆向分析
  5. Android(安卓)RecyclerView使用详解
  6. Android之——手机黑名单的实现
  7. TextView常见功能应用
  8. [置顶] Android FrameWork Service 之 St
  9. Android四款系统架构工具
  10. android实现自动对焦拍照