MySQL可以使用 CREATE DATABASE 语句创建数据库,和CREATE SCHEMA语句是同义词。语法格式如下:
CREATE DATABASE [IF NOT EXISTS] <数据库名> [[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>];
[ ]中的内容是可选的,{}是集合,| 代表或,<>是中文解释,DEFAULT 为默认。语法说明:
<数据库名>:创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量要有实际意义。注意在 MySQL 中不区分大小写。
IF NOT EXISTS:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。
[DEFAULT] CHARACTER SET:指定数据库的字符集。指定字符集的目的是为了避免在数据库中存储的数据出现乱码的情况。如果在创建数据库时不指定字符集,那么就使用系统的默认字符集。
[DEFAULT] COLLATE:指定字符集的默认校对规则。
![]() | MySQL 的字符集(CHARACTER)和校对规则(COLLATION)是两个不同的概念。字符集是用来定义 MySQL 存储字符串的方式,校对规则定义了比较字符串的方式。后面我们会单独讲解 MySQL 的字符集和校对规则。 |
mysql> CREATE DATABASE test; Query OK, 1 row affected (0.12 sec);
创建成功
如果创建存在的数据库,则会保持MySQL 不允许在同一系统下创建两个相同名称的数据库。
mysql> CREATE DATABASE test; ERROR 1007 (HY000): Can't create database 'test'; database exists
可以使用不存在才创建数据库 加上 IF NOT EXISTS语句
mysql> CREATE DATABASE IF NOT EXISTS test; Query OK, 1 row affected (0.12 sec)
数据库命名为 test,指定其默认字符集为 utf8,默认校对规则为 utf8_general_ci
mysql> CREATE DATABASE IF NOT EXISTS test -> DEFAULT CHARACTER SET utf8 -> DEFAULT COLLATE utf8_general_ci; Query OK, 1 row affected (0.00 sec)
查看数据库的定义声明使用 SHOW CREATE DATABASE语句