選對資料型別,資料庫才穩
正確選擇資料型別會影響資料正確性、儲存空間與查詢效率,也是資料表設計的基本功。
型別對照表
先理解用途,再決定使用哪一種。
| 類別 | 型別 | 適合用途 |
|---|---|---|
| 字串 | CHAR, VARCHAR, TEXT, ENUM | 姓名、標題、描述、狀態 |
| 數值 | TINYINT, INT, BIGINT, DECIMAL, DOUBLE | ID、數量、金額、計算值 |
| 日期時間 | DATE, DATETIME, TIMESTAMP, TIME, YEAR | 建立時間、訂單日期、排程時間 |
| 二進位 | BLOB, VARBINARY | 特殊檔案或二進位資料 |
實務選型建議
避免初學者最常犯的型別錯誤。
商品價格
建議使用 DECIMAL(10,2),避免浮點數精度誤差。
姓名與標題
一般建議使用 VARCHAR,因為長度通常不固定。
建立時間
常用 DATETIME 或 TIMESTAMP 記錄。
布林狀態
可使用 TINYINT(1) 或 BOOLEAN 表示開關狀態。
如果你的欄位會參與排序、篩選、連接或統計,除了型別正確,命名一致也很重要。像 CustomerID、OrderID 這類主外鍵欄位應使用一致規格。
建立資料表範例
把型別設計實際套進表格中。
CREATE TABLE Products (
ProductID INT PRIMARY KEY AUTO_INCREMENT,
ProductName VARCHAR(150) NOT NULL,
Price DECIMAL(10,2) NOT NULL,
Stock INT NOT NULL DEFAULT 0,
Status ENUM('draft','active','inactive') DEFAULT 'draft',
CreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP
);