【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
UPDATE 和 DELETE 操作的正确使用UPDATE和DELETE是 Oracle 11g 中用于修改和删除表中数据的重要 SQL 语句。在操作时需特别注意数据筛选条件的准确性以避免意外更改或删除数据。本文将详细介绍这两种语句的用法、注意事项及相关案例。一、UPDATE 的基本用法UPDATE用于更新表中的现有数据可以更新单行或多行记录需结合WHERE子句指定目标记录。如果不加WHERE将更新表中的所有记录。1. 基本语法UPDATE 表名 SET 列名 新值 [, 列名 新值 ...] [WHERE 条件];2. 示例更新单列数据将员工编号为 101 的薪资调整为 8000UPDATE employees SET salary 8000 WHERE employee_id 101;3. 示例更新多列数据将编号为 102 的员工姓名和部门更新UPDATE employees SET first_name Alice, department_id 20 WHERE employee_id 102;二、DELETE 的基本用法DELETE用于删除表中的指定数据行需搭配WHERE子句指定删除条件。如果省略WHERE将删除表中的所有记录但表结构仍然保留。1. 基本语法DELETE FROM 表名 [WHERE 条件];2. 示例删除指定行删除部门编号为 30 的所有员工DELETE FROM employees WHERE department_id 30;3. 示例删除所有数据慎用清空departments表中的数据DELETE FROM departments;注意若想保留表结构但快速清空数据可使用TRUNCATE比DELETE更高效。TRUNCATE TABLE departments;三、UPDATE 和 DELETE 的常见注意事项谨慎使用WHERE子句WHERE条件不明确会影响意外的数据范围。没有WHERE会影响全表需格外小心。错误示例无WHERE更新或删除UPDATE employees SET salary 8000; -- 更新所有员工薪资 DELETE FROM employees; -- 删除所有员工数据确认操作前备份数据对关键表进行更新或删除前建议备份数据尤其在生产环境中。备份示例创建历史表CREATE TABLE employees_backup AS SELECT * FROM employees;避免触发约束错误更新或删除数据时需考虑表的外键约束。违反外键关联可能导致操作失败。解决方法先删除外键表记录DELETE FROM order_items WHERE order_id 101; -- 删除关联表数据 DELETE FROM orders WHERE order_id 101; -- 删除主表数据批量更新或删除时锁定资源长时间操作会导致表被锁定其他事务可能阻塞。可使用分批处理或事务控制BEGIN DELETE FROM employees WHERE department_id 40; COMMIT; END;四、UPDATE 和 DELETE 的高级用法1. 使用子查询更新数据通过子查询动态更新列值。示例根据另一个表更新薪资UPDATE employees SET salary (SELECT AVG(salary) FROM employees WHERE department_id 20) WHERE department_id 10;2. 使用条件删除结合复杂条件删除数据。示例删除薪资低于平均值的员工DELETE FROM employees WHERE salary (SELECT AVG(salary) FROM employees);3. 使用RETURNING提取受影响数据仅适用于更新和删除操作RETURNING可返回更新或删除的行数据。示例删除数据并返回信息DELETE FROM employees WHERE department_id 50 RETURNING employee_id, first_name, last_name INTO :id_var, :first_name_var, :last_name_var;五、常见错误及解决方法ORA-01407: cannot update to NULL原因更新操作试图将NOT NULL列赋值为空。解决方法提供合法值或修改表结构允许空值。ORA-02292: integrity constraint violated - child record found原因删除数据违反外键约束关联表中存在相关记录。解决方法先删除外键表中关联记录或设置级联删除。ORA-01779: cannot modify a column which maps to a non key-preserved table原因更新涉及非主键表的视图列。解决方法修改基础表或确保视图中包含主键列。六、实践案例批量更新员工薪资将部门编号为 30 的员工薪资增加 10%。UPDATE employees SET salary salary * 1.1 WHERE department_id 30;删除无效的客户记录删除最近一年未活跃的客户。DELETE FROM customers WHERE last_active_date ADD_MONTHS(SYSDATE, -12);避免重复更新条件过滤仅更新薪资低于 5000 的员工。UPDATE employees SET salary 5000 WHERE salary 5000;七、小结UPDATE和DELETE是管理数据表中记录的核心操作其灵活性和强大功能使其在日常开发中被广泛使用。但在操作时需特别小心确保筛选条件准确并采取必要的备份与验证措施以避免因误操作造成数据丢失或不一致。

相关新闻

三相永磁同步电机的DTC参数重新调节,效果显著,波形完美

