CREATE DATABASE [IF NOT EXISTS] <数据库名> [[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>];
[ ]
中的内容是可选的。语法说明如下:
MySQL 的字符集(CHARACTER)和校对规则(COLLATION)是两个不同的概念。字符集是用来定义 MySQL 存储字符串的方式,校对规则定义了比较字符串的方式。后面我们会单独讲解 MySQL 的字符集和校对规则。
CREATE DATABASE test_db;
即可创建一个数据库,输入的 SQL 语句与执行结果如下。mysql> CREATE DATABASE test_db; Query OK, 1 row affected (0.12 sec);“Query OK, 1 row affected (0.12 sec);”提示中,“Query OK”表示上面的命令执行成功,“1 row affected”表示操作只影响了数据库中一行的记录,“0.12 sec”则记录了操作执行的时间。
CREATE DATABASE test_db;
语句,则系统会给出错误提示信息,如下所示:mysql> CREATE DATABASE test_db; ERROR 1007 (HY000): Can't create database 'test_db'; database exists提示不能创建“test_db”数据库,数据库已存在。MySQL 不允许在同一系统下创建两个相同名称的数据库。
IF NOT EXISTS
从句,就可以避免类似错误,如下所示:
mysql> CREATE DATABASE IF NOT EXISTS test_db; Query OK, 1 row affected (0.12 sec)
mysql> CREATE DATABASE IF NOT EXISTS test_db_char -> DEFAULT CHARACTER SET utf8 -> DEFAULT COLLATE utf8_chinese_ci; Query OK, 1 row affected (0.03 sec)这时,可以使用
SHOW CREATE DATABASE
查看 test_db_char 数据库的定义声明,发现该数据库的指定字符集为 utf8,运行结果如下所示:mysql> SHOW CREATE DATABASE test_db_char; +--------------+-----------------------------------------------------+ | Database | Create Database | +--------------+-----------------------------------------------------+ | test_db_char | CREATE DATABASE `test_db_char` /*!40100 DEFAULT CHARACTER SET utf8 */ | +--------------+-----------------------------------------------------+ 1 row in set (0.00 sec)“1 row in set (0.00 sec)”表示集合中有 1 行信息,处理时间为 0.00秒。时间为 0.00 秒并不代表没有花费时间,而是时间非常短,小于 0.01 秒。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有