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

MySQL 基礎教程(一):資料庫與資料表的創建、修改、刪除全攻略

     編輯:MySQL 綜合教學

MySQL 基礎教程(一):資料庫與資料表的創建、修改、刪除全攻略

掌握 DDL (Data Definition Language) 是操作 MySQL 的基石。本文以 MariaDB/MySQL 為例,系統講解資料庫與資料表的全生命週期管理命令,含實戰輸出解讀與避坑指南。

一、資料庫操作

-- 1. 查看所有資料庫
SHOW DATABASES;

-- 2. 創建資料庫 (指定字符集,推薦 utf8mb4)
CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

-- 3. 避免重複報錯
CREATE DATABASE IF NOT EXISTS mydb;

-- 4. 進入資料庫
USE mydb;

-- 5. 刪除資料庫 (謹慎!)
DROP DATABASE mydb;

二、資料表操作

1. 創建表

-- 基礎語法
CREATE TABLE users (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(30) NOT NULL UNIQUE,
  email VARCHAR(100) NOT NULL,
  age TINYINT UNSIGNED DEFAULT 0,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 關鍵點解析:
-- INT UNSIGNED: 非負整數,擴大正數範圍
-- AUTO_INCREMENT: 自增主鍵
-- PRIMARY KEY: 主鍵約束 (隱含 NOT NULL + UNIQUE)
-- UNIQUE: 唯一約束
-- DEFAULT: 預設值
-- ENGINE=InnoDB: 支援事務、行鎖、外鍵
-- CHARSET=utf8mb4: 支援 Emoji 完整 Unicode

2. 查看表結構

-- 方法一:DESC / DESCRIBE (簡略)
DESC users;

-- 方法二:SHOW CREATE TABLE (完整建表語句,含約束名、引擎、字符集)
SHOW CREATE TABLE users\G  -- \G 垂直顯示,適合寬表

3. 修改表結構 (ALTER TABLE)

-- 新增欄位
ALTER TABLE users ADD COLUMN phone VARCHAR(11) AFTER email;
ALTER TABLE users ADD COLUMN status TINYINT DEFAULT 1 FIRST;  -- FIRST 放最前

-- 刪除欄位
ALTER TABLE users DROP COLUMN phone;

-- 修改欄位名 + 類型 (CHANGE 需指定舊名新名)
ALTER TABLE users CHANGE COLUMN username user_name VARCHAR(50) NOT NULL;

-- 僅修改類型/屬性 (MODIFY)
ALTER TABLE users MODIFY COLUMN age SMALLINT UNSIGNED DEFAULT 0;

-- 重命名表
ALTER TABLE users RENAME TO app_users;
-- 或
RENAME TABLE app_users TO users;

4. 複製表 (結構/數據)

-- 僅複製結構 (含索引、約束、引擎、字符集)
CREATE TABLE users_backup LIKE users;

-- 複製結構 + 數據
CREATE TABLE users_copy AS SELECT * FROM users;
-- 可加 WHERE 條件篩選數據
CREATE TABLE active_users AS SELECT * FROM users WHERE status = 1;

5. 刪除表

DROP TABLE users;
DROP TABLE IF EXISTS users;  -- 安全寫法

三、常見約束類型速查

約束關鍵字說明
主鍵PRIMARY KEY唯一標識行,隱含 NOT NULL + UNIQUE,一表僅一個
外鍵FOREIGN KEY引用父表主鍵/唯一鍵,需 InnoDB 支援
唯一UNIQUE值不可重複,允許多個 NULL
非空NOT NULL禁止插入 NULL
預設值DEFAULTINSERT 未指定時自動填充
自增AUTO_INCREMENT整數主鍵自動遞增

四、實戰避坑指南

  1. 字符集統一:庫、表、連接、應用層全鏈路使用 utf8mb4,避免亂碼。
  2. 主鍵設計:業務無關的自增整數 (或 BIGINT) 最佳,避免 UUID 導致頁分裂。
  3. 修改大表結構:使用 pt-online-schema-change 或 MySQL 8.0+ 瞬時 DDL,避免鎖表阻塞。
  4. 外鍵謹慎:高併發場景建議應用層維護關聯,資料庫層僅建索引不建 FK。
  5. 備份先行:任何 DDL 變更前必須備份或快照,生產環境走變更流程。

熟練掌握上述 DDL 操作,並理解每個約束與選項的深層含義,是成為優秀後端工程師與 DBA 的必修課。

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