一:什么是字符集呢?

  - 引用书中的例子:同样是大熊猫,在大陆叫熊猫,在台湾叫猫熊,在美国叫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. Numpy合并矩阵

    横向合并:hstack 纵向合并:vstack

  2. 【iCore4 双核心板_FPGA】例程七:状态机实验——状态机使用

    实验现象:按键每按下一次,三色LED改变一次状态. 核心代码: //--------------------module_rst_n---------------------------// modu ...

  3. C++ 成员函数赋值给C 的函数指针的采坑录

    最近做一个banana Pi M1+的硬解码器封装成类的时候,由于是依赖ffmpeg的,而ffmpeg是C 实现的,本来demo 都是直接用C写的,测试也没有问题,想着封装也不会有问题,至少自己对C+ ...

  4. Vue.js常用指令:v-on

    一.v-on指令 v-on指令在Vue.js中用来处理对应的事件.用法: v-on:事件类型="函数体" 例如:点击按钮的时候执行play事件 <button v-on:cl ...

  5. ViewPager PagerAdapter not updating the View

    There are several ways to achieve this. The first option is easier, but bit more inefficient. Overri ...

  6. mysql 第二高薪水

    编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | ...

  7. Eclipse设置默认的换行长度

    1. 点击Window->Preferences->Java->Code Style->Formatter 2. 点击New,给profile随意取个名字,点击OK 3. Ma ...

  8. 【Scikit】实现Multi-label text classification代码模板

    Refer to: https://stackoverflow.com/a/10527953 code: # -*- coding: utf-8 -*- import numpy as np from ...

  9. 【CF566C】Logistical Questions 点分

    [CF566C]Logistical Questions 题意:给你一棵n个点的树,点有点权,边有边权,两点间的距离为两点间的边权和的$3\over 2$次方.求这棵树的带权重心. $n\le 200 ...

  10. Java NIO学习笔记---I/O与NIO概述

    文章目录: 1.什么是IO 2.什么是Java NIO 3.I/O常见概念 4.为什么使用NIO 5.IO VS NIO 一.什么是IO I/O 或者输入/输出 , 指的是计算机与外部世界或者一个程序 ...