Skip to main content

SQLite Insert Into-向表中插入新行

要向表中插入数据,可以使用insert语句。SQLite提供了各种形式的INSERT语句,允许您在表中插入单行、多行和默认值。

此外,可以使用SELECT语句提供的数据将行插入表中。

SQLite INSERT–在表中插入一行

要在表中插入单行,请使用以下形式的insert语句:

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

让我们更详细地检查INSERT语句:

我们将使用示例数据库中的艺术家表进行演示。

下面的语句在“艺术家”表中插入新行:

INSERT INTO artists (name)
VALUES('Bud Powell');

试试看

因为ArtistId列是一个自动递增列,所以可以在语句中忽略它。SQLite自动生成一个顺序整数,插入ArtistId列。

可以使用以下SELECT语句验证插入操作:

SELECT
ArtistId,
Name
FROM
Artists
ORDER BY
ArtistId DESC
LIMIT 1;

试试看

SQLite Insert Example

如你所见,我们在艺术家表中有一个新的行。

SQLite INSERT–在一个表中插入多行

要在表中插入多行,请使用以下形式的insert语句:

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

VALUES子句后面的每个值列表都是将插入表中的一行。

以下示例在“艺术家”表中插入三行:

INSERT INTO artists (name)
VALUES
("Buddy Rich"),
("Candido"),
("Charlie Byrd");

试试看

SQLite发布了一条消息:

Row Affected: 3

可以使用以下语句验证结果:

SELECT
ArtistId,
Name
FROM
artists
ORDER BY
ArtistId DESC
LIMIT 3;

试试看

SQLite Insert Multiple Example

SQLite INSERT–插入默认值

使用create table语句创建新表时,可以为列指定默认值,如果未指定默认值,则可以指定NULL。

INSERT语句的第三种形式是INSERT DEFAULT VALUES,它使用列定义中指定的默认值将新行插入表中,如果默认值不可用且列没有not NULL约束,则使用NULL。

例如,下面的语句使用INSERT DEFAULT VALUES将新行插入到“艺术家”表中:

INSERT INTO artists DEFAULT VALUES;

试试看

要验证插入,请使用以下语句:

SELECT
ArtistId,
Name
FROM
artists
ORDER BY
ArtistId DESC;

试试看

SQLite Insert default values

ArtistId列的默认值是下一个连续整数。但是,名称列没有任何默认值,因此,INSERT default VALUES语句将NULL插入其中。

SQLite INSERT–使用SELECT语句提供的数据插入新行

假设要备份艺术家表,可以执行以下步骤:

首先,创建一个名为artists_backup的新表,如下所示:

CREATE TABLE artists_backup(
ArtistId INTEGER PRIMARY KEY AUTOINCREMENT,
Name NVARCHAR
);

试试看

要使用artists表中的数据将数据插入artists_备份表,请使用insert into SELECT语句,如下所示:

INSERT INTO artists_backup 
SELECT ArtistId, Name
FROM artists;

试试看

如果从artists_备份表中查询数据,将看到artists表中的所有数据。

SELECT * FROM artists_backup;

试试看

SQLite Insert Into Select

在本教程中,您学习了如何使用各种形式的SQLite INSERT语句将新行插入表中。

工具书类