前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL DML 操作

MySQL DML 操作

作者头像
Demo_Null
发布2020-09-28 17:40:05
1.1K0
发布2020-09-28 17:40:05
举报
文章被收录于专栏:Java 学习

1.1 概述

  DML(Data Manipulation Language)数据操作语言,以 INSERT、UPDATE、DELETE 三种指令为核心,分别代表插入、更新与删除,DML 和 DQL 合称 CRUD(create、read、update、delete) 增查改删。

1.2 新增(create)

  当我们需要向数据库表中插入一条新记录时,就需要使用 INSERT 语句。先列举出需要插入的字段名称,然后在 VALUES 子句中依次写出对应字段的值,还可以一次性添加多条记录,只需要在VALUES子句中指定多个记录值。

1.2.1 单行插入

语法

代码语言:javascript
复制
# 字段和值需要意义对应,字段全部省略时默认为所有字段新增值
insert into tb_name(field_1, field_2, ···) values (value_1, value_2, ···);

# 看看就好,没人用
insert into tb_name set field_1 = value_1, field_2 = value_2, ···;

示例

注意   ① 字段与值要一一对应,不用插入值的字段要么字段和值都不写,要么字段写上,值用 null 代替   ② 字段顺序不必和数据库表的字段顺序一致,但值的顺序必须和字段顺序一致   ③ 当表名后省略所有字段时,默认为所有字段添加数据   ④ 除数字外,其他类型都需要引号(单双皆可)

1.2.2 多行插入

语法

代码语言:javascript
复制
insert into tb_name(field_1, field_2, ···) values (value_1, value_2, ···),(value_1, value_2, ···), ···;

示例

1.2.3 复制表

语法

代码语言:javascript
复制
# 将 tb_name_1 表复制到 tb_name_2 表(仅有结构)
create table tb_name_2 like tb_name_1;

# 将 tb_name_1 表复制到 tb_name_2 表(结构和数据)
create table tb_name_2 select * from tb_name_1;

示例

1.3 修改(update)

  如果要更新数据库表中的记录,我们就需要使用 UPDATE 语句,然后在 WHERE 子句中写出需要更新的行的筛选条件。如果 WHERE 条件没有匹配到任何记录,UPDATE 语句不会报错,也不会有任何记录被更新。UPDATE 语句可以没有 WHERE 条件,这时,整个表的所有记录都会被更新。在使用 MySQL 这类真正的关系数据库时,UPDATE 语句会返回更新的行数。

语法

代码语言:javascript
复制
# 更新满足条件的数据,无条件更新所有数据
update tb_name set col_name_1 = value_1, ···, col_name_n = value_n where 条件;

# 多表更新,看看就好
update tb_name_1, tb_name_2 set tb_name_1.col_name = value, tb_name_2.col_name = value where 条件;

示例

1.4 删除(delete)

  如果要删除数据库表中的记录,可以使用 DELETE 语句。DELETE 语句的 WHERE 条件也是用来筛选需要删除的行,因此 DELETE 语句也可以一次删除多条记录。如果 WHERE 条件没有匹配到任何记录,DELETE 语句不会报错,也不会有任何记录被删除。要特别小心的是,不带 WHERE 条件的 DELETE 语句会删除整个表的数据,若是希望删除整个表的数据可以使用 TRUNCATE。

1.4.1 delete

语法

代码语言:javascript
复制
# 删除名为 tb_name 表中满足条件的数据,无条件则删除 tb_name 表中所有数据
delete from tb_name where 条件;

示例

1.4.2 truncate

  使用 delete 删除所有数据是一条一条数据删,当数据量达到一定程度后,会非常消耗资源。而 truncate 是先删除整张表,然后创建一个结构一摸一样的表从而达到删除所有数据的效果。

语法

代码语言:javascript
复制
# table 可以省略
truncate [table] tb_name;

示例

1.4.3 几种删除的比较

drop、truncate、delete 的区别

drop   删除内容和定义,释放空间,简而言之执行 drop 就是把整个表删除,以后要使用该表是不可能的,除非重新创建该表。drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index),依赖于该表的存储过程将被保留,但其状态会变为 invalid。

truncate   删除内容、释放空间但不删除定义(即保留表的结构),与 drop 不同的是,truncate 删除表之后会再创建一个一摸一样的空表。truncate 不能删除具体某一行数据,只能清空表。

delete   delete 语句用于删除表中的行。带 where 条件时删除表中满足条件的数据,不带 where 条件时删除表中所有数据。delete 语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存,以便进行进行回滚操作。

drop、truncate、delete 的安全性

  delete 支持事务,删除的操作记录记录在日志中,删除错误可以进行回滚操作。drop、truncate 删除可以将表中所有数据删除,谨慎操作。

drop、truncate、delete 执行效率

  由于 drop 是直接删除整张表,truncate 是删除表之后在创建一个一摸一样的空表,delete(指不带 where 条件的 delete) 是逐行删除表中数据,所以一般来说: drop > truncate > delete

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 概述
  • 1.2 新增(create)
    • 1.2.1 单行插入
      • 1.2.2 多行插入
        • 1.2.3 复制表
        • 1.3 修改(update)
        • 1.4 删除(delete)
          • 1.4.1 delete
            • 1.4.2 truncate
              • 1.4.3 几种删除的比较
              相关产品与服务
              数据库
              云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档