《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 安装并启动 ...
随机推荐
- 10个对Web开发者最有用的Python包
Python最近成为了开发人员最喜欢的语言之一.无论你是专业的,业余的,还是一个初学者,你都可以从Python语言及其程序包中受益.Python已经被证明是当今最具活力的面向对象的编程语言之一.这就是 ...
- python调用nmap探测局域网设备
平台:linux 描述:利用os.popen()函数调用系统命令nmap进行扫描,并用grep命令对扫描结果关键内容进行提取 代码 #!/usr/bin/env pthon #--*--coding= ...
- var_dump
1:var_dump 主要输出类型和.长度和变量的值: 2: var_dump() 能打印出类型print_r() 只能打出值echo() 是正常输出...需要精确调试的时候用 var_dump(); ...
- AI金融知识自学偏量化方向-前提1
前提: 统计学习(统计分析)和机器学习之间的区别 金融公司采用机器学习技术及招募相关人才要求 第一个问题: 机器学习和统计学都是数据科学的一部分.机器学习中的学习一词表示算法依赖于一些数据(被用作训 ...
- WebMisSharp更新了,最新版本1.5.2,WebMisCentral-Client最新版
WebMisSharp更新记录 Version 1.5.2 1.5.2下载地址:http://item.taobao.com/item.htm?spm=686.1000925.1000774.13.w ...
- Java知多少(38)抽象类的概念和使用
在自上而下的继承层次结构中,位于上层的类更具有通用性,甚至可能更加抽象.从某种角度看,祖先类更加通用,它只包含一些最基本的成员,人们只将它作为派生其他类的基类,而不会用来创建对象.甚至,你可以只给出方 ...
- android SQLite数据库的基本操作
SQLite是Android使用的轻量级的数据库,开发Android应用是对数据库的操作自然是必不可少. Android提供了一个SQLiteOpenHelper类来可以很方便的操作数据库, 继承和扩 ...
- [UFLDL] Generative Model
这一部分是个坑,应该对绝大多数菜鸡晕头转向的部分,因为有来自物理学界的问候. Deep learning:十九(RBM简单理解) Deep learning:十八(关于随机采样) 采样方法 [B ...
- umi怎么去添加配置式路由
今天在学习umi,他的路由机制非常的方便,但是在学到配置式路由的时候,看官方文档里面一笔带过: 对于我这种小萌新来说,有点懵,我需要把配置文件放到哪里呢?经过一番研究,发现它是放在根目录的.umirc ...
- Android Studio开发第二篇创建新项目
创建新项目很简单,File-New-New Project,这个没什么好说的跟Eclipse都差不都. 第二步SDK选择,有手机平板还有Wear,TV,汽车Auto,谷歌眼镜等几个种平台,这里就先选择 ...