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

MySQL 數據庫操作命令大全:庫/表/數據/備份/權限一網打盡

     編輯:MySQL 綜合教學

MySQL 數據庫操作命令大全:庫/表/數據/備份/權限一網打盡

MySQL 不區分大小寫,關鍵字建議大寫提高可讀性。本文匯總 DDL、DML、DCL、備份恢復、元數據查詢等高頻命令,適合開發、運維隨時查閱。

一、庫級操作

操作命令範例
創建庫CREATE DATABASE [IF NOT EXISTS] db_name [CHARSET charset] [COLLATE collation];CREATE DATABASE thinkgamer CHARSET utf8mb4;
刪除庫DROP DATABASE [IF EXISTS] db_name;DROP DATABASE thinkgamer;
切換庫USE db_name;USE thinkgamer;
查看當前庫SELECT DATABASE();—
顯示所有庫SHOW DATABASES;—
查看庫創建語句SHOW CREATE DATABASE db_name;—

二、表級操作(DDL)

創建表


CREATE TABLE cyan (
    學號 INT(3) NOT NULL PRIMARY KEY,
    姓名 CHAR(3) NOT NULL,
    性別 CHAR(1) NOT NULL DEFAULT '1',
    愛好 CHAR(20)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  • NOT NULL 禁止空值
  • PRIMARY KEY 主鍵(隱含 NOT NULL + UNIQUE)
  • AUTO_INCREMENT 自增(僅整數類型)
  • DEFAULT 默認值
  • ENGINE=InnoDB 顯式指定引擎

修改表結構

操作命令範例
添加列ALTER TABLE tbl ADD col_def [FIRST|AFTER col_name];ALTER TABLE cyan ADD 愛好 CHAR(20);
修改列定義ALTER TABLE tbl MODIFY col_def;ALTER TABLE cyan MODIFY 姓名 VARCHAR(20);
重命名列ALTER TABLE tbl CHANGE old_col new_col col_def;ALTER TABLE cyan CHANGE 性別 gender CHAR(1);
刪除列ALTER TABLE tbl DROP COLUMN col_name;ALTER TABLE cyan DROP COLUMN 愛好;
添加主鍵ALTER TABLE tbl ADD PRIMARY KEY (col);ALTER TABLE cyan ADD PRIMARY KEY (學號);
添加唯一索引ALTER TABLE tbl ADD UNIQUE INDEX idx_name (col);ALTER TABLE cyan ADD UNIQUE INDEX uk_name (姓名);
添加普通索引ALTER TABLE tbl ADD INDEX idx_name (col);ALTER TABLE cyan ADD INDEX idx_gender (性別);
刪除索引ALTER TABLE tbl DROP INDEX idx_name;ALTER TABLE cyan DROP INDEX idx_gender;
重命名表RENAME TABLE old_name TO new_name;RENAME TABLE cyan TO you_class;
刪除表DROP TABLE [IF EXISTS] tbl_name;DROP TABLE cyan;
清空表(保留結構)TRUNCATE TABLE tbl_name;TRUNCATE TABLE cyan;

三、數據操作(DML)

插入


-- 全列插入
INSERT INTO cyan VALUES (1, 'Tom', '1', '籃球');
-- 指定列插入
INSERT INTO cyan (學號, 姓名) VALUES (2, 'Jerry');
-- 批次插入
INSERT INTO cyan (學號, 姓名) VALUES (3, 'Alice'), (4, 'Bob');
-- 插入查詢結果
INSERT INTO cyan (學號, 姓名) SELECT id, name FROM temp_students;

查詢


-- 全列
SELECT * FROM cyan;
-- 指定列
SELECT 學號, 姓名 FROM cyan;
-- 條件過濾
SELECT * FROM cyan WHERE 性別 = '1';
-- 分頁(MySQL 8.0+ 推薦游標分頁)
SELECT * FROM cyan ORDER BY 學號 LIMIT 10 OFFSET 20;
-- 聚合
SELECT 性別, COUNT(*) FROM cyan GROUP BY 性別;

更新


-- 單表
UPDATE cyan SET 姓名 = 'Mary', 愛好 = '羽毛球' WHERE 學號 = 1;
-- 多表關聯更新
UPDATE t1 JOIN t2 ON t1.id = t2.id SET t1.name = 'A', t2.name = 'B' WHERE t1.id = 1;

刪除


-- 條件刪除
DELETE FROM cyan WHERE 學號 = 1;
-- 多表關聯刪除
DELETE t1, t2 FROM t1 JOIN t2 ON t1.id = t2.id JOIN t3 ON t2.id = t3.id WHERE t1.id = 1;

四、備份與恢復

場景命令
整庫備份mysqldump -u user -p db_name > backup.sql
單表備份mysqldump -u user -p db_name table_name > backup.sql
只備份結構(無數據)mysqldump -u user -p -d --add-drop-table db_name > struct.sql
指定字符集導出mysqldump -u user -p --default-character-set=utf8mb4 --set-charset=gbk --skip-opt db_name > out.sql
恢復(命令行)mysql -u user -p db_name < backup.sql
恢復(客戶端內)SOURCE /path/backup.sql;

五、權限管理(DCL)


-- 創建用戶
CREATE USER 'app'@'%' IDENTIFIED BY 'strongpass';
-- 授權
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app'@'%';
GRANT ALL PRIVILEGES ON mydb.* TO 'admin'@'%' WITH GRANT OPTION;
-- 查看權限
SHOW GRANTS FOR 'app'@'%';
-- 回收權限
REVOKE INSERT ON mydb.* FROM 'app'@'%';
-- 修改密碼
ALTER USER 'app'@'%' IDENTIFIED BY 'newpass';
-- 刪除用戶
DROP USER 'app'@'%';

六、元數據與狀態查詢

目的命令
當前用戶SELECT USER();
版本號SELECT VERSION(); 或 SELECT @@version;
表狀態SHOW TABLE STATUS [LIKE 'pattern'];
表結構DESC tbl_name; 或 SHOW COLUMNS FROM tbl_name;
建表語句SHOW CREATE TABLE tbl_name\G
索引信息SHOW INDEX FROM tbl_name;
進程列表SHOW PROCESSLIST; 或 SHOW FULL PROCESSLIST;
全局狀態SHOW GLOBAL STATUS LIKE 'pattern';
全局變量SHOW GLOBAL VARIABLES LIKE 'pattern';
字符集支持SHOW CHARACTER SET;
校對規則SHOW COLLATION;
默認字符集SHOW VARIABLES LIKE 'character_set_%';

七、實用技巧

  1. \G 結尾垂直顯示結果,適合寬表。
  2. tee /path/log.txt 記錄會話輸出;notee 關閉。
  3. pager less -SFX 設置分頁器,長結果可左右滾動。
  4. 批量執行 SQL 文件:mysql -u user -p db_name < batch.sql。

收藏此命令大全,日常開發運維無需東查西找。

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