3.5 数据更新

news2024/11/16 8:35:23

 思维导图:

3.5.1 插入数据

**数据更新操作笔记**

---

**概述:**
数据更新操作在SQL中主要包括三种:插入、修改和删除。以下主要集中于插入数据的操作。

---

**3.5.1 插入数据:**

**1. 插入单一元组:**
- 格式:

  INSERT INTO <表名> [(<属性列1>, <属性列2>, ...)] VALUES (<常量1>, <常量2>, ...);

- 特点:
  - 如果没有指定属性列,则必须为表中的所有列提供值,并且与创建表时的列顺序相同。
  - 字符串值必须用英文单引号括起来。
  - 在表定义时标记为NOT NULL的属性列不能赋予NULL值。

- 例子:

  INSERT INTO Student (Sno, Sname, Ssex, Sdept, Sage) VALUES ('201215128', '陈冬', '男', 'IS', 18);
  INSERT INTO Student VALUES ('201215126', '张成民', '男', 18, 'CS');
  INSERT INTO SC(Sno, Cno) VALUES ('201215128', '1');

**2. 插入子查询结果:**
- 格式:
 

  INSERT INTO <表名> [(<属性列1>, <属性列2>, ...)] <子查询>;

- 特点:
  - 子查询可以生成多个元组的结果,然后将这些结果一次性插入目标表中。
  - 子查询常常用于数据转移或数据转换。

- 例子:

  CREATE TABLE Dept_age (Sdept CHAR(15), Avg_age SMALLINT);
  INSERT INTO Dept_age (Sdept, Avg_age) SELECT Sdept, AVG(Sage) FROM Student GROUP BY Sdept;

---

**小结:**
插入操作是SQL的基础功能之一,通常用于将新数据添加到数据库中。为确保数据的一致性和完整性,需要确保在插入数据时遵循表的结构和约束。插入子查询的结果为高级功能,它可以方便地将一个查询的输出转移到另一个表中。

**3.5.2 修改数据笔记**

---

**概述:**
修改数据,也称为更新数据,是SQL中的一个基础操作。它用于修改表中满足特定条件的数据。

---

**基本格式:**

UPDATE <表名>
SET <列名>=<表达式>[, <列名>=<表达式>...]
[WHERE <条件>];

- 特点:
  - `SET` 子句用于指定要修改的列及其新的值。
  - `WHERE` 子句用于指定要更新的行。如果省略,所有行都会被更新。

---

**1. 修改单个元组的值:**
- 用于更新满足特定条件的单个记录。
  
  **例子:**

  UPDATE Student SET Sage=22 WHERE Sno='201215121';

**2. 修改多个元组的值:**
- 可以同时更新多个记录。
  
  **例子:**

  UPDATE Student SET Sage=Sage+1;

**3. 使用子查询的修改语句:**
- 子查询可以用于构造更复杂的更新条件。
  
  **例子:**
 

  UPDATE SC 
  SET Grade=0 
  WHERE Sno IN 
  (SELECT Sno FROM Student WHERE Sdept='CS');

---

**注意点:**

- 更新操作要小心进行,因为一旦数据被修改,原始数据将无法恢复(除非有备份)。
- 使用 `WHERE` 子句是很重要的,否则可能会误更改不应该更改的数据。
- 与插入数据时一样,更新数据时也需要确保数据的一致性和完整性。

---

**小结:**
修改数据是一个强大的操作,但它也可能是危险的,因为错误的更新可能导致数据损失或不一致。始终建议在执行更新操作之前进行备份,并确保更新语句的准确性。

 

 

 

 总结:

**SQL数据更新总结**

---

**重点**:

1. **基本命令理解**:
   - `INSERT`: 添加数据到表中。
   - `UPDATE`: 修改表中已存在的数据。
   - `DELETE`: 从表中删除数据。

2. **条件指定**:
   - 使用 `WHERE` 子句精确地定位要更新或删除的数据。

3. **子查询使用**:
   - 在数据更新操作中,子查询可以用于获取或匹配要更新或删除的数据。

---

**难点**:

1. **完整性约束**:
   - 数据更新可能会违反表的约束条件,例如主键、外键、唯一约束等。

2. **复杂的子查询**:
   - 有时候,你需要编写嵌套的、复杂的子查询来定位或获取要更新的数据。

3. **性能考虑**:
   - 大量的数据更新或删除可能会影响数据库性能,需要合理的索引和查询优化。

