在資料庫中,資料表是核心儲存單元。對資料表的操作可透過三條路徑實現:
CHECK 約束與 DEFAULT 約束
CREATE TABLE:建立資料表,定義欄位、資料類型、可為空、身分識別欄位ALTER TABLE:新增/刪除/修改欄位、新增/移除約束DROP TABLE:刪除資料表結構與資料TRUNCATE TABLE:快速清空資料表(不記錄個別列刪除,效能優於 DELETE)INSERT:新增資料列UPDATE:修改現有資料DELETE:刪除資料列SELECT:查詢資料
| 約束類型 | 用途 | 語法範例 |
|---|---|---|
| PRIMARY KEY | 唯一識別每一列,不允許 NULL | CONSTRAINT PK_Table PRIMARY KEY (Id) |
| FOREIGN KEY | 維護參考完整性 | CONSTRAINT FK_Order_Cust FOREIGN KEY (CustId) REFERENCES Customer(Id) |
| UNIQUE | 確保欄位值唯一(允許一個 NULL) | CONSTRAINT UQ_Email UNIQUE (Email) |
| CHECK | 限定欄位值範圍 | CONSTRAINT CK_Age CHECK (Age >= 18) |
| DEFAULT | 指定預設值 | CreatedDate DATETIME DEFAULT GETDATE() |
最佳實務:新專案請直接使用CHECK約束取代CREATE RULE,使用DEFAULT約束取代CREATE DEFAULT。規則與預設值為舊版相容功能,未來版本可能移除。
ALTER TABLE 修改大型資料表結構時,使用 SWITCH 分區切換避免鎖定NOCHECK),匯入後重新驗證 (CHECK)