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

MySQL 入門必會指令速查表:登入、庫表操作、增刪改查、資料匯入

     編輯:MySQL 綜合教學

1. 連線登入

# 標準登入 (提示輸入密碼)
mysql -u root -p

# 指定主機/埠口
mysql -h 192.168.1.100 -P 3306 -u root -p

# 直接帶密碼 (不安全,僅腳本用)
mysql -u root -p'password'

# 無密碼本機 (預設 root@localhost)
mysql

2. 資料庫 (Schema) 操作

-- 列出所有庫
SHOW DATABASES;

-- 建立庫 (指定字符集)
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 切換/使用庫
USE mydb;

-- 刪除庫 (慎用!)
DROP DATABASE mydb;

-- 查看當前庫
SELECT DATABASE();

3. 資料表操作

-- 列出當前庫所有表
SHOW TABLES;

-- 查看表結構
DESCRIBE tbl_name;
-- 或
SHOW COLUMNS FROM tbl_name;
-- 或詳細
SHOW CREATE TABLE tbl_name;

-- 建表示例
CREATE TABLE users (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(50) NOT NULL UNIQUE,
  email VARCHAR(100) NOT NULL,
  password_hash CHAR(60) NOT NULL,
  status TINYINT DEFAULT 1,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 修改表結構
ALTER TABLE users ADD COLUMN phone VARCHAR(20);
ALTER TABLE users MODIFY COLUMN email VARCHAR(150);
ALTER TABLE users DROP COLUMN phone;
ALTER TABLE users RENAME TO app_users;

-- 刪除表
DROP TABLE IF EXISTS old_table;

4. 資料增刪改查 (CRUD)

-- 插入 (單筆)
INSERT INTO users (username, email, password_hash) VALUES ('john', 'john@example.com', '$2a$10$...');

-- 插入 (多筆,效能佳)
INSERT INTO users (username, email, password_hash) 
VALUES ('alice', 'alice@ex.com', '...'), ('bob', 'bob@ex.com', '...');

-- 查詢 (全部)
SELECT * FROM users;

-- 查詢 (條件)
SELECT id, username, email FROM users WHERE status = 1;

-- 模糊查詢
SELECT * FROM users WHERE username LIKE 'john%';

-- 更新
UPDATE users SET status = 0, updated_at = NOW() WHERE id = 1;

-- 刪除 (條件)
DELETE FROM users WHERE id = 1;

-- 刪除 (全表,慎用!)
DELETE FROM users;
-- 或極速清空
TRUNCATE TABLE users;

5. 進階查詢技巧

-- 排序與分頁
SELECT * FROM users ORDER BY created_at DESC LIMIT 10 OFFSET 20;

-- 聚合統計
SELECT status, COUNT(*) AS cnt FROM users GROUP BY status;

-- 連接查詢
SELECT u.username, o.order_no FROM users u JOIN orders o ON u.id = o.user_id;

-- 子查詢
SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE amount > 1000);

6. 文字檔匯入 (LOAD DATA)

-- 格式:欄位逗號分隔、雙引號包裹、換行分隔
LOAD DATA LOCAL INFILE '/path/users.csv'
INTO TABLE users
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(username, email, password_hash);  -- 指定欄位順序

7. 權限管理

-- 建立用戶
CREATE USER 'app'@'%' IDENTIFIED BY 'StrongPass!';

-- 授權
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app'@'%';
GRANT ALL PRIVILEGES ON mydb.* TO 'admin'@'%';

-- 刷新權限
FLUSH PRIVILEGES;

-- 查看權限
SHOW GRANTS FOR 'app'@'%';

-- 撤銷權限
REVOKE DELETE ON mydb.* FROM 'app'@'%';

8. 實用系統指令

-- 查看版本
SELECT VERSION();

-- 查看狀態
SHOW GLOBAL STATUS LIKE 'Threads_connected';
SHOW GLOBAL VARIABLES LIKE 'max_connections';

-- 查看進程
SHOW PROCESSLIST;
SHOW FULL PROCESSLIST;

-- 關閉連線
KILL 12345;

-- 重載配置 (無需重啟)
FLUSH PRIVILEGES;
FLUSH LOGS;

新手必記 10 條

  1. 永遠 WHERE 後加條件,防誤刪誤改全表
  2. 生產環境禁用 root 遠程登入
  3. 字符集統一 utf8mb4
  4. 時間欄位用 TIMESTAMP (自動更新) 或 DATETIME
  5. 主鍵用 BIGINT UNSIGNED AUTO_INCREMENT
  6. 金額用 DECIMAL(19,4) 禁用浮點數
  7. 軟刪除 deleted_at 替代硬刪除
  8. 重要操作先 BEGIN 再 COMMIT
  9. 定期備份、定期演練恢復
  10. 慢查詢日誌永遠開啟
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved