SQLite 教學:數據庫管理的入門指南

你好,未來的數據庫大師!我很興奮能成為你進入SQLite世界的引路人。作為一個教計算機科學多年的老師(就不說我記得軟盤是真的柔軟的時候了),我可以向你保證,SQLite是最親切的數據庫系統之一。所以,請繫好安全帶,我們一起來探索吧!

SQLite - Home

什麼是SQLite?

SQLite就像那個可靠的、在你需要時總是出現的朋友。它是一個緊湊的、無服務器的、自給自足的數據庫引擎,需要最少的設定和維護。想像一下,你有一個可以放在口袋裡的迷你文件櫥——這就是SQLite!

為什麼選擇SQLite?

  1. 輕量級:它如此輕巧,簡直可以飄起來!
  2. 預設配置:不需要數據庫管理員。
  3. 帶著走:你的整個數據庫都在一個文件中。
  4. 可靠:它在無數應用程序中經過戰火測試。

開始使用SQLite

安裝

安裝SQLite比泡即食麵還要簡單。這樣操作:

  1. 訪問SQLite下載頁面
  2. 選擇適合你操作系統的套件
  3. 下載並運行安裝程序

搞定!你可以開始使用了。

創建你的第一個數據庫

我們來創建一個簡單的數據庫來存儲我們最喜歡的書籍信息。我們將它命名為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