一:什么是字符集呢?

  - 引用书中的例子:同样是大熊猫,在大陆叫熊猫,在台湾叫猫熊,在美国叫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 字符集》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. 【九天教您南方cass 9.1】 08 绘制等高线及对其处理

    同学们大家好,欢迎收看由老王测量上班记出品的cass9.1视频课程 我是本节课主讲老师九天. 我们讲课的教程附件也是共享的,请注意索取测量空间中. [点击索取cass教程]5元立得 (给客服说暗号:“ ...

  2. 【iCore4 双核心板_FPGA】例程八:乘法器实验——乘法器使用

    实验现象: 程序运行时,绿色led闪烁(目前,具体的乘法器调用请参考iCore3乘法器例程) 核心代码: module multiplier_ctrl( input clk_25m, input rs ...

  3. R语言使用RMySQL连接及读写Mysql数据库

    简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式. 系统环境说明 Redhat系统:Linux 460-42.6.32-431.29.2.el6.x86_64 系统编码:LANG=zh_ ...

  4. 稍稍解读下JDK8的HashMap

    首先,源码中上来就有一大段注释,但最重要的就是第一句. 大意如下: 本map经常用作一个 binned (bucketed) hash table (下面有解释),但是,当bins很大的时候,它们会被 ...

  5. python中的生成器函数是如何工作的?

    以下内容基于python3.4 1. python中的普通函数是怎么运行的? 当一个python函数在执行时,它会在相应的python栈帧上运行,栈帧表示程序运行时函数调用栈中的某一帧.想要获得某个函 ...

  6. 什么是对象:EVERYTHING IS OBJECT(万物皆对象)

      所有的事物都有两个方面: 有什么(属性):用来描述对象. 能够做什么(方法):告诉外界对象有那些功能. 后者以前者为基础. 大的对象的属性也可以是一个对象.

  7. Docker孵化的5个开源项目

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/M2l0ZgSsVc7r69eFdTj/article/details/81977243 回想过去短短 ...

  8. CentOS7主机名修改

    1.命令行更改主机名,重启终端即生效. #hostnamectl --static set-hostname k8s-master

  9. Redhat6.5——解决yum功能不能正常使用

    以前或多或少接触过linux服务器,由于是服务器上的,很多东西也没去玩过.要想多研究,还是得自己弄一个linux系统.由于正常工作,还是接触windows更多,双系统显然没有那么方便,所以决定弄个虚拟 ...

  10. Git错误:error: The following untracked working tree files would be overwritten by merge:

    [andy@localhost weixin_robot]$ git pull Updating d652d1c..fa05549 error: The following untracked wor ...