MySQL之创建数据库(CREATE DATABASE语句)

语法基础

在MySQL中创建数据库的语句是:

CREATE DATABASE 数据库名

以上是简单的创建数据库,创建的数据库语法格式为:

CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>]

[]中的内容是选择性填写的,语法说明如下:

  • <数据库名>:所创数据库的名称,必须符合命名规则,MySQL中不区分大小写
  • IF NOT EXISTS 判断是否存在该数据库,存在则不执行改语句,可以避免数据库已经存在而重复创建的错误
  • [DEFAULT] CHARACTER SET:指定数据库的默认字符集。
  • [DEFAULT] COLLATE:指定字符集的默认校对规则。

MySQL 的字符集(CHARACTER)和校对规则(COLLATION)两个不同的概念:字符集是用来定义 MySQL 存储字符串的方式,校对规则定义了比较字符串的方式,解决排序和字符分组的问题。
为防止字符混乱的情况发生,MySQL 有时需要在创建数据库时明确指定字符集;在中国大陆地区,常用的字符集有 utf8 和 gbk。

  • utf8 能够存储全球的所有字符,在任何国家都可以使用,默认的校对规则为 utf8_general_ci,对于中文可以使用 utf8_general_ci
  • gbk 只能存储汉语涉及到的字符,不具有全球通用性,默认的校对规则为 gbk_chinese_ci

例子

创建数据库语句
创建一个名为test的数据库,输入语句CREATE DATABASE test;,因为python写多了,执行语句总是忘加;大家在写程序时别忘了
在这里插入图片描述
但如果我们重复创建数据库就会出错,MySQL不允许建立相同名字的数据库
在这里插入图片描述
这时我们就需要添加IF NOT EXISTS语句,就可避免出现以上错误

mysql> CREATE DATABASE tset;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE DATABASE tset;
1007 - Can't create database 'tset'; database exists
mysql> CREATE DATABASE IF NOT EXISTS tset;
Query OK, 1 row affected (0.00 sec)

创建 MySQL 数据库时指定字符集和校对规则
创建一个数据库名字为test,指定默认字符集为utf8,默认校对规则为utf8_chiinsese_ci

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)

大家如果出现1273 - Unknown collation: 'utf8_chinese_ci'以上报错,是数据库版本问题,可以将 utf8_chinese_ci替换成utf8_unicode_ci

http://c.biancheng.net/view/2413.html我是参考这个网址进行学习的,并给出自己在学习中遇到的问题


版权声明:本文为qq_38523616原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。