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

MySQL 基礎命令大全:從登錄到增刪改查、跨庫查詢、表結構操作

     編輯:MySQL 資料庫相關知識

一、連接與基礎操作

1. 登錄/退出

# 本地登錄
mysql -u root -p
# 遠程登錄
mysql -h 110.110.110.110 -u root -p
# 退出
exit; \q; Ctrl+D

2. 版本查看

mysqladmin -V  # 大寫 V
# mysqladmin  Ver 8.42 Distrib 6.0.4-alpha...

3. 顯示當前用戶/數據庫

SELECT USER();          -- 當前連接用戶
SELECT DATABASE();      -- 當前默認數據庫

二、庫/表結構管理 (DDL)

1. 數據庫操作

SHOW DATABASES;                    -- 列出所有庫
CREATE DATABASE db_name CHARACTER SET utf8mb4;  -- 創建庫 (指定字符集)
USE db_name;                         -- 切換庫
DROP DATABASE db_name;               -- 刪除庫 (慎用!)

2. 表操作

SHOW TABLES;                         -- 列出當前庫所有表
DESC table_name;                     -- 查看表結構 (字段、類型、鍵、默認值)
DESC table_name column_name;         -- 查看單個字段詳情
SHOW CREATE TABLE table_name;        -- 完整建表語句 (含索引、引擎、字符集)

-- 創建表
CREATE TABLE student (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(10) NOT NULL,
  age INT,
  gender CHAR(4),
  address VARCHAR(50),
  phone VARCHAR(11)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 修改表結構
ALTER TABLE student ADD COLUMN education VARCHAR(6);           -- 添加列
ALTER TABLE student MODIFY gender CHAR(10);                    -- 修改列類型
ALTER TABLE student DROP COLUMN address;                       -- 刪除列 (用 DROP COLUMN)
ALTER TABLE student RENAME TO students;                        -- 重命名表

-- 刪除表
TRUNCATE TABLE student;  -- 清空表 (保留結構、重置自增、不可回滾、極快)
DROP TABLE student;      -- 刪除表結構及數據

三、數據操作 (DML)

1. 插入數據 (INSERT)

INSERT INTO student (name, age, gender, phone, education) 
VALUES ('A', 22, '男', '123456', '小學'),
       ('B', 21, '男', '119', '中學'),
       ('C', 23, '男', '110', '高中'),
       ('D', 18, '女', '114', '大學');

-- 中文亂碼時用 N 前綴 (隱式 Unicode) 或確保連接/表字符集為 utf8mb4
INSERT INTO student (name) VALUES (N'中文');

2. 更新數據 (UPDATE)

-- 將以 11 開頭電話的學歷改為大專
UPDATE student SET education='大專' WHERE phone LIKE '11%';

3. 刪除數據 (DELETE)

-- 刪除姓 C 的男生
DELETE FROM student WHERE name LIKE 'C%' AND gender='男';

4. 查詢數據 (SELECT)

-- 基礎查詢
SELECT name, id FROM student WHERE age < 22 AND education='大專';

-- 排序
SELECT name, gender, age FROM student ORDER BY age DESC;

-- 分組聚合
SELECT gender, AVG(age) AS avg_age FROM student GROUP BY gender;

-- 分頁 (MySQL/PostgreSQL/SQLite)
SELECT * FROM student LIMIT 10 OFFSET 20;  -- 第 3 頁,每頁 10 條
-- SQL Server: SELECT TOP 10 * FROM ... (不通用)

-- 跨庫查詢 (當前在 db1,查 db2.table)
SELECT * FROM db2.table_name;

四、聚合函數速查

函數含義
AVG(col)平均值
SUM(col)求和
MAX(col)最大值
MIN(col)最小值
COUNT(col)非 NULL 行數
COUNT(*)總行數 (含 NULL)

五、用戶與權限 (DCL)

-- 查看所有用戶
SELECT User, Host, Password FROM mysql.user;

-- 創建用戶 (5.7+)
CREATE USER 'test'@'localhost' IDENTIFIED BY 'abc';

-- 授權
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'test'@'localhost' IDENTIFIED BY 'abc';
FLUSH PRIVILEGES;

-- 刪除用戶
DROP USER 'test'@'localhost';  -- 5.7+
-- DELETE FROM mysql.user WHERE User='test' AND Host='localhost'; FLUSH PRIVILEGES; -- 5.6

-- 修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass'; -- 5.7+
-- mysqladmin -u root -p password "newpass"

六、遠程訪問配置

-- 1. 修改配置文件 /etc/mysql/my.cnf (Linux) 或 my.ini (Windows)
# bind-address = 127.0.0.1  <-- 註釋掉或改為 0.0.0.0
-- 2. 重啟服務
-- 3. 授權遠程用戶
GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'pass'; FLUSH PRIVILEGES;
-- 4. 防火牆放行 3306

七、修改 Root 密碼 (命令行)

mysqladmin -u root -p password "新密碼"
# 提示輸入舊密碼

總結

MySQL 基礎命令涵蓋:**連接登錄 → 庫表結構 DDL → 數據增刪改查 DML → 聚合函數 → 用戶權限 DCL → 遠程配置**。熟練掌握這些命令,配合 `DESC`、`EXPLAIN`、`SHOW CREATE TABLE` 觀察結構與計劃,是 DBA/開發必備基本功。**注意:生產環境所有 DDL/DCL 操作需審批、備份、驗證。**

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