4. **事务管理**:
   - 确保数据的原子性、一致性、隔离性和持久性(ACID属性)。

---

**易错点**:

1. **不指定WHERE子句**:
   - 如果在`UPDATE`或`DELETE`命令中忘记指定`WHERE`子句,可能导致修改或删除整个表的数据。

2. **数据类型不匹配**:
   - 在`INSERT`或`UPDATE`时,如果数据类型与列类型不匹配,会导致错误。

3. **违反参照完整性**:
   - 例如,删除一个在另一表中仍被引用的记录。

4. **忘记提交或回滚事务**:
   - 如果在使用事务时忘记提交(COMMIT)或在出错时回滚(ROLLBACK),可能导致数据不一致或锁定问题。

5. **不正确的子查询返回**:
   - 子查询应返回适当数量的列和行以匹配主查询的需求。返回多余的数据或不返回数据都可能导致错误。

---

**使用技巧**:

1. **备份**:在进行大规模的数据更新前,总是备份数据库。
2. **测试**:在生产环境中进行更新前,先在测试环境中验证SQL语句。
3. **使用事务**:确保在出现错误时能回滚到更新前的状态。
4. **限制更新行数**:在更新大量数据时,考虑分批进行以避免性能问题。

总之,数据更新是SQL中的核心功能,但也是高风险的操作。正确理解并谨慎使用相关命令是非常关键的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1084432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL-DCL数据控制语言简要介绍

MySQL-DCL数据控制语言简要介绍 一、简介二、用户操作1、创建用户2、修改用户密码3、删除用户 三、权限控制1、权限说明2、显示用户权限3、授予权限4、撤销权限 一、简介 在MySQL中&#xff0c;DCL代表数据控制语言&#xff08;Data Control Language&#xff09;。DCL用于管理…

开发者职场“生存状态”大调研报告分析 - 第三版

听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,现任研发部门 CTO 。荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计…

spark中使用flatmap报错:TypeError: ‘int‘ object is not subscriptable

1、背景描述 菜鸟笔者在运行下面代码时发生了报错&#xff1a; from pyspark import SparkContextsc SparkContext("local", "apple1012")rdd sc.parallelize([[1, 2], 3, [7, 5, 6]])rdd1 rdd.flatMap(lambda x: x) print(rdd1.collect())报错描述如…

Fastadmin/Tp5.0连接多个数据库

第一步先引入Config use think\Config; 第二步读取数据库配置 $db Config::get(database2); //读取第二个数据库配置 第三步连接数据库 $db Db::connect($config); 第四步对数据库进行操作 $data $db->name(admin)->find(); 新建的database2.php就是把原database…

冲量在线荣获2023中关村科学城科创大赛成长组TOP10优秀项目!

2023年9月15日&#xff0c;由市科委、中关村管委会&#xff0c;市发展改革委&#xff0c;市经济和信息化局联合指导的2023中关村科学城科创大赛圆满落下帷幕&#xff0c;该项赛事聚焦人工智能大模型&#xff0c;互联网3.0等前沿领域&#xff0c;吸引了国内外近300个优质项目报名…

【开源三方库】Fuse.js:强大、轻巧、零依赖的模糊搜索库

开源项目 OpenHarmony 是每个人的 OpenHarmony 曹天恒 公司&#xff1a;中国科学院软件研究所 小组&#xff1a;知识体系工作组 1.简介 Fuse.js 是一款功能强大且轻量级的 JavaScript 模糊搜索库&#xff0c;支持 OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”…

vue3 自动下载使用 iconify图标以及自定义svg图标

开发中经常使用图标&#xff0c;通过unplugin-icons 插件我们可以在项目中自动下载所需的图标&#xff0c;但实际开发中我们还需要iconfont以及项目ui切图中的图标&#xff0c;这就需要使用自定义SvgIcon组件。具体操作步骤 一、安装包 npm i -D vite-plugin-svg-icons unplu…

Live800:未来的客户服务会发生哪些改变?

随着技术的不断进步和社会的不断发展&#xff0c;客户服务行业也在不断发生着变化。未来的客户服务将会发生哪些改变呢&#xff1f;以下是五个客户服务的预测&#xff0c;以期为企业的客服部门和经营者提供一些启示。 1、AI技术将会成为客户服务行业的核心 人工智能&#xff0…

