首页 游戏 软件 资讯 排行榜 专题
首页
数据库
SQL增删改操作详解 数据插入更新与删除实战指南

SQL增删改操作详解 数据插入更新与删除实战指南

热心网友
49
转载
2026-05-10

SQL数据插入操作详解

为数据库表添加新记录是数据管理中最核心的基础操作。本文将系统讲解SQL INSERT语句的多种实用方法,帮助您高效完成数据录入工作。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

SQL数据处理之增删改实现方式

最基础的插入方式是逐条添加数据,具体可分为以下几种常用形式:

# ① 按表结构顺序全字段插入(需谨慎)
INSERT INTO emp1
VALUES (1,'Tom','2000-12-21',3400);
# 注意:此方法必须严格遵循表字段的声明顺序,不能有任何错位。
# 以下是典型错误示例,字段顺序混乱导致数据类型不匹配:
INSERT INTO emp1
VALUES (2,3400,'2000-12-21','Jerry');

# ② 指定字段插入(推荐做法)
INSERT INTO emp1(id, hire_date, salary, `name`)
VALUES(2, '1999-09-09', 4000, 'Jerry');
# 优势在于语义清晰,未指定字段将自动设为NULL值。
# 例如仅填充部分字段,hire_date将保持为空:
INSERT INTO emp1(id, salary, `name`)
VALUES(3, 4500, 'shk');

# ③ 批量插入多条记录(高效推荐)
INSERT INTO emp1(id, NAME, salary)
VALUES
(4, 'Jim', 5000),
(5, '张俊杰', 5500);

除了手动输入数据,更高效的方式是将查询结果直接导入目标表,实现数据迁移或复制。

INSERT INTO emp1(id, NAME, salary, hire_date)
# 直接衔接SELECT查询语句
SELECT employee_id, last_name, salary, hire_date
FROM employees
WHERE department_id IN (70, 60);

使用查询插入时需重点关注两个技术要点:

  • 目标表(emp1)中接收数据的字段,其定义的长度必须大于或等于源表(employees)对应字段的长度。
  • 若目标字段长度不足,插入操作可能失败或发生数据截断,导致信息丢失或报错。

SQL数据更新操作指南

数据入库后常需维护更新,UPDATE语句在此场景中至关重要。其标准语法为UPDATE … SET … WHERE …,WHERE子句能实现精准的批量修改,避免全表更新。

-- 将编号为5的员工入职日期更新为当前日期
UPDATE emp1
SET hire_date = CURDATE()
WHERE id = 5;

-- 单条记录多字段同时更新
UPDATE emp1
SET hire_date = CURDATE(), salary = 6000
WHERE id = 4;

-- 实战案例:为姓名中包含字母‘a’的员工统一加薪20%
UPDATE emp1
SET salary = salary * 1.2
WHERE NAME LIKE '%a%';

需注意,更新操作可能因数据库约束而失败。常见约束包括外键约束、唯一性约束等,它们保障了数据的完整性与业务规则。

-- 若department_id=10000的部门不存在且设有外键约束,此更新将失败
UPDATE employees
SET department_id = 10000
WHERE employee_id = 102;

SQL数据删除操作解析

清理无效或过期数据需使用DELETE操作。其语法为DELETE FROM … WHERE …,WHERE条件决定了删除范围,务必谨慎使用。

-- 删除id为1的特定记录
DELETE FROM emp1
WHERE id = 1;

-- 删除操作同样受数据完整性约束限制
-- 例如,若编号50的部门下仍有员工,外键约束将阻止删除
DELETE FROM departments
WHERE department_id = 50;

关于增删改(DML)操作,需了解其事务特性:默认情况下,每条DML语句执行后会自动提交(autocommit模式)。如需执行多个关联操作后统一提交或回滚,可先关闭自动提交:SET autocommit = FALSE

数据库进阶特性:计算列应用

现代数据库系统提供了计算列功能,该列的值会自动根据同一行其他列的值计算生成,无需手动维护,极大提升了数据一致性与操作效率。

CREATE TABLE test1(
    a INT,
    b INT,
    c INT GENERATED ALWAYS AS (a + b) VIRTUAL  -- 定义计算列c,其值恒等于a+b
);

-- 插入数据时只需提供a和b,c会自动计算填充
INSERT INTO test1(a, b)
VALUES(10, 20);

SELECT * FROM test1; -- 查询结果将显示c的值为30

-- 更新a列数值,c列会自动同步重新计算
UPDATE test1
SET a = 100;
-- 此时c的值将自动更新为120 (100+20)

核心要点总结

熟练掌握数据的插入、更新与删除是数据库操作的基本功。从单条插入到批量导入,从直接赋值到利用计算列自动生成,灵活运用这些技巧能让数据管理工作效率倍增。特别提醒,在对有约束的表执行更新和删除前,务必评估操作对数据完整性的影响,确保符合业务规则。

来源:https://www.jb51.net/database/363556jo3.htm
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

Go语言指针使用指南与常见操作详解
编程语言
Go语言指针使用指南与常见操作详解

Go指针通过&取址、*解引用操作内存地址,用于函数间修改原值或避免大结构体拷贝。指针未初始化时为nil,解引用会引发崩溃。需注意常量等无法取址,切片等引用类型通常无需指针。适度使用指针,避免滥用导致性能问题或内存风险。

热心网友
05.10
Linux中使用nohup命令后台运行Ruby脚本的详细教程
编程语言
Linux中使用nohup命令后台运行Ruby脚本的详细教程

nohup命令可在Linux中实现Ruby脚本后台运行,确保进程不受终端关闭影响。操作时切换到脚本目录,执行“nohupruby脚本名&”即可,输出默认保存至nohup out文件。也可通过重定向自定义日志文件。需要停止时,使用ps和grep查找进程ID并用kill命令终止。

热心网友
05.10
SQL增删改操作详解 数据插入更新与删除实战指南
数据库
SQL增删改操作详解 数据插入更新与删除实战指南

SQL中插入数据可使用INSERT语句,包括逐条插入、指定字段插入及批量插入。更新数据通过UPDATE语句结合WHERE条件精准修改记录。删除操作使用DELETE语句,同样依赖WHERE条件。增删改操作默认自动提交,可手动关闭。计算列能自动根据其他字段计算生成值,简化数据维护。操作时需注意字段长度匹配及数据库约束,避免失败。

热心网友
05.10
PostgreSQL存储过程异步任务实现指南ListenNotify机制详解
数据库
PostgreSQL存储过程异步任务实现指南ListenNotify机制详解

PostgreSQL的LISTEN NOTIFY机制本质是同步消息传递,无法在存储过程中直接触发后台任务。它仅向监听客户端发送通知,实际任务需由外部常驻监听进程接收通知后执行。若需在存储过程内实现真异步SQL执行,应使用dblink_send_query建立独立连接提交任务。实践中常将两者结合:NOTIFY发送轻量信号,外部Worker通过dblink执行耗

热心网友
05.10
公链币新手入门指南:定义、作用与投资价值解析
web3.0
公链币新手入门指南:定义、作用与投资价值解析

公链币是运行在公有区块链上的原生加密货币,如比特币和以太币。它不仅是交易媒介,更是驱动整个区块链网络运转的“燃料”,用于支付交易费用、激励矿工或验证者。公链币的价值与底层网络的安全性、去中心化程度及应用生态紧密相连,是理解Web3世界的基础资产。

热心网友
05.10