如果你在数据库中创建了一个空表,则需要向其中添加记录。在本文中,你将了解如何使用 SQL 中的 INSERT 语句向表中添加记录。

请记住,如果此处提供的语法不起作用,你可以查看你正在使用的 SQL 文档。

SQL INSERT 语句语法

INSERT 语句指定要将记录添加到哪个表中。编写命令 INSERT INTO table_name,然后是关键字 VALUES,后跟要在括号内的每一列中添加的值,并用逗号分隔,如下所示:

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

这些值将按照在表中定义列的顺序被添加到列中。

如何为选定的列赋值

假设你只想为几列提供值 - 例如,如果你想避免手动设置 id,而是自动完成,你将使用以下语法:

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

这些值将按照它们在括号中的写入顺序被分配给列。

SQL INSERT 语句示例

让我们创建一个表,然后我们将使用 INSERT 向其中添加前几条记录。

下面的代码将创建一个名为 users 的表,它有 5 列。我们将有一个 id 列作为 PRIMARY KEY(该列将始终具有唯一值,并允许我们唯一标识一行),然后是 nameagestateemail 列。

CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT,  age INTEGER, state TEXT, email TEXT);

让我们使用第一个语法将第一条记录添加到该表中。

我们将使用以下查询添加用户 Paul,其 id1,年龄为 24stateMichigan,电子邮件地址为 paul@example.com

INSERT INTO users
VALUES (1, "Paul", 24, "Michigan", "paul@example.com");

这将使表格看起来像这样:

image-6

使用此语法,你必须为每一列指定一个值,否则它将引发错误,并且不能运行。

现在让我们使用上面看到的第二种语法添加一些其他记录。

INSERT INTO users (name, state)
VALUES ("Molly", "New Jersey");

INSERT INTO users (name, state, age)
VALUES ("Robert", "New York", 19);

在这种情况下,第一个值被分配给第一个提到的列,因此 “Molly” 被分配给 name 列,“New Jersey” 被分配给 state 列。然后对于另一条记录,name 列的值为 “Robert”,state 列为 “New York”,age 列为 19

未分配值的列会发生什么情况?类型为 INTEGER PRIMARY KEY AUTOINCREMENT 的列会自动更新,确保每一行都具有唯一值。当没有为其他列指定值时,它们被分配一个 NULL 值。

现在表格如下所示。请注意, id 列已更新为在每一行中具有唯一值,即使我们没有明确地为其分配值。尚未分配值的其他列的值为 NULL

image-7

小结

当你刚在数据库中创建表时,它是空的。本文介绍了如何向表中添加记录,开始创建数据库。

原文:Insert Into SQL – SQL Insert Statement Example,作者:Ilenia Magoni