《Mysql 字符集》
一:什么是字符集呢?
- 引用书中的例子:同样是大熊猫,在大陆叫熊猫,在台湾叫猫熊,在美国叫Panda,要到了非洲,可能都不知道叫啥(于是就乱码了)。
- 在例子之后引入字符集的概念:字符集就是指符号和字符编码的集合。
- 不同地方的字典是不同的,就像你给美国人民看“熊猫两个字”,他们绝对不会联想出是 Panda(大熊猫) 这种动物的。
- SO,正确的使用字符集是非常重要的,使得输入与输出相匹配,才能出现正确的结果。
二:什么是字符集校对规则?(了解)
- 这里只做了解,因为每种字符集都用默认的校对规则,会在之后讲述。
- 简单来说,就是一种字符集合的排序规则。
三:字符集简介
- GB2312 包含简体中文及常用符号,采用双字节编码方式(一个汉字存两个字节)
- GBK 包含 中、日、韩 的大字符集,GB2312 可以说是 GBK 的子集,也可以说 GBK 是 GB2312 的超集。也是双字节编码方式。
- UFT8 支持大部分的常见字符(西、中、日、韩、法、俄),对英文一个字节编码,对于其他(如中文),采用三个字节编码。
- UTF8MB4 一个字符 4 字节存储,支持的字符最广,占用也最大。(支持 emoji)
四:如何选择合适的字符集?
- 支持多国语言配置, 选择 UTF-8
- 如果需要兼容老数据,必须选择包含该字符集的字符集合(也就是必须选择包含老数据的字符集)
- 如果只支持一般中文,数据量大,并且需要较高的性能,请选用GBK(比UTF8占用更小)
- 需要做字符集运算,选择定长字符,因为定长比不定长处理速度更快
- 选用字符集之后,请保持所有字符集一致
五:查看当前数据库版本支持什么字符集?
- 可以通过使用 show character set 查看 数据库版本 支持的字符集
六:服务端默认字符集用处?
- 设定 服务端字符集,避免因为服务端字符集和表字符集不同导致的乱码等问题。
- 
- 在这里涉及几个比较关键的,拿出来说一下
- 客户端发出的SQL语句,字符集由 character_set_client 来指定。
- 服务端收到SQL语句,字符集由 character_set_connection 来指定
- 服务端返回结果,字符集由 character_set_results 来指定。
七:如何设定服务端默认字符集?
- 全局设定
- 整个 MySQL 服务中生效。
- 写入 Mysql.conf 配置,每次启动 Mysql 服务生效。
- character_set_server=utf8
- 客户端设置,修改字符集(重启服务丢失)
- set global character_set_server=utf8;
八:用于指定存储数据时的字符集?
- 数据库级别
- 建立指定字符集的数据库
- CREATE DATABASE 数据库名 CHARSET 字符集;
- 查看数据库使用字符集
- SHOW CREATE DATABASE 数据库名;
- 修改数据库使用字符集
- ALTER DATABASE 数据库名 CHARSET 字符集;
- 表级别
- 建立表指定字符集
- CREATE TABLE 表名 (...) CHARSET=字符集;
- 修改表指定字符集
- ALTER TABLE 表名 CHARACTER SET 字符集;
- 列级别
- 建立指定字段字符集
- CREATE TABLE 表名 (字段名 VARCHAR(20) CHARSET 字符集....);
- 查看表中各列字符集定义
- SHOW FULL COLUMNS FROM 表名;
《Mysql 字符集》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- 推荐几个Windows工具软件: HDDB - Everything的替代品
主页: http://hddb.xp-zed.com/index.html 简单地说,HDDB 是NTFS磁盘的文件搜索工具,它最开始是模仿 Everything 的,但解决了 Everything ...
- 【iCore4 双核心板_ARM】例程二十一:LWIP_TCP_SERVER实验——以太网数据传输
实验现象: 核心代码: int main(void) { system_clock.initialize(); led.initialize(); adc.initialize(); delay.in ...
- 用HTML5+JS开发跨平台的桌面应用
通过Node.js和WebKit技术的融合,开发者可以用HTML5技术编写UI,同时又能利用Node.js平台上众多library访问本地OS的能力,最终达到用Web技术就可以编写桌面应用的目的. 选 ...
- 【css】css 中文字体 unicode 对照表
css 中文字体可以用 unicode 格式来表示,比如“宋体”可以用 \5B8B\4F53 来表示.具体参考下表: 中文名 英文名 unicode 宋体 SimSun \5B8B\4F53 黑体 S ...
- 【Python】socket模块应用
[Socket] 本文记录了一些socket模块的简单应用,对于具体原理还没来得及深究. ■ 利用socket模块进行端口连接验证和扫描 在linux中常用nc命令来进行远端端口是否开放的验证.但是这 ...
- ubuntu GCC 版本切换
(1) 查看gcc以及g++的版本 gcc -v g++ -v star@ai:~ $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_L ...
- Elasticsearch 学习之不停止服务,完成升级重启维护操作
我们可以设置集群的平衡参数来暂时禁用掉平衡,具体步骤如下: 1.如果可能的话,先暂停掉数据新增和更新操作,这样会提高集群恢复的时间: 2.禁用集群分片平衡操作,直到告诉集群可以恢复平衡操作为止,禁用配 ...
- win2008在组件服务中未找到office组件服务
在win2003系统,cmd中输入 dcomcnfg ,组件服务里面找到office的组件服务,但win2008 R2 64位操作系统需要输入comexp.msc -32 tks:http://www ...
- Sequential Minimal Optimization (SMO) 算法
SVM 最终关于 $a$ 目标函数为凸优化问题,该问题具有全局最优解,许多最优化算法都可以解决该问题,但当样本容量相对很大时,通常采用 SMO 算法(比如 LIBSVM),该算法为启发式算法,考虑在约 ...
- Red Hat6设置使用CentOS的yum源
环境查看 red hat系统使用自己默认的yum源未注册在使用yum安装软件的时候会出现以下错误提示 可以修改成centos的yum源 卸载yum软件 rpm -qa|grep yum|xargs r ...