在 MySQL 中查看當前數據庫的創建語句,使用 SHOW CREATE DATABASE
命令,以下是詳細操作指南:
1. 查看當前數據庫的創建語句
SHOW CREATE DATABASE `database_name`;
- 替換
database_name
為你的數據庫名 - 使用反引號
``
包裹特殊名稱或保留字
2. 查看所有數據庫的創建語句
SELECT SCHEMA_NAME AS `Database`,DEFAULT_CHARACTER_SET_NAME AS `Charset`,DEFAULT_COLLATION_NAME AS `Collation`,SQL_PATH
FROM information_schema.SCHEMATA;
3. 實用示例
案例1:查看指定數據庫的創建信息
-- 查看 test_db 數據庫的創建語句
SHOW CREATE DATABASE test_db;-- 輸出示例
+----------+-------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------+
| test_db | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET utf8mb4 */ |
+----------+-------------------------------------------------------------+
案例2:查看當前會話數據庫的創建語句
-- 查看當前數據庫名
SELECT DATABASE(); -- 假設返回 db_name
SHOW CREATE DATABASE `db_name`;
案例3:通過系統表查看詳細創建信息
SELECT SCHEMA_NAME AS `數據庫名`,DEFAULT_CHARACTER_SET_NAME AS `字符集`,DEFAULT_COLLATION_NAME AS `排序規則`,CONCAT('CREATE DATABASE `', SCHEMA_NAME, '` DEFAULT CHARACTER SET ', DEFAULT_CHARACTER_SET_NAME,' COLLATE ', DEFAULT_COLLATION_NAME, ';') AS `完整創建語句`
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME = 'your_database';
4. 輸出字段解析
字段 | 說明 |
---|---|
Database | 數據庫名稱 |
Create Database | 完整的 CREATE DATABASE SQL 語句 |
/*!40100 ... */ | MySQL 版本條件執行(表示 >= 4.1.00 支持) |
DEFAULT CHARACTER SET | 默認字符集 |
COLLATE | 默認排序規則 |
5. 高級信息查詢
查看數據庫的字符集和排序規則詳情
SELECT CCSA.CHARACTER_SET_NAME AS `字符集`,CCSA.COLLATION_NAME AS `排序規則`,CCSA.IS_DEFAULT AS `是否默認`
FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY CCSA
WHERE CCSA.COLLATION_NAME = (SELECT DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'your_db');
生成所有數據庫的創建腳本
SELECT CONCAT('SHOW CREATE DATABASE `', SCHEMA_NAME, '`;') AS `生成腳本語句`
FROM information_schema.SCHEMATA;
6. 實用技巧
-
?排除系統數據庫?:
SHOW CREATE DATABASE your_db WHERE SCHEMA_NAME NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys');
-
?僅查看字符集信息?:
SELECT DEFAULT_CHARACTER_SET_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'your_db';
-
?在命令行直接獲取?:
mysql -u root -p -e "SHOW CREATE DATABASE your_db" | grep "CREATE DATABASE"
7. 注意事項
- 需要
SELECT
權限訪問information_schema
- 對于 MySQL 5.6 或更低版本,部分字段名可能不同
- 輸出結果中的版本注釋(如
/*!40100 */
) 可安全忽略
通過以上方法,您可以準確查看任何 MySQL 數據庫的完整創建語句,包括默認字符集和排序規則等關鍵配置信息。