INSERT 顾名思义,就是向表(table)中插入行。
插入完整内容的行
向表中插入数据最简单的方法,就是使用 INSERT 语句。 INSERT 语句需要你声明要插入内容的表名和内容。举个“栗子”!
假设我们现在要建立一张名为 Customers 的空表,建立过程如下:
USE TestDb
CREATE TABLE Customers
(
cust_id int not null,
cust_name varchar(32) not null,
cust_city varchar(32) not null,
cust_email varchar(32) null
)
--查看表内容
SELECT * FROM Customers
得到的空表是这样的:
接下来,我们要往空表中插入一条内容, 插入 (INSERT) 语句如下:
INSERT INTO Customers
VALUES (
'1000000006',
'Toy Land',
'New York',
NULL
)
如图所示,是我们得到的结果,一条完整的内容已经被填入了空表中。
分析:
在这个例子中,我们把消费者的信息 (values) 依序插入了 Customers 表中。可能有人已经注意到, INSERT INTO 后面只跟了一个表名,这就意味着,我们插入内容的时候必须是依序全内容插入,即使内容为空,也必须用空值 NULL 来填补。
这样的插入虽然简单,但是很危险。一旦表的结构变了,你就会插错内容。下述的方法虽然相对繁琐,其最大的优点就是安全。它列出了你想要插入内容所对应的字段(column),一一对应就不容易出错。
比如:我们换下字段(column) 的顺序,看看会不会成功。
INSERT INTO Customers(
cust_id,
cust_email,
cust_name,
cust_city
)
VALUES (
'1000000006',
NULL,
'Toy Land',
'New York'
)
即使打乱了顺序,这种方法也能将内容安全地插入。所以我们推荐写插入语句时,把字段(column)名也一并写进去。
插入选定内容的行
就像我刚才说的,把字段(column)名写入插入语句是个好办法!用这个方法,我们能忽略某些字段,只插入我们最关心的数据。
比如,我们忽略 cust_email ,为表 Customers 插入内容。
INSERT INTO Customers(
cust_id,
cust_name,
cust_city
)
VALUES (
'1000000006',
'Toy Land',
'New York'
)
删除表中的指定行
DELETE FROM 后面需要你指定删除内容所在的表, WHERE 语句是过滤语句,它用来帮你寻找哪条内容是你想要删除的。在下面的例子中,只有消费者 1000000006 的内容才会被删除。
DELETE FROM Customers WHERE cust_id=1000000006
删除表中的所有行
DELETE FROM Customers
如果需要删除表中所有的行,只需要省略 WHERE 语句即可。
更新表中的指定行
消费者 1000000005 之前没有在记录里留下他的 email ,如下图所示:
但是,现在他有了一个新邮箱,所以需要更新数据库里的数据,更新代码如下所示:
UPDATE Customers
SET cust_email = 'max@yahoo.com'
WHERE cust_id = '1000000005'