冲量在线出席2023隐私计算大会,分享在大模型时代下隐私计算的最佳应用实践

隐私计算是数据要素可信流通的关键技术&#xff0c;是当下学术和产业研究的重要方向&#xff0c;也是助力我国数字经济发展的关键举措。为促进隐私计算发展&#xff0c;为隐私计算行业人群提供交流平台&#xff0c;7月26日&#xff0c;由中国信息通信研究院、中国通信学会联合主…

产品经理进阶:如何写商业计划书?

目录 简介 确定目标 确定目标市场 竞争分析 CSDN学院 作者简介 简介 很多时候&#xff0c;我们缺乏的并不是创意。 因为任何人都可能会萌发出一个好的创意。 但是&#xff0c;将想法变成可行的业务就完全是另一码事了。 你可能会认为你自己已经做好充分准备&#xff0…

vs2010 c++ 解析 json(jsoncpp)

vs2010 c 解析 json&#xff08;jsoncpp&#xff09; 在vs2010中利于jsoncpp库解析json&#xff0c;由于vs2010的版本过于古老&#xff0c;因此我们需要下载合适的jsoncpp版本。 下载jsoncpp 网址&#xff1a;https://github.com/open-source-parsers/jsoncpp/tags 选择合适的j…

用AIGC做私活真的太赚了...

说个小道消息&#xff0c;传统涨薪跳槽旺季即将结束&#xff0c;使用AIGC技术已然迎接私活的高潮期&#xff01;各行业对【AIGC】的需求在短时间内暴增。 估计圈子里的朋友都不会闲着&#xff0c;会趁着旺季赚一笔。 所以&#xff0c;近段时间知识星球很多粉丝朋友收到了很多…

html和css基础练习

vscode快捷键 alt b 在浏览器中打开 alt shift b 在其他浏览器打开 ctrl / 注释 ctrl y 快捷键删除 参考文章 https://www.bilibili.com/video/BV1m84y1w7Tb 基础html标签 img&#xff1a;图像&#xff0c;title&#xff1a;头部文字&#xff0c;body&#xff1a;主…

【喜报】冲量在线荣获首届“创领浦东”创新创业大赛三等奖!

为挖掘和培育更多具有浦东特色的优秀创业代表&#xff0c;深耕人才创新创业沃土。2023年&#xff0c;浦东新区人力资源和社会保障局、浦东新区就业促进中心聚合三大赛事品牌&#xff0c;联手打造升级版赛事IP——首届“创领浦东”创新创业大赛。 经过初选、复选、决赛三轮评审…

让视频更加完美——Adobe Premiere Pro 2024 (Pr2024)正式发布!

如果您是一名视频制作人员&#xff0c;或者是想把自己的视频制作得更加完美的业余爱好者&#xff0c;那么您一定听说过Adobe Premiere Pro。Adobe Premiere Pro是一款功能强大、稳定可靠的视频编辑软件&#xff0c;被广泛应用于电影、电视、广告等行业。 现在&#xff0c;好消…

Bootstrap-- 媒体特性

最大、最小宽度例子&#xff1a; 横屏与竖屏例子&#xff1a; 宽度比与像素比例子&#xff1a;

C#:画许多圆

C#:画许多圆 //画许多圆 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace Test_21 {…

网络安全好学吗?要学哪些技术?

在网络上有很多关于网络安全的相关介绍&#xff0c;我们如果说真的准备了解关于网络安全的一些真实的情况&#xff0c;可以通过网上的相关知识来进行了解&#xff0c;这些知识有助于大家对网络安全的存款情况做好一个深入的了解&#xff0c;给自己制定好学习计划&#xff0c;学…

python爬虫练习,爬取iview,element组件库图标名称

简单的爬虫 先举一个爬取图片网站图片保存到本地文件夹的例子 原博客&#xff1a;http://t.csdnimg.cn/Cjv3o 这是一个图片网站 https://pic.netbian.com/ 在空白处右键&#xff0c;查看页面源代码&#xff0c;我们发现有具体内容的 我们使用下面的代码可以爬取这个页面所…

2023年09月 C/C++(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 Python编程&#xff08;1~6级&#xff09;全部真题・点这里 第1题&#xff1a;数组指定部分逆序重放 将一个数组中的前k项按逆序重新存放。例如&#xff0c;将数组8,6,5,4,1前3项逆序重放得到5,6,8,4,1。 时间限制&#…