SQL INSERT 语句

INSERT INTO 语句用于向数据库的表中插入新记录。

 

1. INSERT 语法

INSERT 语句可以有两种编写形式。

1) 不指定要插入数据的列名,只需提供被插入的值

INSERT INTO table_name
VALUES (value1,value2,value3,...);

2) 指定列名及被插入的值

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

样本数据库

在本教程中,我们将使用 CodeBaoku 样本数据库。

下面是选自 "Websites" 表的数据:

SELECT * FROM Websites;

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 编程宝库      | http://www.codebaoku.com/  | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

 

2. INSERT 范例

假设我们要向 "Websites" 表中插入一个新行。

1) 不指定列插入数据

我们可以使用下面的 SQL 语句:

INSERT INTO Websites (name, url, alexa, country)
VALUES ('百度','https://www.baidu.com/','4','CN');

执行以上 SQL,再读取 "Websites" 表,数据如下所示:

SELECT * FROM Websites;

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 编程宝库      | http://www.codebaoku.com/  | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 6  | 百度          | https://www.baidu.com/    | 4     | CN     |
+----+--------------+---------------------------+-------+---------+

2) 在指定的列插入数据

我们也可以在指定的列插入数据。

下面的 SQL 语句将插入一个新行,但是只在 "name"、"url" 和 "country" 列插入数据(id 字段会自动更新):

INSERT INTO Websites (name, url, country)
VALUES ('stackoverflow', 'http://stackoverflow.com/', 'IND');

执行以上 SQL,再读取 "Websites" 表,数据如下所示:

SELECT * FROM Websites;

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN     |
| 3  | 编程宝库      | http://www.codebaoku.com/  | 4689  | CN     |
| 4  | 微博          | http://weibo.com/         | 20    | CN     |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 6  | 百度          | https://www.baidu.com/    | 4     | CN      |
| 7  | stackoverflow| http://stackoverflow.com/ |  0    | IND     |
+----+--------------+---------------------------+-------+---------+

UPDATE 语句用于更新数据库表中已存在的记录。SQL UPDATE 语法:UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value。