1、创建数据库create database或CREATE DATABASE //数据库无大小写之分
create database <basename> 或 CREATE DATABASE <BASENAME> 或create database if not exists <basename>
[[default] character set <字符集名> ] [[ DEFAULT ]CHARACTER SET <字符集名>]
[[default ]collate <校对规则名> ] [[DEFAULT] COLLATE<校对规则名>]
[ ]中的内容是可选的。语法说明如下:
<数据库名>:创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,注意在 MySQL 中不区分大小写。
IF NOT EXISTS:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。
[DEFAULT] CHARACTER SET:指定数据库的默认字符集。
[DEFAULT] COLLATE:指定字符集的默认校对规则。
MySQL 的字符集(CHARACTER)和校对规则(COLLATION)两个不同的概念:字符集是用来定义 MySQL 存储字符串的方式,校对规则定义了比较字符串的方式,解决排序和字符分组的问题。
字符集和校对规则是一对多的关系,每个字符集至少对应一个校对规则,MySQL 支持 39 种字符集的将近 200 种校对规则。
实例1:最简单的创建 MySQL 数据库的语句
在 MySQL 中创建一个名为 test_db 的数据库。在 MySQL 命令行客户端输入 SQL 语句CREATE DATABASE test_db;即可创建一个数据库,输入的 SQL 语句与执行结果如下。
MySQL 不允许在同一系统创建两个相同名称的数据库,所以if not exists就可以避免上述问题;
实例2:创建 MySQL 数据库时指定字符集和校对规则
使用 MySQL 命令行工具创建一个测试数据库,命名为 test_db_int,指定其默认字符集为 utf8,默认校对规则为 utf8_general_ci(简体中文,不区分大小写),输入的 SQL 语句与执行结果如下所示:
2、查询数据支持的编码及对应的校验规则
查询所有的编码及对应的校验规则show collation;
MySQL数据库查看所有可用的字符集,利用命令:show character set;
利用information_schema.character_sets,查看显示所有的字符集和字符集默认的校对规则,利用命令:
desc information_schema.character_sets;
如下图所示:
查看字符集的校对规则
show collation 立刻 ‘<字符集%>’;
查看当前服务的字符集
show variables like ‘character_set_server‘;
查看当前服务器的校对规则
show variables like ‘collation_server‘;
查看当前数据库的字符集
show variables like ‘character_set_database‘;
查看当前数据库的校对规则
show variables like ‘collation_database‘;
为防止字符混乱的情况发生,MySQL 有时需要在创建数据库时明确指定字符集;在*地区,常用的字符集有 utf8 和 gbk。
- utf8 能够存储全球的所有字符,在任何国家都可以使用,默认的校对规则为 utf8_general_ci,对于中文可以使用 utf8_general_ci。
- gbk 只能存储汉语涉及到的字符,不具有全球通用性,默认的校对规则为 gbk_chinese_ci。