首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MariaDB/MySQL 數據庫創建、刪除、選擇與數據類型完全指南

     編輯:MySQL 綜合教學

MariaDB/MySQL 數據庫創建、刪除、選擇與數據類型完全指南

MariaDB 作為 MySQL 的社區分支,完全兼容 MySQL 協議與 SQL 語法,廣泛替代 MySQL 於 Linux 發行版默認倉庫。本文系統整理庫級 DDL 操作、數據類型完整對照表、存儲引擎差異,為遷移與新項目選型提供參考。

一、 MariaDB 簡介與核心差異

二、 庫級 DDL 操作實戰

1. 創建數據庫

-- 方式一:mysqladmin (交互確認)
mysqladmin -u root -p drop testdb1

-- 方式二:SQL
DROP DATABASE `testdb2`;

3. 選擇數據庫與查看表

  
維度MySQLMariaDB
授權GPL (Oracle 擁有)GPL/LGPL (社區驅動)
默認存儲引擎InnoDBXtraDB (InnoDB 增強分支) / InnoDB
新增引擎—ColumnStore (列式)、Spider (分片)、Connect (異構數據源)
功能增強—窗口函數更早、CHECK 約束更早、JSON 函數豐富、序列對象
兼容性基準协议、API、SQL 99% 兼容,可直接替換
類型存儲字節有符號範圍無符號範圍別名/備註
TINYINT1-128 ~ 1270 ~ 255BOOL/BOOLEAN = TINYINT(1)
SMALLINT2-32,768 ~ 32,7670 ~ 65,535
MEDIUMINT3-8,388,608 ~ 8,388,6070 ~ 16,777,215
INT / INTEGER4-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295主鍵首選
BIGINT8-9.22e18 ~ 9.22e180 ~ 1.84e19分布式 ID、毫秒時間戳
FLOAT4±3.4e38 (7 位精度)—單精度,不精確
DOUBLE8±1.7e308 (15 位精度)—雙精度,不精確
DECIMAL(M,D) / NUMERICM+2 或 D+2取決於 M,D—精確小數,**金額必用**
BIT(M)≈ (M+7)/8位字段—M=1 可作布爾

2. 日期時間類型

類型字節範圍格式特殊行為
DATE31000-01-01 ~ 9999-12-31YYYY-MM-DD
TIME3-838:59:59 ~ 838:59:59HH:MM:SS可表示持續時間
YEAR11901 ~ 2155YYYY2 位年份已棄用
DATETIME81000-01-01 00:00:00 ~ 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS**推薦**,無時區、範圍大
TIMESTAMP41970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTCYYYYMMDDHHMMSS時區敏感、自動更新 (可關閉)、2038 年問題

3. 字符串類型

類型最大長度存儲特點適用場景
CHAR(N)255 字符定長,右補空格,讀取快MD5、UUID、手機號、代碼值
VARCHAR(N)65,535 字符 (受行大小限制)變長,1-2 字節存長度不定長文本:名稱、地址、郵箱
TINYBLOB/TEXT255 字節/字符二進制/文本極短二進制/文本
BLOB/TEXT65,535 字節/字符二進制/文本短文檔、圖片縮略圖
MEDIUMBLOB/TEXT16,777,215 字節/字符二進制/文本中等文檔、圖片
LONGBLOB/TEXT4,294,967,295 字節/字符二進制/文本大文檔、視頻、大圖片
ENUM65,535 個元素枚舉,存儲索引 (1-2 字節)固定集合:狀態、類型、性別
SET64 個元素集合,存儲位掩碼多選標籤、權限位圖

4. 二進制類型差異

  • `BINARY` / `VARBINARY`:按字節比較,無字符集,大小寫敏感,適用存儲加密數據、Hash 值、文件指紋
  • `BLOB` 系列:二進制大對象,不進行字符集轉換,排序按字節值

四、 類型選型決策樹

  1. 整數 → 能用 `TINYINT/SMALLINT/MEDIUMINT` 就不用 `INT/BIGINT`
  2. 小數 → **必用 `DECIMAL`**,嚴禁 `FLOAT/DOUBLE` 存金額/比率
  3. 日期 → **首選 `DATETIME`**,除非明確需要時區轉換且在 2038 年前
  4. 定長字符 → `CHAR` (MD5/UUID/手機號)
  5. 不定長字符 → `VARCHAR` (長度業務實際最大值 + 20% 余量)
  6. 大文本/二進制 → **外存 (對象存儲/文件系統) + 數據庫存 URL**,超大字段污染 Buffer Pool
  7. 固定集合單選 → `ENUM` (內部存數字,極省空間)
  8. 固定集合多選 → `SET` 或 關聯表 (更規範、可擴展)

MariaDB/MySQL 數據類型體系龐大而精密,**選型原則始終是:足夠用、越小越好、語義精確、拒絕浮點數存金額、大字段外存**》。掌握本文完整對照表與決策樹,能在建表、變更、遷移、異構同步等場景中做出最優類型選擇,為數據質量與查詢性能奠定堅實基礎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved