mysql 查看 dml,MySQL系列-DML语句

mysql 查看 dml,MySQL系列-DML语句MySQL 系列 DML 语句运维少年运维少年系列文章说明 MySQL 系列文章包含了软件安装 具体使用 备份恢复等内容 主要用于记录个人的学习笔记 主要使用的 MySQL 版本为 5 7 28 服务器系统版本为 CentOS7 5 本章节为 DML 语句使用 其中不包含 select 语句 何为 DML 语句 DML DataManipula 数据操纵语言命令使用户能够查询数据库以及操作已有

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(后续章节介绍)

本次用到的表如下:

6cff0b08d41076caa2dd8bafdb2577bd.png

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’);

6aa0e95ecbc59b13ee7f44281e9298ab.png

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

insert into student(sname,sage,ssex) values(‘yunwei3′,30,’m’);

ba349d4351d8ca4dd68e55b60f9352cb.png

例4:一条语句插入yunwei4和yunwei5的信息

insert into student(sname,sage,ssex) values(‘yunwei4′,19,’m’),(‘yunwei5′,17,’f’);

152675ed513a0c2f6095542a9af9593c.png

DML update

update语句主要用于更新表数据,一般配合where使用,其格式如下:

update 表名 set 列名1=列值1,列名2=列值2 where 条件;

例1:将yunwei5的年龄修改为27

update student set sage=27 where sname=’yunwei5′;

5caf18e61ecf104e4ed46b2090548bd5.png

例2:将yunwei4的名字修改为yunwei44,年龄改为88

update student set sname=’yunwei44′,sage=88 where sname=’yunwei4′;

a6889d90e34a3d5547112ffaf3cdb639.png

DML delete

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

delete from 表名 where 条件;

例1:删除yunwei44的信息

delete from student where sname=’yunwei44′;

8c55218427c7b5ee928f5ac30ac32ea1.png

0 1伪删除

伪删除是什么?伪删除即表面上看不到该数据,但数据还是存在的。

为什么需要伪删除?一般数据删除后,恢复流程麻烦,且有无法恢复的风险。伪删除可以帮助我们实现删除的数据不显示,但如果想使用的时候可以将数据随时显示出来。

伪删除是怎么做的?伪删除的实现办法是在表中添加一个状态列标识数据行的状态,比如列值1表示没有删除,0表示数据已删除,然后在查看数据时,加上条件,只显示状态列为1的数据即可。

#在表中插入新列(注:生产上请谨慎操作,修改表结构会导致暂时的锁表)

alter table student add column status tinyint not null default 1 comment ‘数据状态’;

d02ca57b5346b1d3bfcd933c12b18e62.png

例:伪删除yunwei5的信息

update student set status=0 where sname=’yunwei5′;

8af4f57116140d0542fe97ca18ad375e.png

例:恢复yunwei5的信息

update student set status=1 where sname=’yunwei5′;

0 2删除表所有数据

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

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

truncate:清空表段中的所有数据页面,物理磁盘空间上删除,磁盘空间立即释放,HWM高水位线会降低

delete命令格式如下:

delete from 表名;

truncate命令格式如下:

truncate table 表名;

个人思维导图

89c6117b61656c944b3d47db1c18a72b.png

end

标签:语句,insert,删除,DML,student,MySQL,delete

来源: https://blog.51cto.com//

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176257.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午10:21
下一篇 2026年3月26日 下午10:22


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号