MySQL创建数据库(CREATEDATABASE语句)
数据库可以看作是⼀个专门存储数据对象的容器,这⾥的数据对象包括表、视图、触发器、存储过程等,其中表是最基本的数据对象。在 数据库中创建数据对象之前,先要创建好数据库。
在 MySQL 中,可以使⽤ CREATE DATABASE 语句创建数据库,语法格式如下:
CREATE DATABASE [IF NOT EXISTS] <;数据库名>
[[DEFAULT] CHARACTER SET <;字符集名>] [[DEFAULT] COLLATE <;校对规则名>];
[ ]中的内容是可选的。语法说明如下:
<;数据库名>:创建数据库的名称。MySQL 的数据存储区将以⽬录⽅式表⽰ MySQL 数据库,因此数据库名称必须符合操作系统的⽂件夹命名规则,注意在 MySQL 中不区分⼤⼩写。
IF NOT EXISTS:在创建数据库之前进⾏判断,只有该数据库⽬前尚不存在时才能执⾏操作。此选项可以⽤来避免数据库已经存在⽽重复创建的错误。
[DEFAULT] CHARACTER SET:指定数据库的默认字符集。
[DEFAULT] COLLATE:指定字符集的默认校对规则。
简单的mysql语句MySQL 的字符集(CHARACTER)和校对规则(COLLATION)两个不同的概念:字符集是⽤来定义 MySQL 存储字符串的⽅式,校对规则定义了⽐较字符串的⽅式,解决排序和字符分组的问题。
字符集和校对规则是⼀对多的关系,每个字符集⾄少对应⼀个校对规则,MySQL ⽀持 39 种字符集的将近 200 种校对规则。
实例1:最简单的创建 MySQL 数据库的语句
在 MySQL 中创建⼀个名为 test_db 的数据库。在 MySQL 命令⾏客户端输⼊ SQL 语句CREATE DATABASE test_db;即可创建⼀个数据库,输⼊的 SQL 语句与执⾏结果如下。
mysql> CREATE DATABASE test_db;
Query OK, 1 row affected (0.12 sec)
若再次输⼊上述语句,则系统会给出错误提⽰信息,如下所⽰:
mysql> CREATE DATABASE test_db;
ERROR 1007 (HY000): Can't create database 'test_db'; database exists
MySQL 不允许在同⼀系统创建两个相同名称的数据库。
如果加上IF NOT EXISTS从句,则可以避免类似错误,如下所⽰:
mysql> CREATE DATABASE IF NOT EXISTS test_db;
Query OK, 1 row affected (0.12 sec)
实例2:创建 MySQL 数据库时指定字符集和校对规则
使⽤ MySQL 命令⾏⼯具创建⼀个测试数据库,命名为 test_db_char,指定其默认字符集为 utf8,默认校对规则为
utf8_chinese_ci(简体中⽂,不区分⼤⼩写),输⼊的 SQL 语句与执⾏结果如下所⽰:
mysql> CREATE DATABASE IF NOT EXISTS test_db_char
-> DEFAULT CHARACTER SET utf8
-
> DEFAULT COLLATE utf8_chinese_ci;(注意:我的电脑是ubuntu18.01这句话不能执⾏,换成utf8_general_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.05 sec)
为防⽌字符混乱的情况发⽣,MySQL 有时需要在创建数据库时明确指定字符集;在中国⼤陆地区,常⽤的字符集有 utf8 和 gbk。
utf8 能够存储全球的所有字符,在任何国家都可以使⽤,默认的校对规则为 utf8_general_ci,对于中⽂可以使⽤ utf8_general_ci。
gbk 只能存储汉语涉及到的字符,不具有全球通⽤性,默认的校对规则为 gbk_chinese_ci。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论