SQLite 教學:數據庫管理的入門指南
你好,未來的數據庫大師!我很興奮能成為你進入SQLite世界的引路人。作為一個教計算機科學多年的老師(就不說我記得軟盤是真的柔軟的時候了),我可以向你保證,SQLite是最親切的數據庫系統之一。所以,請繫好安全帶,我們一起來探索吧!
什麼是SQLite?
SQLite就像那個可靠的、在你需要時總是出現的朋友。它是一個緊湊的、無服務器的、自給自足的數據庫引擎,需要最少的設定和維護。想像一下,你有一個可以放在口袋裡的迷你文件櫥——這就是SQLite!
為什麼選擇SQLite?
- 輕量級:它如此輕巧,簡直可以飄起來!
- 預設配置:不需要數據庫管理員。
- 帶著走:你的整個數據庫都在一個文件中。
- 可靠:它在無數應用程序中經過戰火測試。
開始使用SQLite
安裝
安裝SQLite比泡即食麵還要簡單。這樣操作:
- 訪問SQLite下載頁面
- 選擇適合你操作系統的套件
- 下載並運行安裝程序
搞定!你可以開始使用了。
創建你的第一個數據庫
我們來創建一個簡單的數據庫來存儲我們最喜歡的書籍信息。我們將它命名為my_library.db
。
sqlite3 my_library.db
這個命令會打開SQLite提示符。如果文件不存在,SQLite會為你創建它。這就像魔法,但更好——這是科技!
SQLite基本命令
現在,我們有了數據庫,讓我們來學習一些基本命令。將這些命令看作是讓SQLite聽我們話的“魔法詞語”。
創建一個表
我們來創建一個表來存儲我們的書籍信息:
CREATE TABLE books (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
author TEXT NOT NULL,
published_year INTEGER
);
這個命令創建了一個名為books
的表,有四個列。讓我們來分析一下:
-
id
:每本書的唯一標識符 -
title
:書名(不能為空) -
author
:作者名(不能為空) -
published_year
:書籍出版年份
插入數據
現在,讓我們向表中添加一些書籍:
INSERT INTO books (title, author, published_year)
VALUES ('To Kill a Mockingbird', 'Harper Lee', 1960);
INSERT INTO books (title, author, published_year)
VALUES ('1984', 'George Orwell', 1949);
這些命令向我們的數據庫中添加了兩本經典書籍。注意我們沒有指定id
?SQLite會自動為我們分配一個。這就像有一個個人事助手為你的書籍編號!
查詢數據
讓我們看看我們的圖書館中有哪些書:
SELECT * FROM books;
這個命令從books
表中檢索所有列(*
)。這就像問SQLite,“把你有的一切都給我看看!”
更新數據
哦,我們犯了一個錯誤。讓我們更新"1984"的出版年份:
UPDATE books
SET published_year = 1948
WHERE title = '1984';
這個命令將書名為"1984"的書的published_year
更改為1948。這就像使用橡皮擦並重寫正確的信息。
刪除數據
讓我們從我們的數據庫中刪除一本書:
DELETE FROM books
WHERE title = 'To Kill a Mockingbird';
這個命令刪除標題為"To Kill a Mockingbird"的行。記住,能力越大,責任越大——刪除前一定要加倍檢查!
高級SQLite功能
現在我們已經掌握了基礎,讓我們來探索一些SQLite的更高级功能。
使用事務
事務就像魔法咒語,可以確保你的所有命令要么一起成功,要么一起失敗。以下是如何使用它們:
BEGIN TRANSACTION;
INSERT INTO books (title, author, published_year) VALUES ('The Hobbit', 'J.R.R. Tolkien', 1937);
INSERT INTO books (title, author, published_year) VALUES ('The Lord of the Rings', 'J.R.R. Tolkien', 1954);
COMMIT;
如果這些插入中的任何一個失敗,那麼它們都不會被應用。這是全有或全無!
創建索引
索引就像書的目錄——它幫助SQLite更快地找到信息:
CREATE INDEX idx_author ON books(author);
這個命令在author
列上創建了一個索引,使得按作者搜索更快。
SQLite函數
SQLite提供了一系列內置函數,可以讓你的生活變得更加輕鬆。以下是一些常見的函數:
函數 | 描述 | 示例 |
---|---|---|
COUNT() |
計算行數 | SELECT COUNT(*) FROM books; |
AVG() |
計算數值列的平均值 | SELECT AVG(published_year) FROM books; |
SUM() |
計算數值列的總和 | SELECT SUM(published_year) FROM books; |
MAX() |
在列中找到最大值 | SELECT MAX(published_year) FROM books; |
MIN() |
在列中找到最小值 | SELECT MIN(published_year) FROM books; |
UPPER() |
將文本轉換為大寫 | SELECT UPPER(title) FROM books; |
LOWER() |
將文本轉換為小寫 | SELECT LOWER(author) FROM books; |
結論
恭喜你!你已經踏入了SQLite的奇妙世界。記住,像學習任何新技能一樣,精通SQLite需要練習。不要害怕嘗試和犯錯誤——這是我們學習的最佳方式。
在我們結束這個教程時,我想起了一句偉大的計算機科學家Grace Hopper的名言:“語言中最危險的短語是,‘我們一直都是這樣做的。’”所以,勇於嘗試新事物,願你的查詢總是返回你期望的結果!
快樂編程,直到下一次,讓你的數據庫正規化,並優化你的連接!
Credits: Image by storyset