SQL 概述
SQL (Structured Query Language) 是關聯式資料庫的標準查詢語言,用於資料的定義、查詢、更新與管理。主要分為 DDL (資料定義)、DML (資料操作)、DQL (資料查詢) 和 DCL (資料控制)。
資料定義 (DDL)
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL UNIQUE,
email TEXT NOT NULL UNIQUE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_users_email ON users(email);
資料查詢 (DQL)
-- 基本查詢
SELECT * FROM users WHERE age >= 18;
-- JOIN 查詢
SELECT u.name, o.total
FROM users u
INNER JOIN orders o ON u.id = o.user_id;
-- 聚合
SELECT status, COUNT(*) as count
FROM orders GROUP BY status HAVING COUNT(*) > 10;
-- 排序與分頁
SELECT * FROM users ORDER BY created_at DESC LIMIT 10 OFFSET 20;
資料操作 (DML)
INSERT INTO users (name, email) VALUES ('王小明', 'wang@example.com');
UPDATE users SET age = 26 WHERE name = '王小明';
DELETE FROM users WHERE age < 18;
交易 (Transaction)
交易確保多個操作要麼全部成功,要麼全部失敗 (ACID)。
START TRANSACTION;
INSERT INTO users (name, email) VALUES ('新使用者', 'new@example.com');
INSERT INTO orders (user_id, total) VALUES (LAST_INSERT_ID(), 100.00);
COMMIT;
-- ROLLBACK; -- 取消交易