MySQL第三章——数据更新
数据更新
更新操作有三种:向表中添加若干行数据、修改表中的数据、删除表中的若干行数据。
- 插入数据
SQL的数据插入语句 insert 有两种形式:插入一个元组、插入子查询结果(可以一次插入多个元组)
- 插入元组
insert into <表名> [(<属性列1> [,<属性列2>]……)] values (<常量1> [,<常量2>]……);
功能:将新元组插入指定表中。into 子句中没有出现的属性列,新元组在这些列上将取空值。注意:在表定义时说明了 not null 的属性列不能取空值,否则会出错。如果 into 子句中没有指明任何属性列名,则新插入的元组必须在每个属性列上均有值。
2. 插入子查询结果
子查询不仅可以嵌套在 select 语句中用以构造父查询的条件,也可以嵌套在 insert 语句中用以生成要插入的批量数据。
insert into <表名> [(<属性列1> [,<属性列2>]……)] 子查询;
- 修改数据
修改操作又称更新操作
update <表名> set<列名>=<表达式> [,<列名>=<表达式>]…… [ where <条件>];
功能:修改制定表中满足 where 子句条件的元组,其中 set 子句给出 <表达式> 的值用于取代相应的属性列值如果省略 where 子句,则表示要修改表中的所有元组。
- 修改某一个元组的值
- 修改多个元组的值
- 带子查询的修改语句——子查询可以嵌套在 update 语句中,用以构造修改条件。
- 删除数据
delete from <表名> [where <条件>];
功能:从指定表中删除满足 where 子句条件的所有元组,如果省略 where 子句则表示删除表中全部元组,但表的定义仍在字典中,—— delete 语句删除的是表中的数据,而不是关于表的定义。
- 删除某一个元组的值。
- 删除多个元组的值。
- 带子查询的删除语句——子查询嵌套在 delete 语句中,用以构造执行删除操作的条件。
对某个基本表中数据的增删改查操作可能会破坏参照完整性。