(6)mysql中的字符集

概述

??从本质上来讲,计算机只识别二进制代码,因此,不论计算机程序还是其处理的数据,最终都必须转化为二进制码,计算机才能识别。人们给每一个文字符号编码以便计算机识别处理,这就是计算机字符集的由来。

选择合适的字符集

MySQL5.6支持几十种字符集,包括UCS-2、UTF-16、UTF-16LE、UTF-32、UTF-8、utf8mb4等Unicode字符集,选择字符集可以考虑如下几个因素:

  1. 满足应用支持语言需求,如果应用需要处理各式各样的文字,应该选择Unicode编码,对于MySQL,建议为UTF-8;
  2. 如果应用中涉及已有数据导入,要充分考虑数据库字符集对已有数据的兼容性。
  3. 如果数据库只需要支持一般中文,数据量大,性能要求较高,那可以选择双字节定长编码的中文字符集,比如GBK,因为相对于UTF-8,GBK比较小,每个汉字只占2个字节,utf-8汉字需要3个字节;相反,如果主要处理英文字符,选择UTF-8更好,因为GBK,UCS-2,UTF-16中的西文字符编码都是2个字节。
  4. 如果数据库需要做大量的字符运算,选择定长字符集更好一些。
  5. 如果所有的客户端程序都支持相同的字符集,则优先选择该字符集作为数据库的字符集。

常用字符集比较:

MySQL字符集

  1. MySQL支持在同一台服务器,同一个数据库,甚至同一个表的不同字段都可以使用不同的字符集。
  2. MySQL字符集包括字符集校对规则;其中字符集用来定义MySQL存储字符串的方式,校对规则用来定义字符串比较方式,字符集与校对规则是一对多的关系。
  3. MySQL有4个级别的默认设置:服务器级,数据库级,表级,字段级。服务器级可以在MySQL配置文件(my.cnf)中设置character-set-server=utf-8;其他是创建时候设置。
  4. 对于实际应用中, 还存在客户端和服务器之间的字符集和校对规则设置。MySQL提供3个参数设置:character_set_clientcharacter_set_connectioncharacter_set_results分别代表客户端、连接、返回结果的字符集。通常不会单独设置这3个参数,可以通过命令:set names ***来设置,还可以设置my.cnf中的default-character-set=utf-8来设置。

MySQL字符集系统变量含义如下:

时间: 2024-10-24 03:32:30

(6)mysql中的字符集的相关文章

关于一些 MYSQL中的字符集概念

最近遇到mysql乱码的问题,找了些资料,先保存,后面慢慢总结自己的处理方法. 笔记: 问题环境总结: 1.前台php代码没有改变 2.原数据库,所有表的都是utf8 mysql> show variables like '%char%';+--------------------------+----------------------------------+| Variable_name            | Value                            |+---

mysql中的字符集

二进制安装的数据库可能会有乱码的问题,编译安装的数据库指定默认utf-8的不会产生乱码 1.编译安装的字符集情况 查看字符集的格式 mysql> show  create  table  sanlang  \G *************************** 1. row ***************************        Table: sanlang Create Table: CREATE TABLE `sanlang` (   `id` int(11) DEFAU

在window cmd中设置字符集后,mysql的测试

之前测试过,在centos下,所有字符集全部设为utf8,可以同时满足命令行和网页的需求. 在windows下,由于默认字符集为gbk,所以在命令行操作mysql时,需要设置set character_set_client = gbk; 今天发现,其实是要设置set character_set_results = gbk;即可,其它均为utf8或gbk都行. 另外尝试改变windows字符集,cmd下chcp 65001切换到utf8,但这好像是临时的,由于这次安装的wamp,用的自带的终端,c

PHP+MySQL中对UTF-8,UTF8(utf8),set names gbk 的理解

问题一:在我们进行数据库操作时会发现,数据库中表的编码用的是utf-8,但是在进行dos命令是要使用set names gbk (一)Mysql中默认字符集设置有四级:服务器级,数据库级,表级,和字段级   前三种都是默认设置,并不代表你的字段最终会使用这个字符集设置 (二)set names 这个mysql命令设置是客户端发出的命令编码,连接层编码,和服务器端返回结果的编码,相当于客户端和服务器交互用的编码,而不是数据保存的编码 问题二:在我们使用的时候:当我们set names utf 的时

MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题 收藏 MySQL中涉及的几个字符集

MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的.character-set-database:数据库字符集.character-set-table:数据库表字符集.优先级依次增加.所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集.character-set-client:客户端的字符

mysql中,如何查看数据库元数据(metadata)的字符集?

需求描述: mysql中,数据库的元数据也是有字符集的. 操作过程: 1.查看mysql数据库元数据的字符集 mysql> show variables like 'character_set_system'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | character_set_system | utf8 | +-------------------

MySQL 5.6中的字符集

这篇文章介绍的是MySQL  5.6中的字符集,基本是我以前学习MySQL 5.6手册时整理而来. 概论 基础概念 字符集(character set)是编码和字符符号的映射集合.排序规则(collation)是用于比较字符集中字符的规则集. 现在我们自定义一个简单的字符集character set.假设我们有一个仅有四个字母的字母表:A.B.a.b.我们给每个字母一个数字:A = 0,B = 1,a = 2,b = 3.字母A是一个字符符号,数字0是A的编码,这四个字母和它们编码的映射就是一个

SQL Server 与MySQL中排序规则与字符集相关知识的一点总结

原文:SQL Server 与MySQL中排序规则与字符集相关知识的一点总结 字符集&&排序规则 字符集是针对不同语言的字符编码的集合,比如UTF-8字符集,GBK字符集,GB2312字符集等等,不同的字符集使用不同的规则给字符进行编码排序规则则是在特定字符集的基础上特定的字符排序方式,排序规则是基于字符集的,是对字符集在排序方式维度上的一个划分.排序规则是依赖于字符集的,一种字符集可以有多种排序规则,但是一种排序规则只能基于某一种字符集的比如中文字符集,也即汉字,可以按照“拼音排序”.“

【个人笔记】《知了堂》MySQL中的数据类型

MySQL中的数据类型 1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节  范围(-128~127) smallint(m) 2个字节  范围(-32768~32767) mediumint(m) 3个字节  范围(-8388608~8388607) int(m) 4个字节  范围(-2147483648~2147483647) bigint(m) 8个字节  范围(+-9.22*10的18次方) 取值范围如果加了unsigned,则最大值翻倍,如tinyint un