MySQL INSERT INTO 语句
INSERT INTO
语句用于向表中插入新记录。
INSERT INTO 语法
INSERT INTO
语句可以用两种方式编写:
- 指定列名和要插入的值:
1 | INSERT INTO 表名 (列1, 列2, 列3, ...) |
- 如果你要为表中的所有列添加值,则无需在 SQL 查询中指定列名。但请确保值的顺序与表中列的顺序一致。此时,
INSERT INTO
语法如下:
1 | INSERT INTO 表名 |
举例
示例数据库
以下是 Northwind 示例数据库中 “Customers” 表的一个选段
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
89 | White | Karl | 305 - 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman | Matti | Keskuskatu 45 | Helsinki | 21240 | Finland |
例1:
以下 SQL 语句将插入一条新记录到 “Customers” 表中
1 | INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) |
结果为:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
89 | White | Karl | 305 - 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman | Matti | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Cardinal | Tom B. Erichsen | Skagen 21 | Stavanger | 4006 | Norway |
你注意到我们没有向 CustomerID 字段插入任何数字吗?
CustomerID 列是一个自动递增字段,当插入新记录时,系统会自动生成该字段的值。
仅在指定列中插入数据
也可以只向特定列插入数据。
以下 SQL 语句将插入一条新记录,但仅在 “CustomerName”、”City” 和 “Country” 列中插入数据(CustomerID 将自动更新)
例2:
1 | INSERT INTO Customers (CustomerName, City, Country) |
结果:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
89 | White | Karl | 305 - 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman | Matti | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Cardinal | null | null | Stavanger | null | Norway |
NULL 是一个特殊的标记,用于表示“无值”或“未知的值”。
在数据库中,NULL 不等同于空字符串(””)或零(0),它表示该字段没有数据或该数据尚未被指定。