MySQL 數(shù)據(jù)庫(kù)
命令行登錄:
mysql -u root -p
Enter Password: 123456
MySQL 創(chuàng)建數(shù)據(jù)庫(kù)
語(yǔ)法:
CREATE DATABASE [IF NOT EXISTS] <數(shù)據(jù)庫(kù)名&
[[DEFAULT] CHARACTER SET <字符集名&]
[[DEFAULT] COLLATE <校對(duì)規(guī)則名&];
- <數(shù)據(jù)庫(kù)名>:創(chuàng)建數(shù)據(jù)庫(kù)的名稱。
- IF NOT EXISTS:在創(chuàng)建數(shù)據(jù)庫(kù)之前進(jìn)行判斷,只有該數(shù)據(jù)庫(kù)目前尚不存在時(shí)才能執(zhí)行操作。此選項(xiàng)可以用來(lái)避免數(shù)據(jù)庫(kù)已經(jīng)存在而重復(fù)創(chuàng)建的錯(cuò)誤。
- [DEFAULT] CHARACTER SET:指定數(shù)據(jù)庫(kù)的字符集。指定字符集的目的是為了避免在數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)出現(xiàn)亂碼的情況。如果在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)不指定字符集,那么就使用系統(tǒng)的默認(rèn)字符集。
- [DEFAULT] COLLATE:指定字符集的默認(rèn)校對(duì)規(guī)則。
簡(jiǎn)單創(chuàng)建 MySQL 數(shù)據(jù)庫(kù) test_db1
CREATE DATABASE test_db1;
防重復(fù)創(chuàng)建 MySQL 數(shù)據(jù)庫(kù) test_db2
CREATE DATABASE IF NOT EXISTS test_db2;
指定字符集和校對(duì)規(guī)則創(chuàng)建 MySQL 數(shù)據(jù)庫(kù) test_db3
CREATE DATABASE IF NOT EXISTS test_db3
-> DEFAULT CHARACTER SET utf8mb4
-> DEFAULT COLLATE utf8mb4_unicode_ci;
MySQL 查看數(shù)據(jù)庫(kù)
語(yǔ)法:
SHOW DATABASES [LIKE '數(shù)據(jù)庫(kù)名'];
- LIKE 從句是可選項(xiàng),用于匹配指定的數(shù)據(jù)庫(kù)名稱。LIKE 從句可以部分匹配,也可以完全匹配。
- 數(shù)據(jù)庫(kù)名由單引號(hào) ' 包圍。
查看所有數(shù)據(jù)庫(kù)
SHOW DATABASES;

- information_schema:主要存儲(chǔ)了系統(tǒng)中的一些數(shù)據(jù)庫(kù)對(duì)象信息,比如用戶表信息、列信息、權(quán)限信息、字符集信息和分區(qū)信息等。
- mysql:MySQL 的核心數(shù)據(jù)庫(kù),類似于 SQL Server 中的 master 表,主要負(fù)責(zé)存儲(chǔ)數(shù)據(jù)庫(kù)用戶、用戶訪問(wèn)權(quán)限等 MySQL 自己需要使用的控制和管理信息。常用的比如在 mysql 數(shù)據(jù)庫(kù)的 user 表中修改 root 用戶密碼。
- performance_schema:主要用于收集數(shù)據(jù)庫(kù)服務(wù)器性能參數(shù)。
- sys:主要提供了一些視圖,數(shù)據(jù)都來(lái)自于 performation_schema,主要是讓開(kāi)發(fā)者和使用者更方便地查看性能問(wèn)題。
模糊查看數(shù)據(jù)庫(kù)
SHOW DATABASES LIKE ;

MySQL 修改數(shù)據(jù)庫(kù)
語(yǔ)法:
ALTER DATABASE [數(shù)據(jù)庫(kù)名] {
[ DEFAULT ] CHARACTER SET <字符集名& |
[ DEFAULT ] COLLATE <校對(duì)規(guī)則名&}
- ALTER DATABASE 用于更改數(shù)據(jù)庫(kù)的全局特性。
- 使用 ALTER DATABASE 需要獲得數(shù)據(jù)庫(kù) ALTER 權(quán)限。
- 數(shù)據(jù)庫(kù)名稱可以忽略,此時(shí)語(yǔ)句對(duì)應(yīng)于默認(rèn)數(shù)據(jù)庫(kù)。
- CHARACTER SET 子句用于更改默認(rèn)的數(shù)據(jù)庫(kù)字符集。
創(chuàng)建數(shù)據(jù)庫(kù) test_db

查看數(shù)據(jù)庫(kù) test_db
結(jié)構(gòu)

修改數(shù)據(jù)庫(kù) test_db
編碼和校隊(duì)規(guī)則

修改數(shù)據(jù)庫(kù) test_db
結(jié)構(gòu)

MySQL 刪除數(shù)據(jù)庫(kù)
語(yǔ)法:
DROP DATABASE [ IF EXISTS ] <數(shù)據(jù)庫(kù)名&
- <數(shù)據(jù)庫(kù)名>:指定要?jiǎng)h除的數(shù)據(jù)庫(kù)名。
- IF EXISTS:用于防止當(dāng)數(shù)據(jù)庫(kù)不存在時(shí)發(fā)生錯(cuò)誤。
刪除數(shù)據(jù)庫(kù) test_db1
DROP DATABASE test_dbl;
防止不存在刪除數(shù)據(jù)庫(kù) test_db2
DROP DATABASE IF EXISTS test_db2;
MySQL 選擇使用數(shù)據(jù)庫(kù)
語(yǔ)法:
USE <數(shù)據(jù)庫(kù)名&

MySQL 存儲(chǔ)引擎
MySQL 支持多種類型的數(shù)據(jù)庫(kù)引擎:InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE 等。
查看系統(tǒng)支持的存儲(chǔ)引擎
語(yǔ)法:
SHOW ENGINES

Support 列的值表示某種引擎是否能使用, YES
表示可以使用, NO
表示不能使用, DEFAULT
表示該引擎為當(dāng)前默認(rèn)的存儲(chǔ)引擎。
MySQL 存儲(chǔ)引擎特點(diǎn)
功能 |
MylSAM |
MEMORY |
InnoDB |
Archive |
存儲(chǔ)限制 |
256TB |
RAM |
64TB |
None |
支持事務(wù) |
No |
No |
Yes |
No |
支持全文索引 |
Yes |
No |
No |
No |
支持樹索引 |
Yes |
Yes |
Yes |
No |
支持哈希索引 |
No |
Yes |
No |
No |
支持?jǐn)?shù)據(jù)緩存 |
No |
N/A |
Yes |
No |
支持外鍵 |
No |
No |
Yes |
No |
MySQL 默認(rèn)存儲(chǔ)引擎
InnoDB 是系統(tǒng)的默認(rèn)引擎,支持可靠的事務(wù)處理。
臨時(shí)修改默認(rèn)存儲(chǔ)引擎
語(yǔ)法:
SET default_storage_engine=< 存儲(chǔ)引擎名 &
注意:重啟 mysql 服務(wù)后失效。
更多建議: