数据更新包括了表存在的情况下数据的添加, 数据的删除和数据的更新, 主要是下面三个语句:
INSERT 语句
DELETE 语句
UPDATE 语句
在本章的最后, 讲了关于「事务」的相关知识, 用于对作出的更改进行决定 -- 是否上交或者舍弃改动.
INSERT 语句
基本语法
- INSERT INTO <tablename> (column1, column2, column3, ....)
- VALUES (value1, value2, value3, ...);
术语:
清单: 在 SQL 中,"()" 称为「清单」, 其中包含列名的叫做「列清单」
VALUE 子句
值清单: VALUE 子句后为值清单
注意:
可以省略列清单
添加 NULL 值的时候, 在值清单中加入 NULL
DEFAULT 关键字
在创建表格的时候, 可以使用 DEFAULT 约束, 例如:
- CREATE TABLE ProductIns
- (sale_price INTEGER DEFAULT 0,
- ...);
在 VALUE 子句的清单中可指定 DEFAULT 关键字, 例如:
INSERT INTO ProductIns VALUES ('0007', '擦菜板','厨房用具', DEFAULT, 790, '2009-04-28');
INSERT...SELECT - 从其他表中复制数据
格式
- (举例为从 Product 复制数据到 ProductCopy 表中)
- INSERT INTO ProductCopy
SELECT product_id, product_name. ...
FROM Product;
其中的 SELECT 语句
包含 SELECT 语句的 INSERT 语句, SELECT 语句中可以添加 WHERE 子句和 GROUP BY 子句.
DELETE 语句
定义:
DELETE 语句用于删除表中的记录 (行).
清空整张表
有三种方法清空整张表, 其中 TRUNCATE 速度最快:
- DELETE FROM ;
- TRUNCATE ;
- DROP ;
指定条件的 DELETE 语句
DELETE .... WHERE
注意:
由于 DELETE 只能删除记录, 因此不能使用 GROUP BY 等子句.
UPDATE 语句
格式
- UPDATE <tablename>
- SET <columnname> = <expression>;
其中更新的值都记录在 SET 子句中.
指定条件的 UPDATE 语句
UPDATE...WHERE...
多列更新
定义: 当对于满足同一条件的数据进行多条更新的时候, 可以使用多列更新的方法:
有两种方式可以进行多列更新.
方法 1: 将列分隔排列
- UPDATE Product
- SET sale_price = sale_price * 10,
- purchase_price = purchase_price / 2
- WHERE product_type = '厨房用具'.
方法 2: 将列清单化
- UPDATE Product
- SET (sale_price ,purchase_price) = (sale_price * 10,
- purchase_price = purchase_price / 2)
- WHERE product_type = '厨房用具'.
事务
定义:
需要在统一处理单元中执行的一系列变更处理的集合叫做事务.
使用指令创建事务的语法
开始事务: BEGIN TRANSACTION;
提交处理: COMMIT
取消处理: ROLLBACK
不使用指令时创建事务的模式
DBMS 有两种模式:
自动提交模式: 每条 SQL 语句就是一个事务
直到用户执行 COMMIT 或者 ROLLBACK 为一个事务
ACID 特性
DBMS 都遵循 ACID 特性. 它们分别是:
Atomicity 原子性
Consistency 一致性
Isolation 隔离性
Durability 持久性
来源: http://www.bubuko.com/infodetail-3019625.html