SQL --Chapter 04 数据更新
数据的插入(INSERT语句的使用方法)
INSERT INTO ShohinIns (shohin_id, shohin_mei, shohin_bunrui, hanbai_tanka,
原则上,执行一次INSERT语句会插入一行数据。
对表进行全列INSERT时,可以省略表名后的列清单。
省略INSERT语句中的列名,就会自动设定为该列的默认值(没有默认值时会设定为NULL)。
从其他表中复制数据:INSERT …SELECT。
INSERT语句的SELECT语句中,可以使用WHERE子句或者GROUP BY子句等任何SQL语法。(但使用ORDER BY子句并不会产生任何效果)。
数据的删除(DELETE语句的使用)
DROP TABLE语句可以将表完全删除。
DELETE语句会留下表(容器),而删除表中的全部数据。
清空表:DELETE FROM Shohin;
DELETE语句的删除对象并不是表或者列,而是记录(行)。
可以通过WHERE字句指定对象条件来删除部分数据。
注:TRUNCATE <表名>; 只能删除全部数据,正因为它不能具体地控制删除对象,所有其处理速度比DELETE要快的多。因此需要删除全部数据时,使用TRUNCATE可以缩短执行时间。
数据的更新(UPDATE语句的使用方法)
UPDATE语句:
UPDATE <表名>
SET <列名> = <表达式>
WHERE <条件>;
使用UPDATE语句可以将值清空为NULL(但只限于未设置NOT NULL约束的列)。
多列更新:使用逗号将列进行分隔排列
UPDATE Shohin
SET hanbai_tanka = hanbai_tanka * 10,
shiire_tanka = shiire_tanka / 2
WHERE shohin_bunrui = '厨房用具';
事务
事务是需要在同一个处理单元执行的一系列更新处理的集合。
START TRANSACTION;
-- 运动T恤的销售单价下调1000日元
UPDATE Shohin
SET hanbai_tanka = hanbai_tanka - 1000
WHERE shohin_mei = '运动T恤';
-- T恤的销售单价上浮1000日元
UPDATE Shohin
SET hanbai_tanka = hanbai_tanka + 1000
WHERE shohin_mei = 'T恤';
COMMIT;
START TRANSACTION;
-- 运动T恤的销售单价下调1000日元
UPDATE Shohin
SET hanbai_tanka = hanbai_tanka - 1000
WHERE shohin_mei = '运动T恤';
-- T恤的销售单价上浮1000日元
UPDATE Shohin
SET hanbai_tanka = hanbai_tanka + 1000
WHERE shohin_mei = 'T恤';
ROLLBACK;
事务处理何时开始:
几乎所有的数据库产品,每条SQL语句就是一个事务(自动提交模式)。
如果需要回滚操作,需要关闭自动提交或者明示开始事务(start transaction)
事务的ACID特性:原子性、一致性、隔离性、持久性。.
posted on 2016-07-12 10:18 Mrs.Totoro 阅读(229) 评论(0) 编辑 收藏 举报