SQL增删改操作详解 数据插入更新与删除实战指南
SQL数据插入操作详解
为数据库表添加新记录是数据管理中最核心的基础操作。本文将系统讲解SQL INSERT语句的多种实用方法,帮助您高效完成数据录入工作。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

最基础的插入方式是逐条添加数据,具体可分为以下几种常用形式:
# ① 按表结构顺序全字段插入(需谨慎) 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)
核心要点总结
熟练掌握数据的插入、更新与删除是数据库操作的基本功。从单条插入到批量导入,从直接赋值到利用计算列自动生成,灵活运用这些技巧能让数据管理工作效率倍增。特别提醒,在对有约束的表执行更新和删除前,务必评估操作对数据完整性的影响,确保符合业务规则。
热门专题
热门推荐
Go指针通过&取址、*解引用操作内存地址,用于函数间修改原值或避免大结构体拷贝。指针未初始化时为nil,解引用会引发崩溃。需注意常量等无法取址,切片等引用类型通常无需指针。适度使用指针,避免滥用导致性能问题或内存风险。
nohup命令可在Linux中实现Ruby脚本后台运行,确保进程不受终端关闭影响。操作时切换到脚本目录,执行“nohupruby脚本名&”即可,输出默认保存至nohup out文件。也可通过重定向自定义日志文件。需要停止时,使用ps和grep查找进程ID并用kill命令终止。
SQL中插入数据可使用INSERT语句,包括逐条插入、指定字段插入及批量插入。更新数据通过UPDATE语句结合WHERE条件精准修改记录。删除操作使用DELETE语句,同样依赖WHERE条件。增删改操作默认自动提交,可手动关闭。计算列能自动根据其他字段计算生成值,简化数据维护。操作时需注意字段长度匹配及数据库约束,避免失败。
PostgreSQL的LISTEN NOTIFY机制本质是同步消息传递,无法在存储过程中直接触发后台任务。它仅向监听客户端发送通知,实际任务需由外部常驻监听进程接收通知后执行。若需在存储过程内实现真异步SQL执行,应使用dblink_send_query建立独立连接提交任务。实践中常将两者结合:NOTIFY发送轻量信号,外部Worker通过dblink执行耗
公链币是运行在公有区块链上的原生加密货币,如比特币和以太币。它不仅是交易媒介,更是驱动整个区块链网络运转的“燃料”,用于支付交易费用、激励矿工或验证者。公链币的价值与底层网络的安全性、去中心化程度及应用生态紧密相连,是理解Web3世界的基础资产。





