一、數據操作語言 (DML)
SELECT — 查詢資料列與欄位
INSERT — 新增資料列
DELETE — 刪除資料列
UPDATE — 更新現有資料
二、數據定義語言 (DDL)
CREATE TABLE / DROP TABLE / ALTER TABLE — 表結構管理
CREATE VIEW / DROP VIEW — 視圖管理
CREATE INDEX / DROP INDEX — 索引管理
CREATE PROCEDURE / DROP PROCEDURE — 預存程序管理
CREATE TRIGGER / DROP TRIGGER — 觸發器管理
CREATE SCHEMA / DROP SCHEMA — 綱要管理
CREATE DOMAIN / ALTER DOMAIN / DROP DOMAIN — 定義域管理
三、數據控制語言 (DCL)
GRANT — 授予存取權限
DENY — 明確拒絕權限 (SQL Server 專有)
REVOKE — 撤銷權限
四、事務控制語言 (TCL)
COMMIT — 確認提交當前事務
ROLLBACK — 回滾中止當前事務
SET TRANSACTION — 定義事務存取特性 (隔離等級、唯讀/讀寫)
五、程序化 SQL (PSM / T-SQL / PL/SQL)
DECLARE — 宣告游標/變數
EXPLAIN — 查詢計畫分析
OPEN / FETCH / CLOSE — 游標操作
PREPARE / EXECUTE — 動態 SQL 準備與執行
DESCRIBE — 描述準備好的查詢中繼資料
六、變數宣告範例 (T-SQL)
-- 局部變數
DECLARE @id CHAR(10);
SET @id = '10010001'; -- 或 SELECT @id = '10010001';
-- 全域變數 (系統內建, 唯讀)
SELECT @@VERSION, @@ROWCOUNT, @@IDENTITY, @@ERROR;
七、流程控制範例 (T-SQL)
-- IF ... ELSE
DECLARE @x INT = 1, @y INT = 2, @z INT = 3;
IF @x > @y PRINT 'x > y';
ELSE IF @y > @z PRINT 'y > z';
ELSE PRINT 'z >= y';
-- CASE 運算式 (薪資調整)
UPDATE employee
SET e_wage = CASE
WHEN job_level = '1' THEN e_wage * 1.08
WHEN job_level = '2' THEN e_wage * 1.07
WHEN job_level = '3' THEN e_wage * 1.06
ELSE e_wage * 1.05
END;
-- WHILE 迴圈
DECLARE @i INT = 1;
WHILE @i <= 10
BEGIN
PRINT @i;
SET @i = @i + 1;
IF @i = 5 CONTINUE; -- 跳過本輪剩餘
IF @i = 8 BREAK; -- 跳出迴圈
END;
八、常用系統函數速查
| 分類 | 函數 | 用途 |
| 字串 | SUBSTRING, REPLACE, LTRIM/RTRIM, UPPER/LOWER, LEN | 字串擷取/替換/修剪/大小寫/長度 |
| 日期 | GETDATE, DATEADD, DATEDIFF, DATEPART, DATENAME, CONVERT | 取得/運算/格式化日期時間 |
| 數學 | ROUND, CEILING, FLOOR, ABS, POWER, SQRT, RAND | 四捨五入/絕對值/冪/隨機數 |
| 系統 | @@IDENTITY, @@ROWCOUNT, @@ERROR, @@TRANCOUNT, DB_NAME(), USER_NAME() | 最後身分值/影響列數/錯誤碼/交易層級/資料庫/使用者名稱 |