本章我们将插入,更新和删除 SQLite 表中的数据。 我们将使用INSERT
,DELETE
和UPDATE
语句。 这些语句是 SQL 数据操作语言(DML)的一部分。
SQLite 插入数据
INSERT
语句用于将数据插入表中。 我们将创建一个新表来执行示例。
我们使用Id
,Name
和Price
列创建一个新表Cars
。
这是经典的INSERT
语句。 我们在表名之后指定了所有列名,并在VALUES
关键字之后指定了所有值。 第一行添加到表中。
我们将新车添加到Cars
表中。 我们省略了Id
列。 Id
列定义为INTEGER PRIMARY KEY
,并且这些列在 SQLite 中自动增加。 这意味着 SQLite 库本身将添加一个新的Id
。
这是目前Cars
表中的内容。
在此 SQL 语句中,我们没有在表名之后指定任何列名。 在这种情况下,我们必须提供所有值。
.nullvalue
命令告诉 SQLite 将NULL
值显示为NULL
。 默认情况下,SQLite 显示NULL
值的空字符串。
INSERT
语句省略了最后两列。 这些列将填充默认值,如果没有默认值,则填充NULL
。 Name
列没有默认值,因此有一个NULL
值。 在CREATE TABLE
语句中,我们已指定Price
列具有“不可用”默认值。
在第二列中,我们有一个NULL
值。 第三个具有默认的“不可用”字符串。
假设我们想将所有信息放入第四列。 尝试将新数据插入现有行会产生以下错误: UNIQUE 约束失败:Cars.Id 。
在这种情况下,我们可以使用INSERT OR REPLACE
语句。 使用UPDATE
语句可以完成相同的操作。
现在,所有信息都在第四行。
INSET OR FAIL INTO
语句等于INSERT INTO
语句。 它只是更具体一点,即在发生错误时失败。
INSERT OR IGNORE INTO
语句将忽略该错误消息。 SELECT
语句显示最后两个语句没有修改第四行。
从 SQLite 3.7.11 版本开始,可以使用一个 INSERT 语句插入多行。
我们将使用单列Ints
表来显示多行INSERT
语句。 该表的孤行列存储整数。
我们一口气将九行插入表中。 这些行紧跟VALUES
关键字,并以逗号分隔。
这些是Ints
表的内容。
我们可以在一个语句中同时使用INSERT
和SELECT
语句。
首先,我们创建一个名为Cars2
的新表。
在这里,我们将Cars
表中的所有数据插入Cars2
表中。
我们验证。
SQLite 删除数据
DELETE
关键字用于从表中删除数据。 首先,我们将从表中删除一行。 我们将使用之前创建的Cars2
表。
我们用Id
1 删除一行。
我们验证第一行是否丢失。
该 SQL 语句删除表中的所有数据。
此 SQL 语句确认Cars2
表中现在没有行。
使用.read
meta 命令,我们创建一个新的Cars
表。 (表的 SQL 可以在本教程的第一章中找到。)
SQLite 更新数据
UPDATE
语句用于修改存储在数据库表的零行或更多行中的值的子集。
假设我们想在Cars
表中将“斯柯达”更改为“斯柯达明锐”。 以下语句显示了如何完成此操作:
SQL 语句将Id=3
列的汽车名称设置为’Skoda Octavia’。
该行已正确更新。