涵蓋資料庫/表結構管理、資料增刪改查、備份還原、索引視圖、聚合統計等高頻操作。
-- 建立資料庫
CREATE DATABASE db_name;
-- 刪除資料庫
DROP DATABASE db_name;
-- SQL Server 備份 (需 sysadmin 權限)
USE master;
EXEC sp_addumpdevice 'disk', 'testBack', 'C:\backup\mynwind_1.dat';
BACKUP DATABASE pubs TO testBack;
-- 建立新表
CREATE TABLE tab_name (
col1 TYPE1 [NOT NULL] [PRIMARY KEY],
col2 TYPE2 [NOT NULL],
...
);
-- 依現有表結構建表 (不複製資料)
CREATE TABLE new_tab LIKE old_tab; -- MySQL
CREATE TABLE new_tab AS SELECT * FROM old_tab WHERE 1=0; -- Oracle/SQL Server
-- 刪除表
DROP TABLE tab_name;
-- 新增欄位
ALTER TABLE tab_name ADD col_name TYPE;
-- 新增/刪除主鍵
ALTER TABLE tab_name ADD PRIMARY KEY (col);
ALTER TABLE tab_name DROP PRIMARY KEY;
-- 索引管理
CREATE [UNIQUE] INDEX idx_name ON tab_name (col...);
DROP INDEX idx_name ON tab_name; -- MySQL
DROP INDEX tab_name.idx_name; -- SQL Server
CREATE VIEW view_name AS SELECT ...;
DROP VIEW view_name;
-- 查詢
SELECT * FROM table1 WHERE condition;
-- 插入
INSERT INTO table1 (col1, col2) VALUES (val1, val2);
-- 刪除
DELETE FROM table1 WHERE condition;
-- 更新
UPDATE table1 SET col1 = val1 WHERE condition;
-- 模糊查詢
SELECT * FROM table1 WHERE col1 LIKE '%keyword%';
-- 排序
SELECT * FROM table1 ORDER BY col1, col2 [DESC];
| 函數 | 用途 | 範例 |
|---|---|---|
| COUNT(*) | 總筆數 | SELECT COUNT(*) AS total FROM table1 |
| SUM(col) | 求和 | SELECT SUM(amount) FROM orders |
| AVG(col) | 平均值 | SELECT AVG(score) FROM exam |
| MAX(col) | 最大值 | SELECT MAX(price) FROM products |
| MIN(col) | 最小值 | SELECT MIN(price) FROM products |
DROP COLUMN,但 MySQL 早期版本不支援)。% 開頭無法使用索引,大表慎用。