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编辑  收藏  举报

导航