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

MySQL 命令列入門實戰:連線、建庫建表、增刪改查與批次執行

     編輯:MySQL 綜合教學

MySQL 命令列入門實戰:連線、建庫建表、增刪改查與批次執行

針對初學者,本文從零開始介紹 MySQL 命令列基本操作,涵蓋連線、資料庫/表管理、資料增刪改查、批次執行、匯入匯出等核心技能,附實戰範例可直接複製執行。

1. 連線與退出

# 連線本機(無密碼)
mysql -u root -p
# 輸入密碼後進入 mysql> 提示符

# 連線指定資料庫
mysql -u root -p mydb

# 退出
mysql> EXIT;
# 或 QUIT、\q、Ctrl+D

2. 資料庫操作

# 顯示所有資料庫
SHOW DATABASES;

# 建立資料庫(指定字元集)
CREATE DATABASE `school` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

# 切換資料庫
USE `school`;

# 刪除資料庫
DROP DATABASE `school`;

3. 資料表操作

# 建立表
CREATE TABLE `teacher` (
  `id` INT(3) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `name` CHAR(10) NOT NULL,
  `address` VARCHAR(50) DEFAULT '深圳',
  `birth` DATE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

# 顯示所有表
SHOW TABLES;

# 查看表結構
DESC `teacher`;  -- 或 SHOW COLUMNS FROM `teacher`

# 刪除表
DROP TABLE `teacher`;

4. 資料增刪改查 (CRUD)

-- 插入 (INSERT)
INSERT INTO `teacher` (`name`, `address`, `birth`) VALUES ('glchengang', '深圳一中', '1976-10-10');
INSERT INTO `teacher` (`name`, `address`, `birth`) VALUES ('jack', '深圳一中', '1975-12-23');
-- 批次插入
INSERT INTO `teacher` (`name`, `address`, `birth`) VALUES 
  ('alice', '深圳二中', '1980-01-01'),
  ('bob', '深圳三中', '1985-05-05');

-- 查詢 (SELECT)
SELECT * FROM `teacher`;
SELECT `id`, `name` FROM `teacher` WHERE `address` = '深圳一中';
SELECT * FROM `teacher` ORDER BY `birth` DESC LIMIT 5;

-- 更新 (UPDATE)
UPDATE `teacher` SET `name` = 'GL Chengang' WHERE `name` = 'glchengang';

-- 刪除 (DELETE)
DELETE FROM `teacher` WHERE `id` = 2;
-- 清空表(保留結構、重置自增)
TRUNCATE TABLE `teacher`;

5. 批次執行 SQL 檔案

# 準備 school.sql(去掉註釋)
DROP DATABASE IF EXISTS `school`;
CREATE DATABASE `school` CHARACTER SET utf8mb4;
USE `school`;
CREATE TABLE `teacher` (
  `id` INT(3) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `name` CHAR(10) NOT NULL,
  `address` VARCHAR(50) DEFAULT '深圳',
  `birth` DATE
);
INSERT INTO `teacher` (`name`, `address`, `birth`) VALUES ('glchengang', '深圳一中', '1976-10-10');
INSERT INTO `teacher` (`name`, `address`, `birth`) VALUES ('jack', '深圳一中', '1975-12-23');

# 方式 1:重導向(非互動)
mysql -u root -p < school.sql

# 方式 2:SOURCE 指令(互動模式)
mysql> SOURCE /path/to/school.sql;
# 或
mysql> \. /path/to/school.sql

6. 文字檔匯入

# data.txt(Tab 分隔,NULL 用 \N)
3	rose	深圳二中	1976-10-10
4	mike	深圳一中	1975-12-23

LOAD DATA LOCAL INFILE '/path/to/data.txt' 
INTO TABLE `teacher` 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\n' 
(`id`, `name`, `address`, `birth`);

7. 備份與還原

# 匯出 (mysqldump)
mysqldump -u root -p --single-transaction `school` > school_backup_$(date +%F).sql
# 壓縮
mysqldump -u root -p `school` | gzip > school_backup_$(date +%F).sql.gz

# 還原
mysql -u root -p `school` < school_backup.sql
# 壓縮檔還原
gunzip -c school_backup.sql.gz | mysql -u root -p `school`

8. 互動模式小技巧

  • 分號結尾:SELECT * FROM t; 才會執行,可跨行輸入。
  • 取消當前指令:\c 清除緩衝區。
  • 上下鍵歷史:支援歷史指令調用(需 readline 庫)。
  • 提示符說明:
    • mysql> 就緒
    • -> 續行(未遇分號)
    • '> 單引號字串未閉合
    • "> 雙引號字串未閉合
    • `> 反引號識別碼未閉合
    • /*> 註釋未閉合

9. Windows 環境特有

# CMD 執行
mysql -u root -p

# 匯出
mysqldump -u root -p --opt school > school.sql

# 匯入
mysql -u root -p school < school.sql
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved