首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 基礎操作全圖譜:庫、表、數據 CRUD 從入門到精通(含實戰代碼)

     編輯:MySQL 資料庫相關知識

一、數據庫級操作

1.1 創建數據庫

CREATE DATABASE `db_name` 
  CHARACTER SET utf8mb4 
  COLLATE utf8mb4_general_ci;
  • 標識符命名:見名知意、下劃線分隔、避免純數字/關鍵字
  • 反引號 ` 包裹標識符,防關鍵字衝突
  • 推薦 utf8mb4 完整支援 Emoji

1.2 查看數據庫

SHOW DATABASES;
SHOW CREATE DATABASE `db_name`;  -- 查看建庫語句

1.3 刪除數據庫

DROP DATABASE IF EXISTS `db_name`;

1.4 修改數據庫屬性

ALTER DATABASE `db_name` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

重命名庫無直連命令,變通方案:

  1. 導出數據 → 新建庫 → 導入 → 刪舊庫
  2. RENAME TABLE old_db.tbl TO new_db.tbl; 逐表移動(原子操作,極快)

二、表級操作

先切換默認庫:USE `db_name`;

2.1 創建表

CREATE TABLE `class_info` (
  `class_id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '班級ID',
  `class_name` VARCHAR(50) NOT NULL COMMENT '班級名稱',
  `start_date` DATE NOT NULL COMMENT '開班日期',
  PRIMARY KEY (`class_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='班級信息表';

2.2 查看表

SHOW TABLES [LIKE 'pattern'];
SHOW CREATE TABLE `tbl_name`;  -- \G 顯示更清晰
DESC `tbl_name`;  -- 或 DESCRIBE

2.3 刪除表

DROP TABLE IF EXISTS `tbl_name`;

2.4 修改表結構

-- 重命名表
RENAME TABLE `old_name` TO `new_name`;
-- 支援多表同步改名、跨庫移動

-- 增加欄位
ALTER TABLE `tbl_name` ADD `new_col` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '新欄位';

-- 刪除欄位
ALTER TABLE `tbl_name` DROP `old_col`;

-- 修改欄位定義(類型/屬性/預設值)
ALTER TABLE `tbl_name` MODIFY `col_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '修改後';

-- 重命名欄位(含定義)
ALTER TABLE `tbl_name` CHANGE `old_col` `new_col` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '重命名';

-- 修改表選項(引擎/字符集/註釋)
ALTER TABLE `tbl_name` ENGINE=InnoDB COMMENT='新註釋';

三、數據級操作 (CRUD)

3.1 插入數據 (INSERT)

-- 全欄位插入(須按表定義順序)
INSERT INTO `class_info` VALUES (NULL, 'Java基礎班', '2024-01-15');

-- 指定欄位插入(推薦,順序無關、擴展性強)
INSERT INTO `class_info` (`class_name`, `start_date`) VALUES ('Python進階班', '2024-02-01');

-- 批量插入
INSERT INTO `class_info` (`class_name`, `start_date`) VALUES 
  ('Go微服務班', '2024-03-01'),
  ('Rust系統班', '2024-04-01');

3.2 查詢數據 (SELECT)

-- 全欄位
SELECT * FROM `class_info`;

-- 指定欄位 + 條件
SELECT `class_id`, `class_name` FROM `class_info` WHERE `start_date` > '2024-01-01';

-- 模糊查詢
SELECT * FROM `class_info` WHERE `class_name` LIKE '%進階%';

3.3 更新數據 (UPDATE)

UPDATE `class_info` 
SET `class_name` = 'Java就業班', `start_date` = '2024-01-20'
WHERE `class_id` = 1;

鐵律: 生產環境 **必帶 WHERE 條件**,防誤更新全表。

3.4 刪除數據 (DELETE)

DELETE FROM `class_info` WHERE `class_id` = 1;

鐵律: 嚴格條件,或先 SELECT 確認受影響行再執行。

四、進階技巧補充

  • 表前綴隔離: 多應用共庫時,app1_user、app2_user 避免衝突
  • 事務包裹 DML: 關鍵業務 START TRANSACTION; ... COMMIT/ROLLBACK;
  • 備份導出: mysqldump -u root -p db_name tbl_name > tbl.sql
  • 導入執行: mysql -u root -p db_name < tbl.sql

總結

MySQL 基礎操作看似簡單,**規範命名、顯式欄位、嚴格條件、事務保護** 才是專業與業餘的分水嶺。建議將本文作為團隊《MySQL 開發規範》附件,Code Review 時對照檢查。

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