你的浏览器不支持本网站所要求的功能, 现在看到的是本网站简化版本.

为了获得最佳体验, 请使用最新的Chrome, Safari, Firefox 或 Edge 浏览器.

3. 关系数据库标准语言 SQL

3.5 数据更新

Powered by impress.js
Ver. 2408

### 数据更新操作 - 向表中添加数据 - 修改表中的数据 - 删除表中的数据
### 插入数据 - 插入一个元组 - 插入子查询结果
### 插入元组 INSERT INTO <表名> [(<属性列 1> [,<属性列 2>]...)] VALUES (<常量 1> [,<常量 2>]...);
### 插入功能 - 将新元组插入到指定表中 - 新元组的 <属性列 1> 的值为 <常量 1> - 其它以此类推 - 新元组在 INTO 子句中没出现的属性列上取空值 - 表定义时 NOT NULL 的属性列不能取空值 - 如果 INTO 子句中没有指明任何属性列名, 则新插入的元组必须在每个属性列上都有值
### 例 69 INSERT INTO Student (Sno, Sname, Ssex, Sdept, Sage) VALUES ('2012151281', '陈冬', '男', 'IS', 18); - 将一个新元组插入到 Student 表中 - 属性顺序可以与 CREATE TABLE 中的顺序不一样
### 例 70 INSERT INTO Student VALUES ('201215126', '张成民', '男', 18, 'CS'); - 将学生信息插入到 Student 表中 - 新元组在表的所有属性列上都指定值 - 属性列的次序与 CREATE TABLE 中的次序相同
### 插入子查询结果 INSERT INTO <表名> [(<属性列 1> [, <属性列 2>... )] 子查询; - 子査询可以嵌套在 INSERT 语句中, 生成要插入的批量数据
### 例 72 INSERT INTO Dept_age(Sdept, Avg_age) SELECT Sdept, AVG(Sage) FROM Student GROUP BY Sdept; - 对每一个系求学生的平均年龄并存入数据库
### 修改数据 UPDATE <表名> SET <列名> = <表达式> [,<列名> = <表达式>]... [WHERE <条件>]; - 又称为更新操作 - 修改指定表中满足 WHERE 子句条件的元组 - SET 子句给出 <表达式> 的值
### 修改某一元组 UPDATE Student SET Sage = 22 WHERE Sno = '201215121'; - 将学生 201215121 的年龄改为22岁
### 修改多个元组 UPDATE Student SET Sage = Sage + 1; - 将所有学生年龄增加 1 岁
### 带子查询的修改语句 UPDATE SC SET Grade = 0 WHERE Sno IN (SELETE Sno FROM Student WHERE Sdept = 'CS'); - 将计算机科学系全体学生的成绩置零
### 删除数据 DELETE FROM <表名> [WHERE <条件>]; - 从指定表中删除满足 WHERE 子句条件的所有元组 - DELETE 删除的是表中数据, 而不是表定义
### 删除某一个元组 DELETE FROM Student WHERE Sno ='201215128'; - 删除学生记录
### 删除多个元组 DELETE FROM SC; - 删除所有的学生选课记录
### 带子查询的删除语句 DELETE FROM SC WHERE Sno IN (SELECT Sno FROM Student WHERE Sdept = 'CS'); - 删除计算机科学系所有学生的选课记录
![course 3.5 mindmap](img/c03/mindmap-3-5.png)
### 3.5 数据更新 - 如何向特定表中添加新的数据元组? - 如果未在 INTO 子句中指定某个属性列, 那么这个属性列的值是什么? - 如何将子查询结果插入到表中? - 如何使用 UPDATE 语句修改特定表中的数据? - 如何在 SQL 中删除指定表中的某一元组? ---- [ 3.4 数据查询](dbds-3-4.html#/overview) [| 练习 |](dbds-exec.html) [ 3.6 视图](dbds-3-6.html#/overview)

黑公网安备23010302001726号   黑ICP备2024033110号-1