mysql字符集操作

1.查看字符集编码设置

 show variables like '%character%';

   

     

2.设置字符集编码

set names 'utf8';

相当于同时:

  

set character_set_client = utf8;

set character_set_results = utf8;

set character_set_connection = utf8;

3、创建数据库并设置字符集编码和核对。

CREATE DATABASE IF NOT EXISTS <dbName> DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

在默认情况下:

数据库服务器编码->数据库编码->数据表编码->字段编码

因此,后面的创建是数据表、字段默认都会以数据库字符集进行编码。

4、修改数据库的字符集 编码/核对

ALTER DATABASE <dbName> CHARACTER SET utf8 COLLATE utf8_general_ci;

修改后的编码只对后面创建表默认编码有影响,对现有的表没有作用。

5、修改数据表的字符集 编码/核对

SHOW FULL COLUMNS FROM <tableName>;

    # 查看collation类型

5.1  只修改表的字符集,影响后续该表新增列的默认定义,已有列的字符集不受影响。

alter table <tableName> character set utf8

5.2  修改表的字符集和已有列字符集,并将已有数据进行字符集编码转换

alter table <tableName> convert to character set utf8 collate utf8_unicode_ci; 

6、核对和字符集的关系

校对规则特征:

  ①两个不同的字符集不能有相同的校对规则;

  ②每个字符集有一个默认校对规则;

  ③存在校对规则命名约定:以其相关的字符集名开始,中间包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。

注意:

  系统使用utf8字符集,若使用utf8_bin校对规则执行SQL查询时区分大小写,使用utf8_general_ci不区分大小写(默认的utf8字符集对应的校对规则是utf8_general_ci)。

7、修改字符集编码时,不设置核对时,系统会自动设置默认核对,默认核对是不区分大小写。

如果不设置核对,会根据字符集编码设置默认的核对

ALTER DATABASE <dbName> CHARACTER SET utf8 COLLATE utf8_general_ci;

等价于

ALTER DATABASE <dbName> CHARACTER SET utf8;

参考文档:https://www.cnblogs.com/geaozhang/p/6724393.html?utm_source=itdadao&utm_medium=referral

猜你喜欢

转载自liuyunlong1229.iteye.com/blog/2406896
今日推荐