字符集
字符集,描述可见到的图形,在存储和传输时使用的编码称之为字符集!
指的是:
图形与编码之间的对应关系!
字 => 11100101 11100001 00010100
数据存储的编码
数据是存储在服务器端的!究竟是以哪种编码保存的,怎么决定?
数据是最终要映射(保存)到字段的层面上!因此决定数据的编码,也是最终由字段来决定!
确定数据的存储编码是由以下的方案完成的:
1, 先看字段的编码!如果存在则确定完毕!
2, 如果字段没有设置编码,查看表的编码,如果有,则确定数据编码!
3, 如果表没有编码,查看库的编码,如果有,则确定数据编码!
4, 如果库也没有编码,则有服务器程序确定!
客户端操作,查询的编码
在客户端与服务器端交互时,存在两个重要的编码:
1, 客户端发送数据的编码
2, 客户端接收到服务器数据编码!
可以通过 show variables like ‘character_set_%’展示以character_set开头变量,其中就有上面的两个值:
使用 set 变量名 = 变量值的形式更改变量值!
set character_set_client=gbk;
set character_set_results=gbk;
set names gbk,就是一个快捷操作,将上面两个配置同时更改成目标编码!
set names gbk|utf8 取决于,客户端所能接受的编码!
客户端发送一条sql:
客户端编码(character_set_client)->连接层编码(characger_set_connection)->服务器内部编码(server_internal)
服务器端发送结果:
服务器内部编码(server_internal)->连接层编码(characger_set_connection)->客户端接收的结果编码(character_set_results)
校对集,collate
指的是字符之间的比较关系,主要用于字段间的排序!
利用 show collation; 查看到所有的校对集!
校对集,依赖于字符集!
校对集,指的是,在某个字符集下,字符的排序关系应该是什么,称之为校对集!
我们典型的选择:
utf8_general_ci;
utf8_unicode_ci;
典型的后缀:
_bin 二进制编码层面直接比较:
_ci 忽略大小写(大小写不敏感)比较
_cs 大小写敏感比较
- 相关文章
- find_in_set在集合中查找
- sql查询自定义排序field函数
- sql显示表结构及索引
- sql修改表
- 添加、删除索引
- sql分组
- sql子查询
- sql多表更新
- sql建表同时插入数据
- sql多表删除
- 热门文章
- win7中将文件拷贝到虚拟机linux下
- phpexcel设置行高及列宽,背景颜色,
- rabbitmq无法启动
- intellij idea不显示git push按钮
- php7中使用mongodb的aggregate进行
- laravel页面静态化的方法
- centos7.4 64位下swoole安装及配置
- navicate连接mycat报1184错误
- curl设置超时不起作用(CURLOPT_TIM
- devops-jenkins容器为pending状态
- 好评文章
- phpexcel设置行高及列宽,背景颜色,
- php7中使用mongodb的aggregate进行
- intellij idea打开文件所在文件夹
- windows下使用MongoDB Compass Com
- win7中将文件拷贝到虚拟机linux下
- laravel 中悲观锁 & 乐观锁的使用
- 单点登录sso原理及php实现方式及de
- navicate连接mycat报1184错误
- rabbitmq无法启动
- laravel整合dingo/api方法步骤:jwt
- 我的项目
- 【github】www.github.com/hurong241
- 【码云】gitee.com/hu_rong/projects
- 【docker hub】hub.docker.com/repositories/hurong241
- 【packagist】packagist.org/users/hurong241/packages
- 站点信息
- 建站时间:2011年
- 文章数:623篇
- 浏览数:1303109