| 
                         指定数据库级别的字符集、字符序。同一个MySQL服务下的数据库,可以分别指定不同的字符集/字符序。该变量值session级别表示当前database的charset/collation,在后面的源码版本中该变量可能修正为只读,不建议修改该值。其global级别变量后面也会移除。 
1. 设置数据的字符集/字符序 
可以在创建、修改数据库的时候,通过CHARACTER SET、COLLATE指定数据库的字符集、排序规则。 
-创建数据库: 
- CREATE DATABASE db_name 
 -  [[DEFAULT] CHARACTER SET charset_name] 
 -  [[DEFAULT] COLLATE collation_name] 
 
  
修改数据库: 
- ALTER DATABASE db_name 
 -  [[DEFAULT] CHARACTER SET charset_name] 
 -  [[DEFAULT] COLLATE collation_name] 
 
  
例子:创建数据库test_schema,字符集设置为utf8,此时默认的排序规则为utf8_general_ci。 
- CREATE DATABASE `test_schema` DEFAULT CHARACTER SET utf8; 
 
  
2. 查看数据库的字符集/字符序 
有3种方式可以查看数据库的字符集/字符序。 
查看test_schema的字符集、排序规则。(需要切换默认数据库): 
- mysql> use test_schema; 
 - mysql> SELECT @@character_set_database, @@collation_database; 
 
  
查看test_schema的字符集、数据库(不需要切换默认数据库): 
- mysql> SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME  
 - FROM information_schema.SCHEMATA WHERE schema_name="test_schema"; 
 
  
查看创建数据库的语句,来查看字符集: 
- mysql> SHOW CREATE DATABASE test_schema; 
 
  
六、table的字符集、字符序 
创建表、修改表的语法如下,可通过CHARACTER SET、COLLATE设置字符集、字符序。 
- CREATE TABLE tbl_name (column_list) 
 -  [[DEFAULT] CHARACTER SET charset_name] 
 -  [COLLATE collation_name]] 
 - ALTER TABLE tbl_name 
 -  [[DEFAULT] CHARACTER SET charset_name] 
 -  [COLLATE collation_name] 
 
  
1. 创建table并指定字符集/字符序 
指定字符集为utf8,字符序则采用默认的。 
- CREATE TABLE `test_schema`.`test_table` ( 
 -  `id` INT NOT NULL COMMENT '', 
 -  PRIMARY KEY (`id`) COMMENT '') 
 - DEFAULT CHARACTER SET = utf8; 
 
  
2. 查看table的字符集/字符序 
同样,有3种方式可以查看table的字符集/字符序。 
    - 方式一:通过SHOW TABLE STATUS查看table状态,注意Collation为utf8_general_ci,对应的字符集为utf8。
 
     -  SHOW TABLE STATUS FROM test_schema G; 
 
  
    方式二:查看information_schema.TABLES的信息。
    -  USE test_schema; 
 -  SELECT TABLE_COLLATION FROM information_schema.TABLES WHERE  
 
  
    方式三:通过SHOW CREATE  TABLE确认。
    -  SHOW CREATE TABLE test_table; 
 
  
3. table字符集、字符序如何确定 
假设CHARACTER SET、COLLATE的值分别是charset_name、collation_name。如果创建table时: 
    - 明确了charset_name、collation_name,则采用charset_name、collation_name。
 
    - 只明确了charset_name,但collation_name未明确,则字符集采用charset_name,字符序采用charset_name对应的默认字符序。
 
    - 只明确了collation_name,但charset_name未明确,则字符序采用collation_name,字符集采用collation_name关联的字符集。
 
    - charset_name、collation_name均未明确,则采用数据库的字符集、字符序设置。
 
 
七、column的字符集、排序 
类型为CHAR、VARCHAR、TEXT的列,可以指定字符集/字符序,语法如下: 
- col_name {CHAR | VARCHAR | TEXT} (col_length) 
 -  [CHARACTER SET charset_name] 
 -  [COLLATE collation_name] 
 
  
1. 新增column并指定字符集/排序规则                         (编辑:52站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |