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个字 ...
随机推荐
- [Beta阶段]第十一次Scrum Meeting
Scrum Meeting博客目录 [Beta阶段]第十一次Scrum Meeting 基本信息 名称 时间 地点 时长 第十一次Scrum Meeting 19/05/20 大运村寝室6楼 15mi ...
- element UI中的select选择器的change方法需要传递多个值
如果直接调用change事件,不传任何参数,则可以获取到当前选中的值(因为默认会将event参数传递过去) 场景: 你需要将select选择器 ”选中的当前元素“ 和 ”其他你需要的值“ 一起传递过去 ...
- php curl 转为 x-www-form-urlencoded 方式
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded')); fr ...
- centos上传命令
首先安装lrzsz # yum -y install lrzsz 1.上传文件,执行命令rz,会跳出文件选择窗口,选择好文件,点击确认即可. # rz 运行rz命令后弹出选择文件窗口,找到要上传的文件 ...
- FilelistCreator --- 导出文件列表神器 及其他好用工具
https://www.sttmedia.com/ Standard Software WordCreator: Creates readable words, sentences or texts ...
- html css 浮层 侧边栏
2019-7-1 16:02:25 星期一 实现的效果是点击, 然后从左侧滑出, 再点击, 就滑进去 <!DOCTYPE HTML> <html lang="en" ...
- Linux shell字符串操作
#!/bin/bash #镜像名 image="asr-server" #镜像版本 ver="5.2.1" #容器名 dname="asr" ...
- 内存自动清理.sql
--清除存储过程缓存 DBCC FREEPROCCACHE --注:方便记住关键字 FREEPROCCACHE可以拆解成 FREE(割舍,清除) PROC(存储过程关键字简写),CACHE(缓存) - ...
- [Linux.centOS].安装Redis 腾讯云
环境 { "服务器运营商":"腾讯云", "操作系统":"CentOS 7.5 64位", "CPU" ...
- 在nginx环境下搭建基于ssl证书的websocket服务转发,wss
1.证书准备 本地调试,可以安装自签名证书,安装方法参考https本地自签名证书添加到信任证书访问 2.修改配置文件 将上面的配置文件拷贝到conf目录,添加或者修改节点如下 # HTTPS serv ...