10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册摘录

10.3.3数据库字符集和排序规则

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

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

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

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

数据库选项存储在数据字典中,可以通过检查INFORMATION_SCHEMA。图式表格

例子:

创建数据库db_nameCHARACTER SET latin1 COLLATE latin1_swedish_ci;

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

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

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

  • 如果核对collation_name没有指定字符集,关联的字符集collation_name和排序collation_name使用。

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

属性的值确定默认数据库的字符集和排序规则character_set_databasecollation_database系统变量。每当默认数据库发生变化时,服务器就会设置这些变量。如果没有默认数据库,则变量的值与相应的服务器级系统变量相同,character_set_servercollation_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系统变量来解释文件中的信息。要重写此操作,请提供显式的字符集条款。

  • 对于存储例程(过程和函数),在例程创建时起作用的数据库字符集和排序规则被用作字符数据参数的字符集和排序规则,其声明中包含no字符集或者一个核对属性。要推翻这一点,请提供字符集核对明确。