理論結合實戰,才能真正掌握 MySQL DDL 操作。本文提供從建立資料庫、建立資料表(含主鍵自增、指定起始值)、查看結構、字元集管理到修改字元集的完整操作範例,可直接用於專案初始化腳本參考。
-- 1. 建立資料庫,指定字元集為 gbk(中文環境常用)
CREATE DATABASE tour CHARACTER SET gbk;
-- 2. 切換至該資料庫
USE tour;
CREATE TABLE EMB_T_Employee (
emb_c_operatorID INT NOT NULL,
emb_c_empCode VARCHAR(255) NOT NULL,
emb_c_gender INT NOT NULL,
emb_c_email VARCHAR(255) NOT NULL,
emb_c_empMPhone VARCHAR(255) NOT NULL,
emb_c_empTel VARCHAR(255),
emb_c_empZipCode VARCHAR(50),
emb_c_empPID VARCHAR(50),
emb_c_empBirthDate DATETIME,
emb_c_empAddress VARCHAR(512),
emb_c_regDate DATETIME NOT NULL,
emb_c_displayOrder INT NOT NULL,
PRIMARY KEY (emb_c_operatorID)
) ENGINE=INNODB DEFAULT CHARSET=gbk;
CREATE TABLE emb_t_dictBusType (
emb_c_busTypeID INT NOT NULL AUTO_INCREMENT,
emb_c_busTypeEnName VARCHAR(255) NOT NULL,
emb_c_busTypeZhName VARCHAR(255) NOT NULL,
PRIMARY KEY (emb_c_busTypeID)
) ENGINE=INNODB DEFAULT CHARSET=gbk;
CREATE TABLE emb_t_dictBusType_v2 (
emb_c_busTypeID INT NOT NULL AUTO_INCREMENT,
emb_c_busTypeEnName VARCHAR(255) NOT NULL,
emb_c_busTypeZhName VARCHAR(255) NOT NULL,
PRIMARY KEY (emb_c_busTypeID)
) ENGINE=INNODB AUTO_INCREMENT=1001 DEFAULT CHARSET=gbk;
| 用途 | 指令 | 說明 |
|---|---|---|
| 查看所有資料庫 | SHOW DATABASES; | 列出伺服器上所有資料庫 |
| 查看當前資料庫所有表 | SHOW TABLES; | 需先 USE db_name |
| 查看表結構 | DESC emb_t_dictBusType; | 等同 SHOW COLUMNS FROM emb_t_dictBusType; |
| 查看排序規則變數 | SHOW VARIABLES LIKE 'collation_%'; | 檢視伺服器/資料庫/連線層級排序規則 |
| 查看字元集變數 | SHOW VARIABLES LIKE 'character_set_%'; | 檢視各層級字元集設定 |
| 修改資料庫字元集 | ALTER DATABASE tour CHARACTER SET utf8; | 僅影響後續新建表,現有表需單獨轉換 |
utf8mb4),避免亂碼。NOT NULL,並給預設值(DEFAULT)。DECIMAL(10,2),禁止用 FLOAT/DOUBLE。DATETIME 或 TIMESTAMP,避免用 VARCHAR 存日期。users)、欄位小寫下劃線(user_name)、索引 idx_表_欄、外鍵 fk_表_關聯表。-- 建立資料庫
CREATE DATABASE IF NOT EXISTS myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE myapp;
-- 建立用戶表
CREATE TABLE IF NOT EXISTS users (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
username VARCHAR(50) NOT NULL COMMENT '用戶名',
email VARCHAR(100) NOT NULL COMMENT '郵箱',
password_hash CHAR(60) NOT NULL COMMENT '密碼雜湊',
status TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '狀態 1啟用 0停用',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間',
PRIMARY KEY (id),
UNIQUE KEY uk_username (username),
UNIQUE KEY uk_email (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用戶表';
掌握這些實戰範例,您就能快速建立符合生產環境規範的資料庫結構,為後續業務開發奠定堅實基礎。