分享到

引言

控制資料庫中維護的資料的關鍵是新增和刪除操作。要插入資料,您需要為每一行新記錄指定滿足表每個列要求的值。要刪除資料,您需要提供要從表中刪除的行的匹配條件。

在本文中,我們將深入探討如何使用 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)一樣漫無目的地在城市中漫步。
© . This site is unofficial and not affiliated with Prisma Data, Inc.