【MySQL2】| DML数据操作语言

一、DML 语句概述

DML(Data Manipulation Language,数据操作语言),主要用于对数据库表中的数据记录进行增、删、改操作,是日常开发中最常用的 SQL 语句之一。

核心操作:

  • 新增数据:INSERT
  • 修改数据:UPDATE
  • 删除数据:DELETE

二、INSERT 新增数据

用于向数据表中添加单条 / 多条数据记录。

1、语法规则

-- 单条插入(指定字段)INSERT INTO 表名 (字段 1, 字段 2, ...) VALUES (值 1, 值 2, ...);

-- 单条插入(省略字段,默认匹配表所有字段)INSERT INTO 表名 VALUES (值 1, 值 2, ...);

-- 批量插入INSERT INTO 表名 (字段 1, 字段 2, ...) VALUES (值 1, 值 2...), (值 1, 值 2...), (值 1, 值 2...);

2、插入数据核心注意事项

  • 字段顺序和值的顺序必须一一对应,数据类型、数量保持一致
  • 字符串、日期类型的数据,必须用英文单引号 '' 包裹
  • 插入的数据长度、范围,必须符合字段的约束规则(如长度、数值范围)
  • 所有标点符号必须为英文符号(杜绝中文逗号、引号)

3、实操案例(employee 员工表)

-- 单条数据插入(修正原笔记拼写错误:vlaues → values)INSERT INTO employee (id, workno, name, gender, age, idcard, entrydate)VALUES (1, '1', 'Itcast', ' 男 ', 10, '123456789012345678', '2000-01-01');

-- 批量数据插入INSERT INTO employee (id, workno, name, gender, age, idcard, entrydate)VALUES(2, '2', ' 小昭 ', ' 女 ', 22, '123456789012345679', '2010-02-01'),(3, '3', ' 小明 ', ' 男 ', 25, '123456789012345680', '2015-03-10');

-- 查询表数据(验证插入结果)SELECT * FROM employee;

三、UPDATE 修改数据

用于修改表中已存在的数据,支持单字段、多字段修改。

1、语法规则

UPDATE 表名 SET 字段 1 = 值 1, 字段 2 = 值 2, ... WHERE 条件;

2、核心注意事项

  • 重中之重:省略 WHERE 条件时,会更新整张表的所有数据!(高危操作,谨慎使用)
  • 支持同时修改多个字段,字段之间用英文逗号分隔
  • 修改的值需要符合字段数据类型和约束

3、实操案例

-- 单字段修改:修改 id=1 的员工姓名UPDATE employee SET name = 'itheima' WHERE id = 1;

-- 多字段修改:同时修改姓名、性别UPDATE employee SET name = ' 小昭 ', gender = ' 女 ' WHERE id = 1;

-- 无条件修改(全局更新,慎用!)UPDATE employee SET entrydate = '2000-01-01';

四、DELETE 删除数据

用于删除表中的单条 / 多条 / 全部数据记录。

1、语法规则

DELETE FROM 表名 WHERE 条件;

2、核心注意事项

  • 省略 WHERE 条件时,会删除整张表的所有数据!(高危操作,生产环境禁止随意使用)
  • DELETE 仅删除表数据,不会删除表结构、字段、约束
  • 删除数据不可逆,执行前建议先通过 SELECT 查询确认数据

3、实操案例

-- 条件删除:删除所有性别为女的员工DELETE FROM employee WHERE gender = ' 女 ';

-- 清空整张表数据(慎用!)DELETE FROM employee;

五、DML 核心语法总结

1、新增数据INSERT INTO 表名 (字段 1, 字段 2...) VALUES (值 1, 值 2...);

2、修改数据UPDATE 表名 SET 字段 1 = 值 1, 字段 2 = 值 2... WHERE 条件;

3、删除数据

相关推荐
Decay__2 小时前
12_MySQL InnoDB 内存与锁调优 —— Buffer Pool、redo log、隔离级别与锁等待
运维·数据库·sql·mysql·架构
笃行3503 小时前
AI数据库的库内四层结构,KingbaseES 产品拆解
数据库
我是大猴子5 小时前
redis
数据库·redis·缓存
苏宸啊7 小时前
MySQL(一)
数据库·mysql
2603_969694857 小时前
JDBC 基础学习笔记:API 核心原理解析与 CRUD 代码实操
数据库·笔记·mysql·学习方法·database·sql注入
这个DBA有点耶8 小时前
库内语义构建 vs 外挂向量库:业务语义缺失,才是RAG“胡说八道”的根源
数据库·mysql·aigc
kobe_OKOK_9 小时前
mysql 开启 binlog 日志
数据库·mysql
鸽芷咕9 小时前
KingbaseES 调参先看执行计划,参数是答案不是起点
数据库
这个DBA有点耶10 小时前
MySQL 8.0直方图:统计信息升级了,执行计划为什么还是选错?
数据库·mysql·代码规范
老纪的技术唠嗑局12 小时前
把 seekdb 塞进 iOS App:让混合检索嵌入手机
数据库