在 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 数据库的完整创建语句,包括默认字符集和排序规则等关键配置信息。