加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

超具体的MySQL数据库字符集总结,值得保藏

发布时间:2019-09-14 02:27:37 所属栏目:编程 来源:波波说运维
导读:MySQL支持多种字符集(character set)提供用户存储数据,同时应承用差异排序法则(collation)做较量。下面基于MySQL5.7先容一下字符集相干变量的行使。 一、字符集、字符序的观念与接洽 在数据的存储上,MySQL提供了差异的字符集支持。而在数据的比拟操纵上

指定命据库级此外字符集、字符序。统一个MySQL处事下的数据库,可以别离指定差异的字符集/字符序。该变量值session级别暗示当前database的charset/collation,在后头的源码版本中该变量也许批改为只读,不提议修改该值。其global级别变量后头也会移除。

1. 配置数据的字符集/字符序

可以在建设、修改数据库的时辰,通过CHARACTER SET、COLLATE指定命据库的字符集、排序法则。

-建设数据库:

  1. CREATE DATABASE db_name 
  2.  [[DEFAULT] CHARACTER SET charset_name] 
  3.  [[DEFAULT] COLLATE collation_name] 

修改数据库:

  1. ALTER DATABASE db_name 
  2.  [[DEFAULT] CHARACTER SET charset_name] 
  3.  [[DEFAULT] COLLATE collation_name] 

例子:建设数据库test_schema,字符集配置为utf8,此时默认的排序法则为utf8_general_ci。

  1. CREATE DATABASE `test_schema` DEFAULT CHARACTER SET utf8; 

2. 查察数据库的字符集/字符序

有3种方法可以查察数据库的字符集/字符序。

查察test_schema的字符集、排序法则。(必要切换默认数据库):

  1. mysql> use test_schema; 
  2. mysql> SELECT @@character_set_database, @@collation_database; 

查察test_schema的字符集、数据库(不必要切换默认数据库):

  1. mysql> SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME  
  2. FROM information_schema.SCHEMATA WHERE schema_name="test_schema"; 

查察建设数据库的语句,来查察字符集:

  1. mysql> SHOW CREATE DATABASE test_schema; 

六、table的字符集、字符序

建设表、修改表的语法如下,可通过CHARACTER SET、COLLATE配置字符集、字符序。

  1. CREATE TABLE tbl_name (column_list) 
  2.  [[DEFAULT] CHARACTER SET charset_name] 
  3.  [COLLATE collation_name]] 
  4. ALTER TABLE tbl_name 
  5.  [[DEFAULT] CHARACTER SET charset_name] 
  6.  [COLLATE collation_name] 

1. 建设table并指定字符集/字符序

指定字符集为utf8,字符序则回收默认的。

  1. CREATE TABLE `test_schema`.`test_table` ( 
  2.  `id` INT NOT NULL COMMENT '', 
  3.  PRIMARY KEY (`id`) COMMENT '') 
  4. DEFAULT CHARACTER SET = utf8; 

2. 查察table的字符集/字符序

同样,有3种方法可以查察table的字符集/字符序。

  • 方法一:通过SHOW TABLE STATUS查察table状态,留意Collation为utf8_general_ci,对应的字符集为utf8。
    1.  SHOW TABLE STATUS FROM test_schema G; 
  • 方法二:查察information_schema.TABLES的信息。
    1.  USE test_schema; 
    2.  SELECT TABLE_COLLATION FROM information_schema.TABLES WHERE  
  • 方法三:通过SHOW CREATE TABLE确认。
    1.  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的列,可以指定字符集/字符序,语法如下:

  1. col_name {CHAR | VARCHAR | TEXT} (col_length) 
  2.  [CHARACTER SET charset_name] 
  3.  [COLLATE collation_name] 

1. 新增column并指定字符集/排序法则

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读