萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 常用操作命令完整指南:從入門到進階

前言

在日常開發中,MySQL 資料庫的操作無所不在:建立資料庫、管理權限、查詢資料、優化索引等。對於初次接觸命令列操作的開發者來說,記憶這些指令往往是一大挑戰。本文系統整理了 MySQL 最常用的操作命令,涵蓋服務管理、使用者權限、資料庫與資料表操作、備份還原等核心場景,方便日後快速查閱。

一、MySQL 服務基礎操作

服務啟動與停止

# 啟動 MySQL 服務
net start mysql

# 停止 MySQL 服務
net stop mysql

連線與退出

# 連線資料庫
mysql -h 主機地址 -u使用者名稱 -p使用者密碼

# 退出操作
quit;

權限刷新

flush privileges;

二、使用者管理與權限控制

建立使用者

# 一次建立多個使用者
CREATE USER 'user1' IDENTIFIED BY '密碼1', 'user2' IDENTIFIED BY '密碼2';

# 或授權同時建立
GRANT SELECT ON 資料庫.* TO '使用者名稱'@'登入主機' IDENTIFIED BY '密碼';

修改密碼

# 方式一:mysqladmin
mysqladmin -u使用者名稱 -p舊密碼 password 新密碼

# 方式二:直接更新 user 表
UPDATE user SET password=PASSWORD('新密碼') WHERE user='使用者名稱';

權限授予與回收

# 資料庫/資料表層級授權
GRANT ALL ON db_name.table_name TO 'user_name' [IDENTIFIED BY 'password'];

# 設定登入 IP 限制
GRANT ALL PRIVILEGES ON 資料庫.* TO '使用者名稱'@'主機地址' IDENTIFIED BY '密碼' WITH GRANT OPTION;

# 範例:root 可從本機存取所有資料庫
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '1234567890' WITH GRANT OPTION;

# 範例:root 可從任意 IP 存取 mydatabase
GRANT ALL PRIVILEGES ON mydatabase.* TO 'root'@'%' IDENTIFIED BY '1234567890' WITH GRANT OPTION;

# 移除 IP 授權
REVOKE ALL PRIVILEGES ON 資料庫.* FROM '使用者名稱'@'%';
# 或直接刪除 user 表記錄
DELETE FROM user WHERE user='root' AND host='%';

# 刪除使用者
DELETE FROM user WHERE User='使用者名稱' AND Host='主機地址';

三、資料庫操作

# 列出所有資料庫
SHOW DATABASES;

# 使用指定資料庫
USE database_name;

# 建立資料庫
CREATE DATABASE database_name;

# 刪除資料庫
DROP DATABASE database_name;

四、資料表操作

# 列出所有資料表
SHOW TABLES;

# 建立資料表(基本語法)
CREATE TABLE table_name (欄位1 資料型態, 欄位2 資料型態);

# 刪除資料表
DROP TABLE table_name;

# 檢視資料表結構
DESCRIBE table_name;
# 或
SHOW COLUMNS FROM table_name;

# 插入資料
INSERT INTO table_name [(欄位1, 欄位2, ...)] VALUES (值1, 值2, ...);

# 更新資料
UPDATE table_name SET 欄位名='新值' [, 欄位2='新值', ...] [WHERE id=id_num] [ORDER BY 欄位 排序];

# 刪除資料
DELETE FROM table_name;                 -- 清空整張表
DELETE FROM table_name WHERE 條件;       -- 刪除符合條件的資料

# 查詢所有記錄
SELECT * FROM table_name;

# 修改資料表名稱
ALTER TABLE table_name RENAME TO new_table_name;

五、修改資料表結構

# 新增主鍵
ALTER TABLE table_name ADD PRIMARY KEY (col_name);

# 刪除主鍵
ALTER TABLE table_name DROP PRIMARY KEY;

# 新增欄位
ALTER TABLE table_name ADD col_name VARCHAR(20);

# 刪除欄位
ALTER TABLE table_name DROP col_name;

# 修改欄位屬性
ALTER TABLE table_name MODIFY col_name VARCHAR(40) NOT NULL;

# 修改欄位名稱(需指定完整屬性)
ALTER TABLE table_name CHANGE old_col_name new_col_name VARCHAR(40);

# 依現有表結構建立新表(不複製資料)
CREATE TABLE new_table_name LIKE old_table_name;

# 约束與索引相關
-- 主鍵: PRIMARY KEY
-- 唯一性: UNIQUE
-- 非空: NOT NULL
-- 自動遞增: AUTO_INCREMENT
-- 外鍵: FOREIGN KEY ... REFERENCES table_name(col_name)

# 刪除有關聯資料的多張表:設定 foreign key 為 SET NULL

六、資料備份與還原

# 執行外部 SQL 腳本
mysql < extend.sql

# 指定資料庫執行腳本
mysql [資料庫名] < extend.sql

# 匯入資料
LOAD DATA LOCAL INFILE '檔案名' INTO TABLE 資料表名;

# 備份資料庫
mysqldump -h 主機地址 -u 使用者名稱 -p 資料庫名 > dbname_backup.sql

# 還原資料庫
mysqladmin -h 主機地址 -u 使用者名稱 -p create 新資料庫名
mysqldump -h 主機地址 -u 使用者名稱 -p 新資料庫名 < dbname_backup.sql

# 匯出建表指令
mysqladmin -u 使用者名稱 -p -d 資料庫名 > a.sql

# 匯出插入資料 SQL(不含建表指令)
mysqladmin -u 使用者名稱 -p -t 資料庫名 > a.sql

# 匯出純文字資料(需指定 -T 參數)
mysqldump -T 匯出目錄 資料庫名 指定資料表

七、查看資料庫資訊

# 查看版本號
SELECT VERSION();

# 查看當前使用者
SELECT USER();

# 查看當前資料庫
SELECT DATABASE();

小結

掌握這些核心命令,能大幅提升 MySQL 日常運維與開發效率。建議收藏備查,實際操作時請根據具體環境調整參數,特別是權限管理與備份還原操作,務必在測試環境驗證後再應用於生產環境。

copyright © 萬盛學電腦網 all rights reserved