CREATE DATABASE
创建新数据库,可指定字符集和排序规则
语法
CREATE DATABASE [IF NOT EXISTS] db_name [CHARACTER SET charset] [COLLATE collation];
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
IF NOT EXISTS |
数据库已存在时不报错 | CREATE DATABASE IF NOT EXISTS mydb; |
常用 |
CHARACTER SET |
指定字符集 | CREATE DATABASE mydb CHARACTER SET utf8mb4; |
常用 |
COLLATE |
指定排序规则 | CREATE DATABASE mydb COLLATE utf8mb4_unicode_ci; |
常用 |
DROP DATABASE |
删除数据库 | DROP DATABASE IF EXISTS test_db; |
危险 |
SHOW DATABASES |
查看所有数据库 | SHOW DATABASES; |
常用 |
示例
创建电商数据库
CREATE DATABASE IF NOT EXISTS ecommerce CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
utf8mb4 支持 emoji 等 4 字节字符
查看数据库列表
SHOW DATABASES; USE ecommerce;
USE 切换当前数据库
查看数据库创建语句
SHOW CREATE DATABASE ecommerce;
可以看到字符集和排序规则
删除测试数据库
DROP DATABASE IF EXISTS test_db;
危险操作,会删除所有表和数据
常见错误
ERROR 1007 (HY000): Can't create database 'mydb'; database exists
数据库已存在,使用 IF NOT EXISTS 避免报错
ERROR 1044 (42000): Access denied for user
当前用户没有创建数据库的权限,需要 GRANT CREATE 权限
技巧
- 生产环境统一使用 utf8mb4 字符集,避免 utf8(只支持 3 字节)
- 排序规则选 utf8mb4_unicode_ci(不区分大小写)或 utf8mb4_bin(区分大小写)