一、字符集

1.mysql的字符集设置非常灵活

可以设置服务器默认字符集;

数据库默认字符集;

表默认字符集;

列字符集;

如果某一级别没有指定字符集,则继承上一级。

查看所有字符集语句:show character set;

2.以表声明为utf-8为例,最终存储在表中的数据为utf-8

①我们要告诉服务器,我给你发送的数据是什么编码?character_set_client

②告诉字符集转换器,转换成什么编码?character_set_connection

③查询的结果用什么编码?character_set_results

如果以上三者都为字符集N,可简写为set names N;

3.什么情况下会出现乱码呢?

我们首先创建一个测试表指定表的字符集为utf8

create table temp(

name varchar(10)

) charset utf8;

然后执行这三条命令:

set character_set_client=gbk;

set character_set_connection=gbk;

set_character_set_results=gbk; 这三句可以简写为set names gbk;

最后往表里插入一条数据:

insert into temp values('中国');

select * from temp;这时候显示的结果是正常的。

当我们再执行这句命令时:set character_results=utf8;

出现乱码了,如图:

由此可得出当返回的结果result的字符集与客户端的字符集不符的时候会出现乱码。

还有一种情况也会出现乱码:client声明与事实不符时,你客户端明明是utf8,你却非要叫我转成gbk的,如下图:

可能还有很多种情况,这里没有一一列举。

4.什么情况下会造成数据的丢失呢?

执行这三条语句:

set character_set_client=gbk;

set character_set_connection=latin1;

set character_set_results=gbk;

再往表里插入一条数据:insert into temp values('美国');

最后查询的时候结果如下图:

数据丢失了。

由此可得出当connection和服务器的字符集比client小时,会造成数据的丢失,可能用语不是很准确,但是能理解即可以了。个人理解,就跟java里面不同数据类型相互转换时一样,比如把double类型强制转换成int类型,就会造成精度的丢失一样。

。。。。。。

二、校对集

什么是校对集?

校对集:指字符集的排序规则。

查看所有校对集语句:show collation;

一种字符集可以有一个或多个排序规则。

以utf8为例,默认是使用utf8_general_ci校对集,也可以按二进制来排,utf8_bin

怎样声明校对集?

create table tableName

(

...

)charset utf8 collate utf8_general_ci;

注意:声明的校对集必须是字符集合法的校对集。比如你字符集是utf8,你不能声明gbk的校对集。

mysql校对集_mysql之字符集与校对集相关推荐

  1. mysql 查看校对集_mysql 查看字符集和校对规则

    MySQL 服务器可以支持多种字符集,在同一台服务器.同一个数据库.甚至同一个表的不同字段都可以指定使用不同的字符集,相比Oracle 等其他数据库管理系统,在同一个 数据库只能使用相同的字符集,My ...

  2. mysql 修改库的校对集_mysql数据库的基本操作(增删改查、字符集、校对集)

    MySQL数据库概述 MySQL数据库是经典的关系型数据库管理系统,MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Dat ...

  3. mysql字符集与校对规则设置_mysql中的字符集和校对规则(mysql校对集)

    1.简要说明介绍 字符集和校对规则 字符集是一套符号和编码.校对规则是在字符集内用于比较字符的一套规则. MySql在collation提供较强的支持,oracel在这方面没查到相应的资料. 不同字符 ...

  4. mysql字符集与校对规则设置_MySQL 字符集与校对规则

    1.创建对象时的默认值MySQL 的设置可以分为两类 , 创建对象时的默认值 , 在服务器和客户端通信时的设置 . MySQL 服务器有默认的字符集和校对规则 , 每个数据库也有自己的默认值 . 每个 ...

  5. mysql校对规则_MySQL中的校对规则

    详解MySQL中的校对规则 Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is ...

  6. mysql校对规则_MYSQL校对规则

    一.前言 有时候遇到这种情况,你用一个like语句查询,查到的结果中有一些并没有包含你查询的关键词的纪录: 有时候遇到这种情况,你的数据库自作聪明的大小写不敏感,让你在更新时把大小写不同的两条记录都更 ...

  7. MYSQL字符集与校对规则

    MYSQL字符集与校对规则 一. 字符集与校队规则概述 简单的说字符集就是一套文字符号及编码.比较规则的集合. 目前支持中文的常用的字符集有UTF-8.GBK.GB2312等,MYSQL服务器支持多种 ...

  8. ci框架 mysql 超时时间_mysql 字符集和校验规则( CHARSET amp; COLLATE)

    我们首先看下常见建表语句: mallAllGoodsCREATE TABLE `qywl`.`mallAllGoods` ( `id` varchar(64) NOT NULL COMMENT '主键 ...

  9. mysql 汉字一排序规则_MySQL 的字符集与排序规则

    今天突然被同事问到,MySql 里的 uft8 与 utf8mb4 究竟有什么区别,当时我也是一脸问号,因此特地去了解了一下. 字符集 uft8 与 utf8mb4 其实指的是 MySQL 中的字符集 ...

最新文章

  1. native2ascii插件配置
  2. HDU 2035.人见人爱A^B-快速幂
  3. SpringMVC请求处理流程
  4. 有多个重载参数pow_随时随地想充就充,同时最多能给三部手机充电的南卡无线充电宝POW-1体验...
  5. 用javascript读取xml,并进行修改xml数据,解决保存没有权限问题
  6. [css] 如何阻止:hover、:active等鼠标行为状态的触发?
  7. 《JavaWeb从入门到改行》注册时向指定邮箱发送邮件激活
  8. java栈匹配括号_使用到栈结构的一个表达式括号匹配检查类
  9. 提示编码有问题时,VS保存选项
  10. 在WPF中开启摄像头扫描二维码(Media+Zxing)
  11. cad2010多个文件并排显示_CAD2010中如何将多个文档并排显示在一个窗口里?
  12. 现代通信原理思维导图--第二章 确知信号
  13. 如何重装mac系统,u盘安装苹果macos系统教程
  14. 图像scale与相机参数_Blender 的相机参数解析
  15. 附件英文计算机英语,详情请参见附件的英文说法
  16. 好大一个家 陈佩斯
  17. 苹果App卡审怎么办?
  18. openjudge 1.6.2 陶陶摘苹果
  19. CMD命令窗口全屏设置
  20. 试了一下搜狐云景对ruby的支持

热门文章

  1. 计算机d都学啥,信息学奥数基础知识D计算机的基本组成
  2. 安装不文件不完全_冬日不偷懒 跑步机不完全使用指南
  3. python处理excel代码_Python实现读写Excel和修改Excel的代码
  4. Android studio百度地图的使用
  5. 深入理解linux根目录结构
  6. php如何去除侧栏,设置内容区侧栏
  7. 语言怎么把横的光标变成竖的_想练字,先会学会控笔吧!基础都不牢,怎么练招式?...
  8. 服务器上如何安装两个php网站,服务器安装两个php版本吗
  9. LeetCode Subarray Sum Equals K
  10. 第1章 认识jQuery