分享於

簡介

控制資料庫維護哪些資料的關鍵是新增和刪除操作。若要插入,您需要指定符合每個新列之表格的欄位要求的項目。若要移除,您需要提供表格中您想要移除之列的符合條件。

在本文中,我們將深入探討如何使用 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_name 設定為 Wayne 的列,我們可以輸入以下內容

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 是典型的賞鳥、熱愛嘻哈音樂的書蟲,也喜歡撰寫關於資料庫的文章。他目前住在柏林,在那裡可以看到他像李奧波德·布魯姆一樣漫無目的地在城市中漫步。