| 類別 | 全稱 | 常用指令 | 用途 |
|---|---|---|---|
| DDL | Data Definition Language 資料定義語言 | CREATE, ALTER, DROP, DECLARE | 定義與管理資料庫物件結構 |
| DML | Data Manipulation Language 資料操縱語言 | SELECT, INSERT, UPDATE, DELETE | 操作資料表中的資料內容 |
| DCL | Data Control Language 資料控制語言 | GRANT, REVOKE, COMMIT, ROLLBACK | 權限控制與交易管理 |
-- 建立資料庫
CREATE DATABASE database_name;
-- 刪除資料庫
DROP DATABASE dbname;
-- 備份 SQL Server 資料庫
USE master;
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat';
BACKUP DATABASE pubs TO testBack;
-- 建立新資料表
CREATE TABLE tabname (
col1 type1 [NOT NULL] [PRIMARY KEY],
col2 type2 [NOT NULL],
...
);
-- 依現有資料表結構建立新表
CREATE TABLE tab_new LIKE tab_old; -- 僅複製結構
CREATE TABLE tab_new AS SELECT col1, col2 FROM tab_old DEFINITION ONLY; -- 結構+可選資料
-- 刪除資料表
DROP TABLE tabname;
-- 新增欄位
ALTER TABLE tabname ADD COLUMN col type;
-- 注意:欄位新增後無法刪除(部份 DBMS 限制),資料型別通常不可變更,僅能擴充 VARCHAR 長度。
-- 主鍵管理
ALTER TABLE tabname ADD PRIMARY KEY (col);
ALTER TABLE tabname DROP PRIMARY KEY (col);
-- 索引管理
CREATE [UNIQUE] INDEX idxname ON tabname (col...);
DROP INDEX idxname;
-- 索引不可直接修改,需刪除後重建。
-- 檢視表管理
CREATE VIEW viewname AS SELECT statement;
DROP VIEW viewname;
-- 查詢
SELECT * FROM table1 WHERE condition;
-- 新增
INSERT INTO table1 (field1, field2) VALUES (value1, value2);
-- 刪除
DELETE FROM table1 WHERE condition;
-- 更新
UPDATE table1 SET field1 = value1 WHERE condition;
-- 模糊查詢(LIKE 語法)
SELECT * FROM table1 WHERE field1 LIKE '%value1%';
-- 排序
SELECT * FROM table1 ORDER BY field1, field2 [DESC];
-- 統計函數
SELECT COUNT(*) AS totalcount FROM table1;
SELECT SUM(field1) AS sum_value FROM table1;
-- 授權
GRANT SELECT, INSERT ON table1 TO user1;
-- 收回權限
REVOKE SELECT ON table1 FROM user1;
-- 交易控制
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT; -- 或 ROLLBACK 回滾