如果你在数据库中创建了一个空表,则需要向其中添加记录。在本文中,你将了解如何使用 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
(该列将始终具有唯一值,并允许我们唯一标识一行),然后是 name
、age
、state
和 email
列。
CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, state TEXT, email TEXT);
让我们使用第一个语法将第一条记录添加到该表中。
我们将使用以下查询添加用户 Paul
,其 id
为 1
,年龄为 24
,state
是 Michigan
,电子邮件地址为 paul@example.com
:
INSERT INTO users
VALUES (1, "Paul", 24, "Michigan", "paul@example.com");
这将使表格看起来像这样:
使用此语法,你必须为每一列指定一个值,否则它将引发错误,并且不能运行。
现在让我们使用上面看到的第二种语法添加一些其他记录。
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
。
小结
当你刚在数据库中创建表时,它是空的。本文介绍了如何向表中添加记录,开始创建数据库。
原文:Insert Into SQL – SQL Insert Statement Example,作者:Ilenia Magoni