10bet网址
MySQL 5.7参考手册
相关文件10bet官方网站 本手册下载 从本手册中摘录

10.3.3数据库字符集和归类

每个数据库都有一个数据库字符集和一个数据库排序。的创建数据库改变数据库语句具有用于指定数据库字符集和排序规则的可选子句:

创建数据库db_name(默认的字符集charset_name][(默认)核对collat​​ion_name.)修改数据库db_name(默认的字符集charset_name][(默认)核对collat​​ion_name.]

关键字模式可以用来代替数据库

所有数据库选项都存储在名为db.opt可以在数据库目录中找到。

字符集核对子句使得在同一个MySQL服务器上创建具有不同字符集和排序的数据库成为可能。

例子:

创建数据库db_nameCHARACTER SET latin1 COLLATE latin1_swedish_ci;

MySQL选择数据库字符集和数据库排序的方式如下:

  • 如果两个字符集charset_name核对collat​​ion_name.是否指定,字符集charset_name和排序collat​​ion_name.使用。

  • 如果字符集charset_name没有指定核对,字符集charset_name并且使用了它的默认排序。要查看每个字符集的默认排序规则,请使用显示字符集声明或查询INFORMATION_SCHEMACHARACTER_SETS表格

  • 如果核对collat​​ion_name.没有指定字符集,字符集与之相关联collat​​ion_name.和排序collat​​ion_name.使用。

  • 否则(既不是字符集也不核对),则使用服务器字符集和服务器排序规则。

默认数据库的字符集和排序规则可以从值的值确定character_set_databasecollation_database系统变量。服务器在默认数据库更改时设置这些变量。如果没有默认数据库,则变量具有与相应的服务器级系统变量相同的值,character_set_server.collation_server

要查看给定数据库的默认字符集和排序规则,请使用以下语句:

使用db_name;选择@@character_set_database @@collation_database;

或者,在不改变默认数据库的情况下显示值:

从information_schema中选择default_character_set_name, default_collation_name。Schemata where schema_name = 'db_name”;

数据库字符集和排序会影响服务器操作的以下方面:

  • 创建表语句中,如果没有指定表字符集和排序规则,则将数据库字符集和排序规则用作表定义的默认值。要重写此操作,请提供explicit字符集核对表选择。

  • 加载数据包含no的语句字符集子句,服务器使用所示的字符集character_set_database系统变量来解释文件中的信息。要重写此操作,请提供显式的字符集条款。

  • 对于存储的例程(过程和函数),数据库字符集和在例程创建时间中的排序效果用作字符集和声明包含否的字符数据参数的排序规则字符集或者一个核对属性。覆盖这一点,提供字符集核对明确。