当前位置: 首页 > article >正文

Mysql-DML语句

文章目录

  • DML 语句
    • 插入记录
      • 插入全部字段
      • 插入部分数据
      • 蠕虫复制
    • 更新表记录
      • 无条件修改数据
      • 带条件修改数据
      • 一次性修改多列种数据
    • 删除表记录
      • 无条件删除数据
      • 带条件删除数据
      • truncate 删除表记录

https://i-blog.csdnimg.cn/blog_migrate/58966ddd9b29aabe8841f5ec34f0d31c.gif

🏡作者主页:点击!

🤖Mysql专栏:点击!

⏰️创作时间:2024年11月15日11点30分

在这里插入图片描述

DML 语句

DML 数据操作语言

用来对数据库中的数据进行增删改查。关键字(insert、delete、update等)

插入记录

关键字说明

insert into 表名 -------- 表示往哪张表中插入数据

(字段名1,字段名2) -------- 要给哪些字段设值

values( 值1,值2 ) -------- 设置具体的参数值

注意

  • 值与字段必须对应,个数相同,类型相同
  • 值的数据大小必须在字段的长度范围内
  • 除了数据类型外,其他的字段类型的值必须使用引号引起,建议使用单引号
  • 除了数字类型,其他的都需要加单引号
  • 如果要插入空值,可以不写字段,或者直接输入 null

插入全部字段

把所有的字段名和值全部写出来

insert into 表名 ( 字段1、字段2、字段3… ) values ( 值1、值2、值3… ); // 这是一种最常见的操作

校验是否插入成功,此语句是 DQL 语句,查询数据用的

select * from feng_sir -------- 查询来自 feng_sir 的数据表中的数据

不写字段名,只写值

insert into 表名 values ( 值1、值2、值3… ); -------- 使用这种方法插入数据,系统会自动的匹配字段, 按照结构从上往下的顺序,进行数据的插入

插入部分数据

insert into 表名 ( 字段1、字段2… ) values ( 值1、值2… ); ---- 没有添加数据的字段会使用 null(不加引号)其中不需要的字段直接就可以略过,默认直接不进行匹配

蠕虫复制

在已有的基础上,将原来的数据进行复制,插入到对应的表中

语法格式

insert into 表名1 select * from 表名2 -------- 将表名2中的数据复制到表名1中

insert into 新表名 select * from 旧表名 -------- 在新表名里面插入旧表名的所有数据

蠕虫复制操作

mysql> create table feng_sir2 like feng_sir; -------- 快速创建一个数据表 feng_sir2 类型和 feng_sir 一样

mysql> insert into feng_sir2 select * from feng_sir; -------- 往 feng_sir2 里面插入 feng_sir 的数据

如果只想复制某些数据,并不全部进行复制,可以使用以下方法

insert into feng_sir2 (name,age) select name,age from feng_sir; // 将 feng_sir 里面的 name,age 字段插入 feng_sir2,再次执行命令会再次进行插 入,不会进行覆盖

更新表记录

关键字说明

update = 修改类型

set = 修改哪些字段

where = 指定条件

无条件修改数据

不带条件的修改数据

update 表名 set 字段名 = 值;

意思相当于修改全部数据,未指定条件

**实例:**update feng_sir set age = 19;

select * from feng_sir -------- 就会发现现在所有数据的 age 都变成了 19

带条件修改数据

带条件修改数据

update 表名 set 字段名 = 值 where 字段名 = 值;

意思就是修改指定的数据,指定条件

**实例:**update feng_sir set age = 99 where id = 2;

select * from feng_sir -------- 就会发现 id = 2 的那组数据中的 age 变成了 99

当然修改除数字以外的类型加引号

mysql> update feng_sir set birthday = ‘2001-12-24’ where id = 2; 将 id=2 的数据中的 birthday 字段进行更新

一次性修改多列种数据

一次性修改多种数据的方法很简单

update feng_sir set age = 99 , birthday = ‘2021-08-26’ where id = 3;

select * from feng_sir; -------- 之后进行查看,会发现 id = 3 的那组数据,age 变成 99,brithday 变成 2021- 08-26 由此一来 内容修改成功

删除表记录

无条件删除数据

不带条件删除数据

delete from 表名;

意思就是删除全部数据,并不会删除表,并且 DML 语句也没权限删除表

带条件删除数据

带条件删除数据

delete from 表名 where 字段名 = 值;

**实例:**mysql> delete from feng_sir where id = 3; // 指定删除 id = 3 的那组数据

select * from feng_sir // 进行数据的查看

truncate 删除表记录

truncate 和 delete 的区别:

  • delete 是将表种的数据一条一条删除,可以看到数据删除的提示,类似 rm
  • truncate 是将整个表摧毁,重新创建一个新的表。结构和原来的结构一摸一样,简单粗暴,类似 rm -rf

不带条件删除数据

truncate table 表名;


http://www.kler.cn/a/399000.html

相关文章:

  • 搭建es环境
  • 前景理论(Prospect Theory)
  • 【51单片机】LCD1602液晶显示屏
  • Flutter:Dio下载文件到本地
  • 基于Python空气质量可视化及预测
  • c++调用 c# dll 通过 clr (详细避坑)
  • 基于YOLOv8深度学习的城市管理卡车违规倾倒垃圾检测(PyQt5界面+数据集+训练代码)
  • C++11标准模板(STL)- 算法 - 对一个范围内的拥有一定未指定类型的元素排序(qsort, qsort_s)
  • Flutter中的Material Theme完全指南:从入门到实战
  • 深入解析 Vue 3 中的 `v-model` 与相关知识点
  • 架构篇(理解架构的模式1)
  • SSH 与 SSL:主要区别及用途说明
  • 【论文模型复现】深度学习、地质流体识别、交叉学科融合?什么情况,让我们来看看
  • Linux dpkg命令详解
  • AI 提示词(Prompt)入门 十:最佳实践|详细询问,提供细节!
  • 给阿里云OSS绑定域名并启用SSL
  • vue3 如何调用第三方npm包内部的 pinia 状态管理库方法
  • Python脚本实现批量文件重命名与清单生成
  • 前端隐藏元素的方式有哪些?HTML 和 CSS 中隐藏元素的多种方法
  • Spring纯注解开发
  • 【数据库】mysql数据库迁移前应如何备份数据?
  • 机器学习的概览
  • 【金融风控】样本不均衡和异常点检测
  • 随机森林(Random Forest, RF)筛选回归数据(处理异常值)
  • sql注入之二次注入(sqlilabs-less24)
  • JSON.stringify的应用说明