簡介
控制資料庫維護哪些資料的關鍵是新增和刪除操作。若要插入,您需要指定符合每個新列之表格的欄位要求的項目。若要移除,您需要提供表格中您想要移除之列的符合條件。
在本文中,我們將深入探討如何使用 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,透過發出 create query 將資料新增至表格。
使用 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 query。
使用 DELETE
一次移除多列
與 INSERT
類似,一次使用一個 DELETE
命令可能很麻煩。您可以透過操作 WHERE
子句中的選取條件,使用 DELETE
一次移除多列。
例如,若要依 id
移除多列,您可以輸入以下內容
DELETE FROM studentWHERE id in (1,2);
您也可以省略 WHERE
子句,從給定的表格中移除所有列
DELETE FROM student;
Prisma Client 使用一個名為 deleteMany 的獨立查詢,一次刪除多列資料。
結論
在本文中,我們介紹了如何從 SQLite 表格插入和移除資料的基本知識。我們首先討論如何尋找表格的結構,以確保建構有效的資料插入查詢。然後,我們介紹了如何一次和批量插入和刪除資料。
INSERT
和 DELETE
命令是用於管理表格內維護哪些資料的最有用的命令之一。理解它們的基本語法和操作將使您能夠快速有效地從資料庫結構新增或移除記錄。