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)
核心要点总结
熟练掌握数据的插入、更新与删除是数据库操作的基本功。从单条插入到批量导入,从直接赋值到利用计算列自动生成,灵活运用这些技巧能让数据管理工作效率倍增。特别提醒,在对有约束的表执行更新和删除前,务必评估操作对数据完整性的影响,确保符合业务规则。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
SQL增删改操作详解 数据插入更新与删除实战指南
SQL中插入数据可使用INSERT语句,包括逐条插入、指定字段插入及批量插入。更新数据通过UPDATE语句结合WHERE条件精准修改记录。删除操作使用DELETE语句,同样依赖WHERE条件。增删改操作默认自动提交,可手动关闭。计算列能自动根据其他字段计算生成值,简化数据维护。操作时需注意字段长度匹配及数据库约束,避免失败。
PostgreSQL存储过程异步任务实现指南ListenNotify机制详解
PostgreSQL的LISTEN NOTIFY机制本质是同步消息传递,无法在存储过程中直接触发后台任务。它仅向监听客户端发送通知,实际任务需由外部常驻监听进程接收通知后执行。若需在存储过程内实现真异步SQL执行,应使用dblink_send_query建立独立连接提交任务。实践中常将两者结合:NOTIFY发送轻量信号,外部Worker通过dblink执行耗
MySQL数据库磁盘空间与数据行数统计方法详解
通过查询information_schema tables系统表,可以统计MySQL数据库的磁盘空间占用和表行数。可计算总数据与索引大小,或列出各表详情以定位主要空间消耗。同时能获取数据库总行数估算值及单表行数排行。这些方法有助于进行容量规划、性能优化与日常巡检。
Oracle嵌套查询优化指南 避免Temp空间溢出与排序Hash连接问题
嵌套查询不直接导致TEMP空间溢出,真正原因是排序、分组或哈希连接等操作在内存不足时向临时表空间写入数据。可通过执行计划和动态视图定位问题。临时缓解可强制使用嵌套循环、调整PGA或拆分大结果集;长期根治需合理配置PGA、更新统计信息、确保索引有效并优化临时表空间I O性能。
Oracle条件插入教程INSERT WHEN语句实现数据分流插入
Oracle数据库不支持直接的INSERTWHEN语法,但可通过MERGE语句实现条件插入。通过设置ON子句为永假条件(如1=0),使所有数据进入WHENNOTMATCHED分支,再在该分支的WHERE子句中添加业务过滤条件。此方法支持单表条件插入和多路分流插入,并保证了操作的原子性。使用时需注意NULL值处理、约束冲突和事务边界等问题。
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

