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

MySQL 建立資料庫與資料表完整實戰範例

     編輯:MySQL 綜合教學

MySQL 建立資料庫與資料表完整實戰範例

理論結合實戰,才能真正掌握 MySQL DDL 操作。本文提供從建立資料庫、建立資料表(含主鍵自增、指定起始值)、查看結構、字元集管理到修改字元集的完整操作範例,可直接用於專案初始化腳本參考。

一、建立資料庫與切換上下文

-- 1. 建立資料庫,指定字元集為 gbk(中文環境常用)
CREATE DATABASE tour CHARACTER SET gbk;

-- 2. 切換至該資料庫
USE tour;

二、建立資料表三種常見場景

場景 1:無自增主鍵,手動指定 ID

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;

場景 2:主鍵自增,不指定起始值(預設從 1 開始)

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;

場景 3:主鍵自增,指定起始值(如從 1001 開始)

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;僅影響後續新建表,現有表需單獨轉換

四、實戰提示與避坑指南

  1. 字元集一致性:資料庫、資料表、連線三層字元集建議統一(推薦 utf8mb4),避免亂碼。
  2. 引擎選擇:InnoDB 支援交易、行鎖、外鍵,為預設推薦引擎;MyISAM 僅適合唯讀/全文搜尋場景。
  3. 自增起始值規劃:分庫分表、資料遷移合併時,預設不同起始值(如 1001、2001、3001)可避免主鍵衝突。
  4. 欄位定義規範:
    • 必填欄位加 NOT NULL,並給預設值(DEFAULT)。
    • 字串長度按實際業務最大長度設定,避免過大浪費空間。
    • 金額類欄位用 DECIMAL(10,2),禁止用 FLOAT/DOUBLE。
    • 時間類統一用 DATETIME 或 TIMESTAMP,避免用 VARCHAR 存日期。
  5. 命名規範:表名小寫複數(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='用戶表';

掌握這些實戰範例,您就能快速建立符合生產環境規範的資料庫結構,為後續業務開發奠定堅實基礎。

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