码迷,mamicode.com
首页 > 数据库 > 详细

MySQL字符集详解

时间:2017-05-26 13:14:35      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:个数   解决   style   blog   primary   计算   server   rac   现实生活   

一、什么是字符集

  简单的说吧、字符集就是一组对应关系的集合;

  1、现在的计算机是在二进制的基础上建立出来的、二进制是数值的一种表达方式、也就是说二进制只的表达“数”、如十进制的3,在二进制中

  就可以写成00000011;

  2、然而在现实生活当中相对于"数"而言我们用到更多的是“文字”;那这个问题(怎么保存文字)怎么解决呢?然而这个问题根本没有难道

  他们、它们决定用一个折中的方式解决;如:保存‘a‘的时候我就保存一个0,保存‘b‘的时候我就保存一个1,保存‘A‘的时候我就保存一个2

  保存’B‘的时候我就保存一个3。于是整个对应关系就变成了这样

  字符 ->   编码

  ‘a‘  -->  0

  ‘b‘  -->  1

  ‘A‘  -->  2

  ‘B‘  -->  3

  就这样我们就定义了一个只有4个字符的字符集了;只不过我们这个字符集相比gbk\utf8这样的字符集不知道low到那里去了。

 

二、什么是排序规则

  1、上面的内容我们已经自己定义了一个字符集了,有了字符集一些最基本的操作就可能做了,如:我想知道一个字符它是不是‘a‘那么

  我只要去看这个字符的编码是不是0就可以了,这样就把一个字符问题变成了一个数字问题了,这样数据上的相等(=),大小(>,<),也就有了

  新的意义了。

  2、我们这个字符集还有什么不足吗?如:要做到不区分大小写,那么我们之前的 =,<,>也就都来灵了;我们还要给这个字符集加上新的

  规则才行;如我们在这里可以粗鲁的加上规则 1:0=2 ,2: 1=3;这样就可能做不区分大小写了。

 

三、mysql中可以怎么指定字符集

  1、mysql可以在实例级别指定默认字符集、配置项名:character_set_server

  2、可以在创建库的时候指定字符集

create database testdb character set utf8;

  3、可以在创建表的时候指定表级的字符集

create table person(id int not null auto_increment primary key,name varchar(4)) character set utf8;

-- 在表级别指定字符集是utf8

  4、可以在创建表的时候指定

create table person(id int not null auto_increment primary key,name varchar(4) character set utf8);

-- 指定name 列的字符集是utf8

 

 

      

 

 

 

 

----

MySQL字符集详解

标签:个数   解决   style   blog   primary   计算   server   rac   现实生活   

原文地址:http://www.cnblogs.com/JiangLe/p/6907748.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!