第四章 数据更新
4-1数据的插入(INSERT语句的使用方法)
一、什么是INSERT
INSERT语句可以向表中插入数据(按行插入)。原则上,INSERT 语句每次执行一行数据的插入。
二、INSERT 语句的基本语法
INSERT 语句
INSEERT INTO <表名> (列1,列2,列3,……) VALUES(值1,值2,值3……);
举个栗子:
INSERT INTO ShohinIns (shohin_id,shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi)
VALUES('0001','T恤衫','衣服',1000,500,'2009-09-20');
注意:原则上,执行一次INSERT语句会插入一行数据
三、列清单的省略
对表进行全列INSERT时,可以省略表名后的列清单。这是VALUES子句的值会默认按照从左到右的顺序赋给每一列。
四、插入NULL
INSERT要想给某一列赋予NULL值时,可以直接在 VALUES 子句中写入NULL。
举个栗子:
INSERT INTO ShohinIns (shohin_id,shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi)
VALUES('0006','叉子','厨房用具',500,NULL,'2009-09-20');
注意:
想要插入NULL的列一定不能设置NOT NULL约束。向设置了NOT NULL约束的列中插入NULL时,INSERT 语句会出、错,数据插入失败。这里的插入失败是指希望插入的数据无法正常插入到表中,但之前已经插入的数据并不会被破坏。
五、插入默认值(初始值)
DEFAULT是对列的一种约束。
举个栗子:
CREATE TABLE ShohinIns (
shohin_id CHAR(4) NOT NULL,
hanbai_tanka
INTEGER DEFAULT 0; --默认销售单价为0
PRIMARY KEY (shohin_id));
1、通过显示方式插入默认值
在VALUES子句中指定DEFAULT关键字
举例如下:
INSERT INTO ShohinIns (shohin_id,shohin_mei,shiohin_burui,hanbai_tanka,shiire_tanka,torokubi)
VALUES('0007','擦菜板','厨房用具',DEFAULT,790,'2009-04-28');
2、通过隐示方法插入默认值
插入默认值是也可以不使用DEFAULT关键字。只要在列清单和VALUES中省略设定了默认值的列就可以了
通俗解释就是同时省略列名和键值。
注意:如果我们省略了没有设定默认值的列的话,该列的值就会被设定为NULL。因此,如果省略的是设置了NOT NULL约束的话,INSERT语句就会出错。
六、从其他表中复制数据
INSERT……SELECT……FROM语句
INSERT INTO ShohinCopy (shohin_id,shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi)
SELECT shohin_id,shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi
FROM Shohin;
注:INSERT语句中,可以使用WHERE子句或GROUP BY子句等任何SQL语句(但是使用ORDER BY子句并不会产生任何效果。)
4-2 数据的删除(DELETE语句的使用方法)
一、DROP TABLE语句和DELETE语句
1、DROP TABLE 语句可以将表完全删除
2、DELETE 语句会留下表(容器),而删除表中的全部数据。
二、DELETE 语句的基本用法
保留数据表,仅删除全部数据行的DELETE语句
DELETE FROM <表名>;
清空表:
DELETE FROM Shohin;
如果语句忘记了写FROM,而是写成了DELETE<表名>,或者写了多余的列名,都会出错,无法正常执行。
DELETE语句的删除对象并不是表或列,而是记录(行)。
三、指定删除对象的DELETE语句(搜索型DELETE)
可以像select语句那样使用where语句来指定删除条件。
语法如下:
DELETE FROM <表名>;
WHERE <条件>;
四、TRUNCATE语句
语法如下:
TRUNCATE <表名>;
与delete语句不同的是,truncate语句只能删除表中的全部数据,而不能通过where语句来进行筛选删除。
4-3 数据的更新(UPDATE语句的使用方法)
一、UPDATE语句的基本语法
语法如下:
UPDATE <表名>
SET <列名> = <表达式>;
更新时数值为NULL的表也会被更新为新的值
二、指定条件的UPDATE语句(搜索型UPDATE)
更新部分数据行的搜索型UPDATE语句如下:
UPDATE <表名>
SET <列名> = <表达式>
WHERE <条件>;
SET语句右边的表达式不仅可以是一个简单的数值还可以是包含列的表达式。
三、使用NULL进行更新
使用update 可以直接在set的右侧表达式里赋值为null 这种更新俗称为 null清空。
四、多列更新
如果我们想要更新两列或者更多列的数据,第一步我们一定会想到写出两个相同的语句来同时更新数据。如下:
UPDATE Shohin
SET hanbai_tanka = hanbai_tanka * 10
WHERE shohin_bunrui = '厨房用具';
UPDATE Shohin
SET shiire_tanka = shiire_tanka / 2
WHERE shohin_bunrui = '厨房用具';
这种方法固然可以有效的更新数据但是,过于冗杂。
大多时候我们都采用下面的方法进行更新:
UPDATE Shohin
SET hanbai_tanka = hanbai_tanka * 10,
shiire_tanka = shiire_tanka / 2
WHERE shohin_bunrui = '厨房用具';
注意:两条set语句中一定要用逗号隔开!!!
版权归原作者 Jqh. 所有, 如有侵权,请联系我们删除。