分享到

引言

控制数据库中维护的数据的关键是添加和删除操作。要插入数据,您需要为每一行新记录指定满足表每个列要求的值。要删除数据,您需要提供要从表中删除的行的匹配条件。

在本文中,我们将深入探讨如何使用 INSERTDELETE 命令向 SQLite 表中添加或删除数据。我们将介绍这些命令的语法,以及在单个语句中操作多行的更高级用法。

检查表的结构

在开始插入数据之前,您必须了解表的结构,以便满足表的列、数据类型和约束要求。

要查找名为 student 的表的结构,您可以使用 SQLite .schema <table_name> 命令

.schema student
CREATE TABLE student (id INTEGER PRIMARY KEY, first_name TEXT, last_name TEXT, age INTEGER, student_email TEXT NOT NULL, class TEXT);

输出显示了表的列名、数据类型以及与待插入数据要求相关的其他信息。

为了获得更易读的结果,您可以使用 .fullschema --indent 命令。这将显示连接数据库的模式,并具有更好的间距

.fullschema --indent
CREATE TABLE student (
id INTEGER PRIMARY KEY,
first_name TEXT,
last_name TEXT,
age INTEGER,
student_email TEXT NOT NULL,
class TEXT
);

注意:如果存在,.fullschema 命令还将包含统计表的转储。我们暂时不讨论这一点,但在某些情况下,此输出可能很有用。

使用 INSERT 向表中添加新记录

SQL INSERT 命令用于向现有表中添加数据行。一旦您了解了表的结构,就可以构造一个命令,将表的列与您想要为新记录插入的相应值进行匹配。

该命令的基本语法如下

INSERT INTO my_table(column1, column2)
VALUES ('value1', 'value2');

列列表中的列直接对应于值列表中提供的值。

例如,要将新学生插入到上面列出的 student 表中,我们可以输入

INSERT INTO student(first_name, last_name, student_email)
VALUES ('Bob', 'Smith', 'bob.smith@smith.com');

我们为 first_namelast_namestudent_email 提供了值。我们将 id 字段留空,因为 SQLite 可以自动填充此字段。如果您查询该表,您会看到新记录已被添加。

SELECT * FROM student;
+-------------+------------+-----------+---------------------+
id | first_name | last_name | student_email |
+-------------+------------+-----------+---------------------+
1 | Bob | Smith | bob.smith@smith.com |
+-------------+------------+-----------+---------------------+

使用 INSERT 一次性添加多行

一次性插入多行数据比逐个插入数据更有效地填充数据库。SQLite 允许您指定要添加到同一表中的多行数据。每行新数据都用括号括起来,每组括号之间用逗号分隔。

多记录插入的基本语法如下所示

INSERT INTO my_table(column_name, column_name2)
VALUES
('value', 'value2'),
('value3', 'value4'),
('value5', 'value6');

对于我们一直引用的 student 表,您可以通过输入以下内容在单个语句中添加三名新学生

INSERT INTO student(first_name, last_name, student_email)
VALUES
('Abigail', 'Spencer', 'abispence@university.com'),
('Tamal', 'Wayne', 'tamalwayne@university.com'),
('Felipe', 'Espinosa', 'felesp@university.com');

使用 DELETE 从表中删除行

SQL DELETE 命令用于从表中删除记录,作为 INSERT 的补充。要从表中删除行,您必须在 WHERE 子句中提供条件来指定您要删除的行。

基本语法如下所示

DELETE FROM <table>
WHERE <condition>;

例如,要删除我们 student 表中所有 last_nameWayne 的行,我们可以输入以下内容

DELETE FROM student
WHERE last_name = 'Wayne';

使用 DELETE 一次性删除多行

INSERT 类似,逐个使用 DELETE 命令可能很麻烦。您可以通过操作 WHERE 子句中的选择条件,使用 DELETE 一次性删除多行。

例如,要按 id 删除多行,您可以输入以下内容

DELETE FROM student
WHERE id in (1,2);

您也可以通过省略 WHERE 子句来删除给定表中的所有行

DELETE FROM student;

结论

在本文中,我们介绍了如何从 SQLite 表中插入和删除数据的基本知识。我们首先讨论了如何查找表的结构,以确保构建有效的数据插入查询。然后,我们介绍了如何逐条和批量插入和删除数据。

INSERTDELETE 命令是管理表中数据最常用的命令之一。掌握它们的基本语法和操作将使您能够快速有效地从数据库结构中添加或删除记录。

关于作者
Alex Emerich

Alex Emerich

Alex 是一个典型的爱观鸟、爱嘻哈的“书虫”,也喜欢写关于数据库的文章。他目前居住在柏林,在那里可以看到他像利奥波德·布鲁姆(Leopold Bloom)一样漫无目的地在城市中漫步。
© . All rights reserved.