mysql学习之,字符集选定,修改。

  

  环境:5.6   

  

  基础概念:   

  

  字符(字符)是指人类语言中最小的表义符号,例如' A ', ' B '等;
  编码(编码)是指给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符。例如,我们给字符' A '赋予数值0,给字符“B”赋予数值1,则0就是字符' A '的编码;
  字符集(字符集)是指字符和编码对组成的集合。
  字符序(排序)是指在同一字符集内字符之间的比较规则。
  MySQL中的字符序名称遵从命名惯例:以字符序对应的字符集名称开头;以_ci(表示大小写不敏感),_cs(表示大小写敏感)或_bin(表示按编码值比较)结尾,例如:在字符序“utf8_general_ci”下,字符“a”和“a”是等价的;   

  

  mysql>显示变量如“字符%”;——查看MySQL字符集设置MySQL字符集设置
  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  | | Variable_name |价值?系统变量:
  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  | character_set_client | utf8 | - character_set_client:客户端来源数据使用的字符集,
  | character_set_connection | utf8 | - character_set_connection:连接层字符集
  | character_set_database | latin1 |中的一个——character_set_database:当前选中数据库的默认字符集
  | character_set_filesystem二进制| | - character_set_filesystem:文件系统字符集
  | character_set_results | utf8 | - character_set_results:查询结果字符集
  | character_set_server | latin1 |中的一个——character_set_server:内部操作字符集(服务器的字符集)
  | character_set_system | utf8 | - character_set_system:系统元数据(字段名等)字符集
  | character_sets_dir |/usr/share/mysql/charsets/|,
  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  8行集(0.00秒)   

  

  详细解释:
  1只
  服务器(数据)端的字符集和排序,可以分成四级逐层指定——服务器、数据库、表、列。当MySQL存取位于某一列(列)的数据时,如果栏的字符集和排序没有指定,就会向上追溯表的;如果表也没有指定字符集和排序,就以数据库的字符集和排序作为默认值;如果数据库仍旧没有指定,那么就以服务器的字符集和排序作为默认值。   

  

  2.
  服务器的字符集和排序的默认值又是从哪里来的呢?答案是,配置文件(my.ini)和mysqld(或者mysqld-nt)的命令行参数中都可以指定。如果不幸的,你根本没有在my.ini或者命令行中指定,那么MySQL就会使用编译MySQL时指定的默认字符集——latin1。中的一个   

  

  3.
  数据字符集转换过程:
  character_set_client→character_set_connection→character_set_(列、表、数据库、服务器)→character_set_results   

  

  MySQL默认字符集
  MySQL对于字符集的指定可以细化到一个数据库,一张表,一列。传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置。
  (1)编译MySQL时,指定了一个默认的字符集,这个字符集是latin1;中的一个
  (2)安装MySQL时,可以在配置文件(my.ini)中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
  (3)启动mysqld时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时character_set_server被设定为这个默认的字符集;
  (4)安装MySQL选择多语言支持,安装程序会自动在配置文件中把default_character_set设置为utf - 8,保证缺省情况下所有的数据库所有表的所有列的都用utf - 8存储。   

  

  mysql>创建数据库演示;——创建数据库未指定字符集,使用默认字符集创建数据库
  查询好了,1行影响(0.00秒)   

  

  mysql>显示数据库;
  + - - - - - - - - - - - - - - - - - - - - - - +
  数据库| |
  + - - - - - - - - - - - - - - - - - - - - - - +
  | information_schema |
  演示| |
  mysql | |
  | performance_schema |
  测试| |
  + - - - - - - - - - - - - - - - - - - - - - - +
  5行集(0.00秒)   

  

  mysql>显示创建数据库演示\ G;——查看创建数据库时使用的什么字符集。

mysql学习之,字符集选定,修改。