05、MySQL—字符集
1、字符编码概念
字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。
在计算机中所看到的任何内容都是字符构成的。
字符编码(character code)是计算机针对各种符号,在计算机中的一种二进制存储代号。
字符集概念
字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同。
常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。中文文字数目大,而且还分为简体中文和繁体中文两种不同书写规则的文字,而计算机最初是按英语单字节字符设计的,因此,对中文字符进行编码,是中文信息交流的技术基础。
2、设置客户端所有字符集
如果直接通过cmd下的mysql.exe进行中文数据插入,那么可能出错
范例:直接通过cmd进行中文数据插入
出错原因:
1、 用户是通过mysql.exe来操作mysqld.exe
2、 真正的SQL执行是Mysqld.exe来执行
3、 mysql.exe将数据传入mysqld.exe的时候,没有告知其对应的符号规则(字符集),而mysqld也没有能力自己判断,就会使用自己默认的(字符集)
解决方案:mysql.exe客户端在进行数据操作之前将自己所使用的字符集告诉mysqld
Cmd下的mysql.exe默认都只有一个字符集:GBK
Mysql.exe如果告知Mysqld.exe对应的字符集类型为gbk?
快捷方式:set names 字符集
范例:将Mysqld.exe对应的字符集设置为gbk
重新进行数据插入:中文(GBK)
深层原理:客户端,服务端,连接层
Mysql.exe与Mysqld.exe之间的处理关系一共分为三层
客户端传入数据给服务端:client:character_set_client
服务端返回数据给客户端:server:character_set_results
客户端与服务端之间的连接:connection:character_set_connection
说明:
Set names 字符集的本质:就是一次性打通三层关系的字符集,变得一致。 在系统中有三个变量来记录着这三个关系对应的字符集:show variables like ‘character_set_%’; |
范例:查看character字符集
范例:查看一个新的客户端的对应的字符集关系
(1) 修改服务器端变量的值
基本语法:Set 变量名 = 值; |
范例:修改服务端的编码
修改过后,重新进行数据插入和查看的结果:插入OK,但是查看乱码,结果如下:
修改结果字符集为GBK,结果如下:
Connection只是为了更方便客户端与服务端进行字符集转换而设。 |
Set names gbk; |
Set character_set_client = gbk; //为了让服务器识别客户端传来的数据 |
Set character_set_connection = gbk;//更好的帮助客户端与服务端之间进行字符集转换 |
Set character_set_results = gbk;//为了告诉客户端服务端所有的返回的数据字符集 |
05、MySQL—字符集的更多相关文章
- MySQL字符集转换引发插入乱码问题
根据http://www.cnblogs.com/cchust/p/4601536.html进行验证测试 问题背景 在mysql上面执行一条普通的insert语句,结果报错: Incorrect st ...
- 略懂 MySQL字符集
本文虽说旨在明白.但若略懂亦可.毕竟诸葛孔明如是 只有基于字符的值才有所谓字符集的概念 某些字符集可能需要更多CPU.消费更多的内存和磁盘空间.甚至影响索引使用 这还不包括令人 ...
- mysql 字符集配置
查看和设置MySQL数据库字符集作者:scorpio 2008-01-21 10:05:17 标签: 杂谈 Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / -ina ...
- [mysql]深入Mysql字符集设置[转载]
http://www.laruence.com/2008/01/05/12.html 基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如’A'.’B'等: • 给定一系列字符, ...
- 深入Mysql字符集设置
作者: Laruence( ) 本文地址: http://www.laruence.com/2008/01/05/12.html 转载请注明出处 根据Chaos Wang的PPT整理而成, 在此 ...
- MySQL字符集与排序规则总结
字符集与排序规则概念 在数据库当中都有字符集和排序规则的概念, 很多开发人员甚至包括有些DBA都会将这个混淆,当然这个情况也有一些情有可原的原因.一来两者本来就是相辅相成,相互依赖关联: 另外一方 ...
- mysql字符集那些事
1..查看mysql当前使用的字符集. 登录mysql 在mysql 里输入 show variables like 'character_set%' mysql> show variables ...
- 如何修改MySQL字符集
首先,MySQL的字符集问题主要是两个概念,一个是Character Sets,一个是Collations,前者是字符内容及编码,后者是对前者进行比较操作的一些规则.这两个参数集可以在数据库实例.单个 ...
- Mysql字符集设置
转 基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如’A'.’B'等:• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encodi ...
- MySQL字符集
字符集的选择 1.如果数据库只需要支持中文,数据量很大,性能要求也很高,应该选择双字节定长编码的中文字符集(如GBK).因为相对于UTF-8而言,GBK"较小",每个汉字只占2个字 ...
随机推荐
- Xshell远程登录
1.xshell由一台服务器a登录另一台服务器b sftp -oPort = root@ip 2.下载git /上传pull git b服务器想下载的目标文件目录 a服务器上的文件下载目录
- 【Beta】Scrum meeting 5
目录 写在前面 进度情况 任务进度表 Beta-1阶段燃尽图 遇到的困难 照片 commit记录截图 小程序前端仓库 后端代码仓库 技术博客 写在前面 例会时间:5.9 22:30-23:30 例会地 ...
- Elasticsearch Java Rest Client简述
ESJavaClient的历史 JavaAPI Client 优势:基于transport进行数据访问,能够使用ES集群内部的性能特性,性能相对好 劣势:client版本需要和es集群版本一致,数据序 ...
- java对象生成随意属性值
public class RandomObjectValue { public static <T> T getObject(Class<?> clazz) { T t = n ...
- Python导入 from lxml import etree 导入不了
问题在学爬虫,Python 版本是2.7,安装的lxml包是4.3的,在 from lxml import etree 时发现一直报错,网上查询,原来是Python版本和lxml包版本不一致导致的. ...
- nginx 日志打印响应时间 request_time 和 upstream_response_time
设置log_format,添加request_time,$upstream_response_time,位置随意 og_format main '"$request_time" ...
- chmod: changing permissions of ‘/etc/fstab': Read-only file system
给passwd文件加权限,修改/etc/fstab目录下所有的文件夹属性为可写可读可执行,执行以下命令:chomd 777 /etc/fstab 的时候提示错误: chmod: changing pe ...
- 【GMT43智能液晶模块】例程十六:LAN_TCPS实验——以太网数据传输
源代码下载链接: 链接:https://pan.baidu.com/s/1e5Qp-xASjlA0pje3S7TdIg提取码:9v37 复制这段内容后打开百度网盘手机App,操作更方便哦 GMT43购 ...
- DTLZ
DTLZ 开新坑,未完待续 觉得有用的话,欢迎一起讨论相互学习~Follow Me Reference [1] Multiobjective Immune Algorithm with Nondomi ...
- 【翻译】FlinkCEP-Flink的复杂事件处理
本文翻译自官网:FlinkCEP - Complex event processing for Flink FlinkCEP是在Flink之上实现的复杂事件处理(CEP)库. 它使您可以检测无穷无尽的 ...