MariaDB 是 MySQL 社區分支,完全相容 MySQL 協議與 SQL 語法。本文整理 DDL 基礎操作與核心資料類型對照表,作為快速查閱手冊。
一、資料庫建立/刪除/選擇
1. 建立資料庫
-- 方式一:mysqladmin(命令列)
mysqladmin -u root -p create testdb1
-- 方式二:SQL
CREATE DATABASE testdb2;
2. 刪除資料庫
-- 方式一:mysqladmin(互動確認)
mysqladmin -u root -p drop testdb1
-- 方式二:SQL
DROP DATABASE testdb2;
3. 選擇資料庫與查看表
USE mydb;
SHOW TABLES;
二、MariaDB/MySQL 核心資料類型對照表
1. 數值型
| 類型 | 大小 | 有符號範圍 | 無符號範圍 | 用途 |
| TINYINT | 1B | -128~127 | 0~255 | 極小整數 |
| SMALLINT | 2B | -32,768~32,767 | 0~65,535 | 小整數 |
| MEDIUMINT | 3B | -8,388,608~8,388,607 | 0~16,777,215 | 中整數 |
| INT/INTEGER | 4B | -2,147,483,648~2,147,483,647 | 0~4,294,967,295 | 標準整數 |
| BIGINT | 8B | -9.22e18~9.22e18 | 0~1.84e19 | 極大整數 |
| FLOAT | 4B | ±3.4e38 | — | 單精度浮點 |
| DOUBLE | 8B | ±1.79e308 | — | 雙精度浮點 |
| DECIMAL(M,D) | M+2/D+2 | 精確小數 | 精確小數 | 金融/精確計算 |
2. 日期時間型
| 類型 | 大小 | 範圍 | 格式 | 用途 |
| DATE | 3B | 1000-01-01 ~ 9999-12-31 | YYYY-MM-DD | 純日期 |
| TIME | 3B | -838:59:59 ~ 838:59:59 | HH:MM:SS | 時間/持續時間 |
| YEAR | 1B | 1901 ~ 2155 | YYYY | 年份 |
| DATETIME | 8B | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 日期時間(無時區) |
| TIMESTAMP | 4B | 1970-01-01 00:00:01 ~ 2038-01-19 03:14:07 | YYYYMMDDHHMMSS | 時間戳(有時區、自動更新) |
3. 字串型
| 類型 | 最大長度 | 用途 |
| CHAR | 255 字符 | 定長,尾部空格保留 |
| VARCHAR | 255 字符(5.0.3+ 65,535) | 變長,尾部空格保留 |
| TINYBLOB/TEXT | 255 B | 極短二進制/文本 |
| BLOB/TEXT | 65,535 B | 短二進制/文本 |
| MEDIUMBLOB/TEXT | 16,777,215 B | 中等二進制/文本 |
| LONGBLOB/TEXT | 4,294,967,295 B | 長二進制/文本 |
| ENUM | 65,535 成員 | 單選枚舉 |
| SET | 64 成員 | 多選集合 |
關鍵差異提醒
CHAR 定長補空格,VARCHAR 變長+1-2B 長度前綴
BINARY/VARBINARY:二進制字串,按字節比較,無字符集
BLOB 二進制大對象,TEXT 文本大對象,4 種長度對應
TIMESTAMP 2038 年問題,長期存儲請用 DATETIME 或 BIGINT 存毫秒時間戳
DECIMAL 精確計算,FLOAT/DOUBLE 近似計算,**金額務必用 DECIMAL**
掌握類型特性,設計精準、高效、可維護的表結構。