mysql字符集编码和数据类型

字符集编码

字符集是一套符号和编码。mysql、database、table、column都可以设置编码。

--查看所有字符集编码项命令
show variables like 'character_set_%';
选项名 备注
character_set_client 客户端向服务器发送数据时使用的编码
character_set_results 服务器端返回给客户端的结果所使用的编码
character_set_connection 数据库连接编码
character_set_database 数据库编码
character_set_filesystem 文件系统编码
character_set_server 服务端编码
character_set_system 系统编码
character_set_dir 指定字符编码文件路径
  • 更改字符编码
    命令格式:set 变量名 = 字符编码;
    ex:
set character_set_client = utf8;
set character_set_results = utf8;
set character_set_connection = utf8;

ps:可以通过格式: set names 字符编码 来同时设置character_set_client、character_set_connection、character_set_result的编码

校对集

校对集是数据比较的方式,共有三种格式:_bin:binary, 二进制比较, 区分大小写;_cs: case sensitive, 大小写敏感;_ci: case insensitice, 大小写不敏感;校对集必须在没有数据之前设置才有效,如果在已有数据的情况下进行修改,那么修改无效。

--显示所有字符集
show character set;
show charset;
--显示符合匹配规则的字符集
show character set like '%d%';
show charset like '%d%';
--显示所有校对集
show collation;
--显示符合匹配规则的校对集
show collation like '%d%';
--设置字符集编码为utf8
charset utf8;
--设置校对集编码
collate utf8_general_ci;

数据类型

  • 数值类型
    整型
类型 字节
tinyint 1字节
smallint 2字节
mediumint 3字节
int 4字节
bigint 8字节

int(M) M表示总位数。默认存在符号位,unsigned 属性修改显示宽度,如果某个数不够定义字段时设置的位数,则前面以0补填,zerofill 属性修改
ps:MySQL没有布尔类型,通过整型0和1表示。常用tinyint(1)表示布尔型。

浮点型

类型 字节
float(单精度) 4字节
double(双精度) 8字节

浮点型既支持符号位 unsigned 属性,也支持显示宽度 zerofill 属性。不同于整型,前后均会补填0.定义浮点型时,需指定总位数和小数位数。float(M, D) double(M, D)M表示总位数,D表示小数位数。M和D的大小会决定浮点数的范围。不同于整型的固定范围。M既表示总位数(不包括小数点和正负号),也表示显示宽度(所有显示符号均包括)。支持科学计数法表示。浮点数表示近似值。

定点数
decimal是可变长度。decimal(M, D) M也表示总位数,D表示小数位数。保存一个精确的数值,不会发生数据的改变,不同于浮点数的四舍五入。将浮点数转换为字符串来保存,每9位数字保存为4个字节。

  • 字符串类型
    char, varchar
    char 定长字符串,速度快,但浪费空间。varchar 变长字符串,速度慢,但节省空间。char(M)、varchar(M)M表示能存储的最大长度,此长度是字符数,非字节数。不同的编码,所占用的空间不同。char,最多255个字符,与编码无关。varchar,最多65535字符,与编码有关。一条有效记录最大不能超过65535个字节。utf8 最大为21844个字符,gbk 最大为32766个字符,latin1 最大为65532个字符。varchar 是变长的,需要利用存储空间保存 varchar 的长度,如果数据小于255个字节,则采用一个字节来保存长度,反之需要两个字节来保存。varchar 的最大有效长度由最大行大小和使用的字符集确定。最大有效长度是65532字节,因为在varchar存字符串时,第一个字节是空的,不存在任何数据,然后还需两个字节来存放字符串的长度,所以有效长度是64432-1-2=65532字节。
    blob, text
    blob 二进制字符串(字节字符串)
    tinyblob, blob, mediumblob, longblob
    text 非二进制字符串(字符字符串)
    tinytext, text, mediumtext, longtext
    text 在定义时,不需要定义长度,也不会计算总长度。
    text 类型在定义时,不可给default值。
    binary, varbinary
    类似于char和varchar,用于保存二进制字符串,也就是保存字节字符串而非字符字符串。char, varchar, text 对应 binary, varbinary, blob。
    日期时间类型
    datetime 8字节 日期及时间 1000-01-01 00:00:00 到 9999-12-31 23:59:59
    date 3字节 日期 1000-01-01 到 9999-12-31
    timestamp 4字节 时间戳 19700101000000 到 2038-01-19 03:14:07
    time 3字节 时间 -838:59:59 到 838:59:59
    year 1字节 年份 1901 - 2155
    枚举和集合
    枚举(enum)
    enum(val1, val2, val3...)
    在已知的值中进行单选。最大数量为65535.
    枚举值在保存时,以2个字节的整型(smallint)保存。每个枚举值,按保存的位置顺序,从1开始逐一递增。
    表现为字符串类型,存储却是整型。
    NULL值的索引是NULL。
    空字符串错误值的索引值是0。
    集合(set)
    set(val1, val2, val3...)
    create table tab ( gender set('男', '女') );
    insert into tab values ('男, 女');
    最多可以有64个不同的成员。以bigint存储,共8个字节。采取位运算的形式。当创建表时,SET成员值的尾部空格将自动被删除。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 本文基于MySQL5.6版本进行描述从大的方面来讲,MySQL的数据类型分为4种 数值类型 日期和时间 字符串类型...
    黑哥儿666阅读 741评论 0 0
  • MySQL数据库对象与应用 2.1-MySQL数据类型 库建立好之后基本不动,和我们接触最频繁的是表. 建表就是声...
    极客圈阅读 2,125评论 0 8
  • 1、运用消费者决策规律,分析你的产品涉及的顾客心理并给出营销建议。 公司/团队/项目名称:欧美商务考察 产品名称:...
    刘矛盾阅读 171评论 3 0
  • 【读经】 诗篇134-135 【金句】 你们要赞美耶和华!耶和华本为善;要歌颂他的名,因为这是美好的。(诗篇 13...
    chanor阅读 94评论 0 0
  • 【经文】「看哪,我差遣使者在你前面,在路上保护你,领你到我所预备的地方去。(出埃及记 23:20) 神除了帮助我们...
    斐斐feifei阅读 1,093评论 0 0