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

MySQL 核心知識體系總結:數據類型、字元集、增刪改查、備份恢復、中文亂碼

     編輯:MySQL 綜合教學

一、核心數據類型速查

分類類型佔用空間範圍/特點
整數TINYINT1B-128~127 / 0~255 (UNSIGNED)
SMALLINT2B-32K~32K / 0~65K
MEDIUMINT3B-8M~8M / 0~16M
INT / INTEGER4B-2.1B~2.1B / 0~4.2B
BIGINT8B-9.2E18~9.2E18 / 0~1.8E19
浮點FLOAT4B單精度,~7 位有效數字
DOUBLE8B雙精度,~15 位有效數字
定點DECIMAL(M,D)M+2 B精確數值,金融必用,M=總位數 D=小數位
日期時間DATE3B1000-01-01 ~ 9999-12-31
TIME3B-838:59:59 ~ 838:59:59
DATETIME8B1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
TIMESTAMP4B1970-01-01 ~ 2038-01-19,自動更新、時區感知
YEAR1B1901 ~ 2155
字串CHAR(N)N 字元定長,右側空格填充,N≤255
VARCHAR(N)實際長度+1/2B變長,N≤65535 (受行大小限制)
大對象TINYBLOB/TEXT255B
BLOB/TEXT64KB
MEDIUMBLOB/TEXT16MB
LONGBLOB/TEXT4GB

二、MySQL 小知識速查

2.1 登入/退出

mysql -u root -p    # 交互式登入
exit                # 退出

2.2 庫操作

CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
SHOW DATABASES;
USE db_name;
DROP DATABASE db_name;

2.3 備份/恢復 (Shell 環境)

# 備份
mysqldump -u root -p db_name > backup.sql
mysqldump -u root -p --single-transaction --routines --triggers --events db_name > prod.sql

# 恢復 (MySQL 互動環境)
SOURCE /path/backup.sql;

2.4 字元集檢查/設定

SHOW VARIABLES LIKE 'character_set_%';
SET NAMES utf8mb4;  -- 會話級
SET character_set_results = gbk;  -- 臨時輸出編碼

三、中文亂碼徹底解決 (Windows/XP 經驗)

3.1 方案一:會話級臨時修正 (僅當前窗口生效)

SET character_set_client = gbk;
SET character_set_connection = gbk;
SET character_set_results = gbk;
-- 或簡寫
SET NAMES gbk;

3.2 方案二:配置文件永久生效 (需重啟服務)

# my.ini / my.cnf
[client]
default-character-set = gbk

[mysql]
default-character-set = gbk

[mysqld]
character-set-server = gbk
collation-server = gbk_chinese_ci

現代建議:全鏈路統一 **utf8mb4**,避免 GBK 兼容性問題。

四、表增刪改核心操作

4.1 INSERT

INSERT INTO t (a,b) VALUES (1,'x');
INSERT INTO t (a,b) VALUES (1,'x'), (2,'y');  -- 批次插入

4.2 UPDATE

UPDATE t SET a=2 WHERE b='x';

4.3 DELETE 三種方式對比

命令行為適用場景Binlog自增ID觸發器
DELETE FROM t逐行刪除,可 WHERE小資料量、條件刪除記錄每行不重置觸發
TRUNCATE TABLE t重建表結構,不可 WHERE大資料量、全表清空不記錄 (DDL)重置不觸發
DROP TABLE t刪除表結構+資料不再需要該表記錄 DDL不存在不觸發

4.4 外鍵關聯刪除順序

先刪子表,後刪父表;或暫時 SET FOREIGN_KEY_CHECKS=0; (謹慎使用)。

五、查詢操作核心語法

5.1 基礎 SELECT

SELECT DISTINCT col FROM t;
SELECT col AS alias, expr AS alias FROM t;
SELECT * FROM t WHERE condition;

5.2 運算與 NULL

NULL + 1 = NULL
NULL = NULL → NULL (未知)
使用 IS NULL / IS NOT NULL / <=> 判斷 NULL

5.3 排序

ORDER BY col1 ASC, col2 DESC;
-- NULL 排在最前 (ASC) 或最後 (DESC)
-- ORDER BY 必須是最後子句 (LIMIT 除外)

5.4 聚合函數

六、實用技巧匯總

  • 多行 SQL:以 ; 結束,可跨行輸入
  • 歷史命令:↑/↓ 方向鍵調取
  • 當前庫:SELECT DATABASE();
  • 當前用戶:SELECT USER();
  • 修改 root 密碼:UPDATE mysql.user SET authentication_string=PASSWORD('new') WHERE User='root'; FLUSH PRIVILEGES;
  • 文本導入:LOAD DATA LOCAL INFILE 'file.txt' INTO TABLE t FIELDS TERMINATED BY '\t';
  • 備份單表:mysqldump -u root -p db table > table.sql
  • 備份結構:mysqldump -u root -p -d --add-drop-table db > struct.sql

總結

掌握 **數據類型選型、字元集統一 utf8mb4、DELETE/TRUNCATE/DROP 三選一、聚合函數 NULL 語義、備份恢復雙軌制**,即可應對 90% 日常 MySQL 開發運維場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
函數說明NULL 處理
COUNT(*)行數包含 NULL 行
COUNT(col)非 NULL 個數忽略 NULL
SUM(col)求和忽略 NULL,全 NULL 返回 NULL
AVG(col)平均忽略 NULL
MAX/MIN極值忽略 NULL