CREATE, ALTER, DROP, DECLARESELECT, DELETE, UPDATE, INSERTGRANT, REVOKE, COMMIT, ROLLBACK| 功能 | 語法範例 |
|---|---|
| 建立資料庫 | CREATE DATABASE db_name |
| 刪除資料庫 | DROP DATABASE dbname |
| 備份資料庫 | BACKUP DATABASE pubs TO testBack |
| 建立資料表 | CREATE TABLE tab(col1 type1 PRIMARY KEY, col2 type2...) |
| 複製結構 | SELECT * INTO b FROM a WHERE 1<>1 或 SELECT TOP 0 * INTO b FROM a |
| 複製資料 | INSERT INTO b(a,b,c) SELECT d,e,f FROM a |
| 加入欄位 | ALTER TABLE tab ADD COLUMN col type |
| 建立索引 | CREATE [UNIQUE] INDEX idx ON tab(col...) |
| 建立檢視表 | CREATE VIEW v AS SELECT ... |
UNION / UNION ALL:合併結果集,前者去重。EXCEPT / EXCEPT ALL:差集運算。INTERSECT / INTERSECT ALL:交集運算。-- LEFT OUTER JOIN
SELECT a.a, a.b, b.c FROM a LEFT OUTER JOIN b ON a.a = b.c;
-- RIGHT OUTER JOIN / FULL OUTER JOIN 同理
SELECT TOP 10 b.* FROM (SELECT TOP 20 pk, sort FROM t ORDER BY sort DESC) a, t b WHERE b.pk = a.pk ORDER BY a.sortSELECT TOP 10 * FROM t ORDER BY NEWID()DELETE FROM t WHERE id NOT IN (SELECT MAX(id) FROM t GROUP BY col1,col2...)SELECT * FROM t ta WHERE a = (SELECT MAX(a) FROM t tb WHERE tb.b = ta.b)EXEC sp_executesql N'SELECT @c=COUNT(*) FROM t', N'@c INT OUTPUT', @cnt OUTPUTSELECT type, SUM(CASE vender WHEN 'A' THEN pcs ELSE 0 END)... FROM t GROUP BY typeSELECT TOP 10 * FROM t ORDER BY RND(id)SELECT TOP n * FROM t ORDER BY NEWID()SELECT * FROM t ORDER BY RAND() LIMIT nExecute 依查詢與否回傳 Recordset;BeginTrans/CommitTrans/RollbackTrans 實作交易,配合 Errors 集合判斷成敗。