SQLite - 指令:初學者的友好指南

你好啊,有志於數據庫的熱心者們!我很興奮能成為你們在SQLite指令世界的導遊。作為一個教了多年計算機科學的人,我可以告訴你們,SQLite就像是數據庫世界中的一隻友善的小狗——容易接近、玩耍起來很有趣,一旦你了解它,它就會非常忠誠。那麼,我們來開始吧!

SQLite - Commands

了解SQLite指令

在我們深入細節之前,讓我們先花一分鐘了解SQLite指令是什麼。把它們當作你與SQLite數據庫溝通的語言。就像你可能會用英語請圖書管理員為你找一本書一樣,你使用SQLite指令請求你的數據庫存儲、檢索或操作數據。

基本的SQLite指令

讓我們從一些最常見的SQLite指令開始。我喜歡把這些稱為SQLite的“基本功”——你會不斷使用它們!

指令 描述 範例
CREATE TABLE 創建一個新表 CREATE TABLE students (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);
INSERT 向表中添加新數據 INSERT INTO students (name, age) VALUES ('Alice', 20);
SELECT 從表中檢索數據 SELECT * FROM students;
UPDATE 修改現有數據 UPDATE students SET age = 21 WHERE name = 'Alice';
DELETE 從表中刪除數據 DELETE FROM students WHERE name = 'Alice';

讓我們分解這些指令,並提供一些範例:

CREATE TABLE

CREATE TABLE students (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
);

這個指令創建一個名為“students”的新表。這就像在辦公室裡設置一個新的文件櫃。每個學生都會有一個ID(獨一無二,就像社會安全號碼),一個名字和年齡。

INSERT

INSERT INTO students (name, age) VALUES ('Alice', 20);
INSERT INTO students (name, age) VALUES ('Bob', 22);

這些指令將新學生添加到我們的表中。這就像填寫索引卡並把它們放入文件櫃中。

SELECT

SELECT * FROM students;

這個指令從學生表中檢索所有數據。這就像打開你的文件櫃並一次查看所有的索引卡。

SELECT name FROM students WHERE age > 21;

這個指令更具體——它只檢索年齡超過21歲的學生的名字。這就像請你的助手只拿出年齡足夠飲酒的學生的索引卡(至少在美國是這樣)!

UPDATE

UPDATE students SET age = 21 WHERE name = 'Alice';

這個指令將Alice的年齡改為21歲。也許是她的生日!這就像走到Alice的索引卡並用筆更新她的年齡。

DELETE

DELETE FROM students WHERE name = 'Bob';

這個指令從學生表中刪除Bob。也許他畢業了?這就像從文件櫃中拿出Bob的索引卡並撕碎它。

格式化輸出

現在,我們已經介紹了基本知識,讓我們來討論如何讓我們的輸出看起來更漂亮。畢竟,如果我們不能將這些數據美觀地呈現出來,那麼擁有這些數據又有什麼意義呢?

The .mode 指令

SQLite有一個特殊的指令叫做.mode,它可以改變輸出的顯示方式。以下是一些最有用的模式:

模式 描述
column 以列顯示輸出
line 將每行的數據顯示在不同的行上
csv 以CSV格式輸出數據
html 以HTML表格形式輸出數據

讓我們看看這些模式的使用:

.mode column
SELECT * FROM students;

這將使我們的學生數據以整齊的列顯示,便於閱讀。

.mode line
SELECT * FROM students;

這將使每個學生的信息在不同的行上顯示,當你有許多列時這很有幫助。

.mode csv
SELECT * FROM students;

這將數據以一種容易導入到像Excel這樣的電子表格軟件的格式輸出。

The .header 指令

另一個有用的格式化指令是.header。當設置為ON時,它會在輸出的頂部顯示列名。

.header ON
.mode column
SELECT * FROM students;

這將以列形式顯示數據,並在頂部顯示列名,使每個數據片都清晰明了。

sqlite_master 表

現在,讓我們探查一下幕後並看看SQLite是如何跟踪我們所有的表和索引的。它通過一個特殊的表sqlite_master來完成這項工作。

要查看sqlite_master的內容,你可以使用以下指令:

SELECT * FROM sqlite_master;

這將顯示你數據庫中的所有表和索引,以及用來創建它們的SQL。這就像擁有你整個數據庫的地图!

sqlite_master中的每個列含義如下:

描述
type 對象的類型(表、索引、視圖或觸發器)
name 對象的名稱
tbl_name 對象關聯的表
rootpage 此對象的根頁面號
sql 用來創建對象的SQL語句

理解sqlite_master就像為你的數據庫開啟X射線視覺。它讓你看到一切是如何結構化和連接的。

結論

這就是了,各位!我們已經一起走過了SQLite指令的基礎,學會了如何讓我們的輸出看起來整潔,甚至還窺探了sqlite_master表。記住,學習SQLite就像學習騎自行車——起初可能會有些晃動,但隨著練習,你會很快地在你的數據庫中自由馳騁!

繼續實驗,繼續查詢,最重要的是,繼續享受數據的樂趣。在你意識到之前,你將成為你朋友圈中的SQLite大師,用你的數據庫魔法讓所有人驚奇。快樂編程!

Credits: Image by storyset