基础-SQL-DML

一、MySQL基础

1. DML

在数据库管理中,DML(Data Manipulation Language) 是最频繁使用的 SQL 子集,它直接决定了数据的增删改查效率与准确性。本文将通过实际场景和代码示例,系统解析 DML 的核心操作(INSERTUPDATEDELETESELECT),并探讨其在业务场景中的应用逻辑。

1.2 添加数据

核心功能:向表中添加新记录,需严格匹配字段类型与约束。

1. 指定字段插入

适用于表结构复杂或仅需更新部分字段的场景。

注意 :字段顺序必须与值列表一致,字符串和日期需用引号包裹(如 '2025-12-26')。

2. 全字段插入

适用于表结构简单或字段顺序与值顺序一致的情况。

风险提示:若表结构变更(如新增字段),此语法可能导致插入失败。

3. 子查询插入

通过查询其他表的数据填充目标表。

sql 复制代码
# 注意:
#   1、字段一定要一一对应
#   2、插入的数据一定要在数据类型的范围内
#   3、字符串和日期一定要在''中
# 1、插入指定字段
insert into employee(id, workno, name, age, idcard, entrydate,gender) values (1,'1','ItCast',10,'123456789123456789','2025-12-26','男');
insert into employee(id, workno, name, age, idcard, entrydate,gender) values (2,'2','lkbHua',21,'123456789123456189','2005-5-31','男');
insert into employee(id, workno, name, age, idcard, entrydate,gender) values (3,'1','ZengQ',18,'123456789123456289','2005-12-12','女');

# 查询表的方法有两种
# case1: 直接双击employee
# case2: 使用sql语句,select * from employee
#        然后点击执行

# 2、插入全部字段
insert into employee values (4,'3','LaoP',20,'123456789123456389','2005-6-6','女');

# 3、批量插入
insert into employee values (4,'3','LaoP',20,'123456789123456389','2005-6-6','女'),(7,'3','LaoP',20,'123456789123456389','2005-6-6','女');

1.3 更新和删除

核心功能 :更新表中已有记录,需通过 WHERE 条件 精准定位目标行。

1. 单表更新

关键原则

  • 避免省略 WHERE 子句:否则会更新全表数据!
  • 事务控制:在关键业务(如订单状态更新)中,建议用事务包裹操作。
2. 多表关联更新

通过 JOIN 实现跨表更新(部分数据库支持,如 MySQL 8.0+)。

核心功能:删除表中记录,需严格验证条件逻辑。

1. 单表删除

注意事项

  • TRUNCATE vs DELETETRUNCATE 直接释放存储空间,无法通过事务回滚;DELETE 可配合 WHERE 条件逐行删除。
  • 外键约束:删除主表数据前需确保从表无关联记录(或设置级联删除)。
2. 多表关联删除
sql 复制代码
-- 删除无订单记录的客户(关联订单表)  
DELETE FROM customers c  
LEFT JOIN orders o ON c.id = o.customer_id  
WHERE o.order_id IS NULL;
相关推荐
Database_Cool_1 分钟前
阿里云 Tair(企业级内存数据库)vs 腾讯云 Redis 云缓存深度对比:性能/数据结构/成本全维度 Benchmark
数据库·阿里云·缓存
garuda herb8 分钟前
生成专题页Blog--建立并返回 MySQL 数据库连接
python·mysql
学计算机的计算基9 分钟前
操作系统内存管理全解:虚拟内存、页表、COW、malloc、OOM一篇搞定
java·笔记·算法
流星白龙9 分钟前
【Redis】1.Redis特性
数据库·redis·缓存
奶糖 肥晨12 分钟前
DBeaver 安装与 MySQL 连接配置教程
数据库·mysql
AOwhisky15 分钟前
Python 学习笔记(第五期)——组合数据类型:列表、元组、集合与字典精讲——核心知识点自测与详解
开发语言·笔记·python·学习·云计算
砚凝霜16 分钟前
软考网络工程师|第 2 章 信道延迟、传输介质、数据编码、数字调制、PCM 完整备考笔记
网络·笔记·pcm
woshihuanglaoshi31 分钟前
数据迁移与版本管理 - Flutter在鸿蒙平台实现数据库升级策略
数据库·学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
万亿少女的梦16832 分钟前
基于Spring Boot、Java与MySQL的网络订餐系统设计与实现
java·spring boot·mysql·系统设计·网络订餐
Database_Cool_2 小时前
阿里云 RDS MySQL 降本增效实战:从规格选型到成本优化,月成本降低64%全攻略
mysql·阿里云·云计算