简介
控制数据库中维护哪些数据的关键是添加和删除操作。要插入,您需要为每条新记录指定满足表中每个列要求的项目。要删除,您需要提供要删除的表的行的匹配条件。
在本文中,我们将深入探讨如何使用 INSERT
和 DELETE
命令向 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', '[email protected]');
我们为 first_name
、last_name
、student_email
提供值。我们将 id
字段留空,因为 SQLite 可以自动填充此字段。如果您查询该表,您会看到已添加了新记录
SELECT * FROM student;
+-------------+------------+-----------+---------------------+id | first_name | last_name | student_email |+-------------+------------+-----------+---------------------+1 | Bob | Smith | [email protected] |+-------------+------------+-----------+---------------------+
您也可以使用 Prisma Client 通过发出 创建查询 将数据添加到表中。
使用 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', '[email protected]'),('Tamal', 'Wayne', '[email protected]'),('Felipe', 'Espinosa', '[email protected]');
使用 DELETE
从表中删除行
SQL DELETE
命令用于从表中删除记录,充当 INSERT
的补充。要从表中删除行,您必须在 WHERE
子句中提供条件,以指定要删除的行。
基本语法如下所示
DELETE FROM <table>WHERE <condition>;
例如,要删除 student
表中所有 last_name
设置为 Wayne
的行,我们可以键入以下内容
DELETE FROM studentWHERE last_name = 'Wayne';
要使用 Prisma Client 从表中删除数据,请使用 删除查询.
使用 DELETE
同时删除多行
与 INSERT
类似,一次性使用 DELETE
命令可能很麻烦。您可以通过操作 WHERE
子句中的选择条件,使用 DELETE
同时删除多行。
例如,要通过 id
删除多行,您可以键入以下内容
DELETE FROM studentWHERE id in (1,2);
您也可以通过省略 WHERE
子句来删除给定表中的所有行
DELETE FROM student;
Prisma Client 使用名为 deleteMany 的单独查询来一次删除多行数据。
结论
在本文中,我们介绍了如何从 SQLite 表中插入和删除数据的基本知识。我们首先讨论了如何查找表的结构以确保构建有效的數據插入查询。然后,我们介绍了如何一次插入和删除数据以及批量插入和删除数据。
INSERT
和 DELETE
命令是管理表中维护的数据的一些最有用命令。了解它们的语法和操作的基本知识将使您能够快速有效地向数据库结构添加或删除记录。