引言
控制資料庫中維護的資料的關鍵是新增和刪除操作。要插入資料,您需要為每一行新記錄指定滿足表每個列要求的值。要刪除資料,您需要提供要從表中刪除的行的匹配條件。
在本文中,我們將深入探討如何使用 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', 'bob.smith@smith.com');
我們為 first_name 、last_name 、student_email 提供了值。我們將 id 欄位留空,因為 SQLite 可以自動填充此欄位。如果您查詢該表,您會看到新記錄已被新增。
SELECT * FROM student;
+-------------+------------+-----------+---------------------+id | first_name | last_name | student_email |+-------------+------------+-----------+---------------------+1 | Bob | Smith | bob.smith@smith.com |+-------------+------------+-----------+---------------------+
您還可以使用 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', '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_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 命令是管理表中資料最常用的命令之一。掌握它們的基本語法和操作將使您能夠快速有效地從資料庫結構中新增或刪除記錄。