三相永磁同步电机的DTC参数重新调节,效果显著,波形完美

三相永磁同步电机的DTC,参数重新调节,效果不错,波形完美。直接转矩控制(DTC)这玩意儿真是让人又爱又恨。上周折腾一台75kW的三相永磁同步电机,原本的开关表参数估计是实习生调的,转矩脉动大到能…

2026/5/17 10:24:38 阅读更多 →
2026年床垫选购指南:五大健康睡眠品牌深度解析

2026年床垫选购指南:五大健康睡眠品牌深度解析

随着健康意识的全面觉醒,睡眠质量已成为衡量生活品质的核心指标之一。据《2025-2026全球家居健康消费趋势报告》显示,中国床垫市场规模预计在2026年突破1000亿元,其中 “健康环保”、“科技智能”与“全龄适配” 成为驱动市场增长的三大核心关…

2026/7/6 2:25:36 阅读更多 →
基于DC 12kV、N=12的多电平MMC仿真研究:最近电平逼近调制与排序均压策略实现

基于DC 12kV、N=12的多电平MMC仿真研究:最近电平逼近调制与排序均压策略实现

基于最近电平逼近的开环MMC仿真 DC:12kV,N=12, 采用最近电平逼近调制, 采用基于排序的均压方法,冒泡排序+桥臂电流方向判断。 连接负载,可以得到13电平相电压波形。 子模块自行搭建,…

2026/7/3 7:33:54 阅读更多 →

最新新闻

Fashion-MNIST 数据集预处理:3种数据增强策略对CNN模型准确率的影响实测

Fashion-MNIST 数据集预处理:3种数据增强策略对CNN模型准确率的影响实测

Fashion-MNIST 数据集预处理:3种数据增强策略对CNN模型准确率的影响实测在计算机视觉任务中,数据预处理和增强技术往往决定了模型性能的上限。Fashion-MNIST作为经典的图像分类基准数据集,其28x28的灰度图像特性使其成为验证数据增强效果的理…

2026/7/6 2:25:51 阅读更多 →
3个理由告诉你为什么Wand-Enhancer是游戏修改的最佳免费方案

3个理由告诉你为什么Wand-Enhancer是游戏修改的最佳免费方案

3个理由告诉你为什么Wand-Enhancer是游戏修改的最佳免费方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为游戏修改工具的付费订阅而烦恼吗&…

2026/7/6 2:23:49 阅读更多 →
PostgreSQL 16.3 Windows 安装:3种端口冲突解决方案与 pgAdmin 4 连接测试

PostgreSQL 16.3 Windows 安装:3种端口冲突解决方案与 pgAdmin 4 连接测试

PostgreSQL 16.3 Windows 安装:3种端口冲突解决方案与 pgAdmin 4 连接测试1. 端口冲突:Windows 环境下 PostgreSQL 安装的常见拦路虎在 Windows 系统上部署 PostgreSQL 16.3 时,5432 端口被占用是最令人头疼的问题之一。这个默认端口号就像是…

2026/7/6 2:21:49 阅读更多 →
MAC-Codex安装文档

MAC-Codex安装文档

MAC-Codex安装文档 在浏览器打开https://platform.openai.com/codex Get Codex app 点击Download for macOS(Apple Silicon)或者Intel芯片的版本 下载好后 在下载文件中双击此文件 然后在codex installer中再次双击 然后登陆后就可以使用啦

2026/7/6 2:19:48 阅读更多 →
SQL Server 数据库设计实战:教学管理系统大作业的5个常见陷阱与优化

SQL Server 数据库设计实战:教学管理系统大作业的5个常见陷阱与优化

SQL Server教学管理系统数据库设计:从新手到专家的5个关键跃迁当第一次接触SQL Server数据库设计时,许多学习者会陷入各种"教科书式陷阱"——那些看似合理却隐藏着严重问题的设计模式。本文将揭示教学管理系统开发中最常见的5个设计误区&#…

2026/7/6 2:17:48 阅读更多 →
标准差、标准误、抽样方差:3 个易混淆概念的 Python 模拟与可视化对比

标准差、标准误、抽样方差:3 个易混淆概念的 Python 模拟与可视化对比

标准差、标准误、抽样方差:3 个易混淆概念的 Python 模拟与可视化对比 在数据分析与统计推断中,标准差、标准误和抽样方差这三个概念常被混淆使用。它们虽然都涉及数据的离散程度,但各自描述的对象和计算逻辑存在本质差异。本文将通过 Python…

2026/7/6 2:17:48 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