MySQL 數(shù)據(jù)庫
命令行登錄:
mysql -u root -p
Enter Password: 123456
MySQL 創(chuàng)建數(shù)據(jù)庫
語法:
CREATE DATABASE [IF NOT EXISTS] <數(shù)據(jù)庫名&
[[DEFAULT] CHARACTER SET <字符集名&]
[[DEFAULT] COLLATE <校對規(guī)則名&];
- <數(shù)據(jù)庫名>:創(chuàng)建數(shù)據(jù)庫的名稱。
- IF NOT EXISTS:在創(chuàng)建數(shù)據(jù)庫之前進行判斷,只有該數(shù)據(jù)庫目前尚不存在時才能執(zhí)行操作。此選項可以用來避免數(shù)據(jù)庫已經(jīng)存在而重復(fù)創(chuàng)建的錯誤。
- [DEFAULT] CHARACTER SET:指定數(shù)據(jù)庫的字符集。指定字符集的目的是為了避免在數(shù)據(jù)庫中存儲的數(shù)據(jù)出現(xiàn)亂碼的情況。如果在創(chuàng)建數(shù)據(jù)庫時不指定字符集,那么就使用系統(tǒng)的默認字符集。
- [DEFAULT] COLLATE:指定字符集的默認校對規(guī)則。
簡單創(chuàng)建 MySQL 數(shù)據(jù)庫 test_db1
CREATE DATABASE test_db1;
防重復(fù)創(chuàng)建 MySQL 數(shù)據(jù)庫 test_db2
CREATE DATABASE IF NOT EXISTS test_db2;
指定字符集和校對規(guī)則創(chuàng)建 MySQL 數(shù)據(jù)庫 test_db3
CREATE DATABASE IF NOT EXISTS test_db3
-> DEFAULT CHARACTER SET utf8mb4
-> DEFAULT COLLATE utf8mb4_unicode_ci;
MySQL 查看數(shù)據(jù)庫
語法:
SHOW DATABASES [LIKE '數(shù)據(jù)庫名'];
- LIKE 從句是可選項,用于匹配指定的數(shù)據(jù)庫名稱。LIKE 從句可以部分匹配,也可以完全匹配。
- 數(shù)據(jù)庫名由單引號 ' 包圍。
查看所有數(shù)據(jù)庫
SHOW DATABASES;
- information_schema:主要存儲了系統(tǒng)中的一些數(shù)據(jù)庫對象信息,比如用戶表信息、列信息、權(quán)限信息、字符集信息和分區(qū)信息等。
- mysql:MySQL 的核心數(shù)據(jù)庫,類似于 SQL Server 中的 master 表,主要負責存儲數(shù)據(jù)庫用戶、用戶訪問權(quán)限等 MySQL 自己需要使用的控制和管理信息。常用的比如在 mysql 數(shù)據(jù)庫的 user 表中修改 root 用戶密碼。
- performance_schema:主要用于收集數(shù)據(jù)庫服務(wù)器性能參數(shù)。
- sys:主要提供了一些視圖,數(shù)據(jù)都來自于 performation_schema,主要是讓開發(fā)者和使用者更方便地查看性能問題。
模糊查看數(shù)據(jù)庫
SHOW DATABASES LIKE ;
MySQL 修改數(shù)據(jù)庫
語法:
ALTER DATABASE [數(shù)據(jù)庫名] {
[ DEFAULT ] CHARACTER SET <字符集名& |
[ DEFAULT ] COLLATE <校對規(guī)則名&}
- ALTER DATABASE 用于更改數(shù)據(jù)庫的全局特性。
- 使用 ALTER DATABASE 需要獲得數(shù)據(jù)庫 ALTER 權(quán)限。
- 數(shù)據(jù)庫名稱可以忽略,此時語句對應(yīng)于默認數(shù)據(jù)庫。
- CHARACTER SET 子句用于更改默認的數(shù)據(jù)庫字符集。
創(chuàng)建數(shù)據(jù)庫 test_db
查看數(shù)據(jù)庫 test_db
結(jié)構(gòu)
修改數(shù)據(jù)庫 test_db
編碼和校隊規(guī)則
修改數(shù)據(jù)庫 test_db
結(jié)構(gòu)
MySQL 刪除數(shù)據(jù)庫
語法:
DROP DATABASE [ IF EXISTS ] <數(shù)據(jù)庫名&
- <數(shù)據(jù)庫名>:指定要刪除的數(shù)據(jù)庫名。
- IF EXISTS:用于防止當數(shù)據(jù)庫不存在時發(fā)生錯誤。
刪除數(shù)據(jù)庫 test_db1
DROP DATABASE test_dbl;
防止不存在刪除數(shù)據(jù)庫 test_db2
DROP DATABASE IF EXISTS test_db2;
MySQL 選擇使用數(shù)據(jù)庫
語法:
USE <數(shù)據(jù)庫名&
MySQL 存儲引擎
MySQL 支持多種類型的數(shù)據(jù)庫引擎:InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE 等。
查看系統(tǒng)支持的存儲引擎
語法:
SHOW ENGINES
Support 列的值表示某種引擎是否能使用, YES
表示可以使用, NO
表示不能使用, DEFAULT
表示該引擎為當前默認的存儲引擎。
MySQL 存儲引擎特點
功能 |
MylSAM |
MEMORY |
InnoDB |
Archive |
存儲限制 |
256TB |
RAM |
64TB |
None |
支持事務(wù) |
No |
No |
Yes |
No |
支持全文索引 |
Yes |
No |
No |
No |
支持樹索引 |
Yes |
Yes |
Yes |
No |
支持哈希索引 |
No |
Yes |
No |
No |
支持數(shù)據(jù)緩存 |
No |
N/A |
Yes |
No |
支持外鍵 |
No |
No |
Yes |
No |
MySQL 默認存儲引擎
InnoDB 是系統(tǒng)的默認引擎,支持可靠的事務(wù)處理。
臨時修改默認存儲引擎
語法:
SET default_storage_engine=< 存儲引擎名 &
注意:重啟 mysql 服務(wù)后失效。
更多建議: