MySQL数据类型

一、数值类型

以下数据类型为 MySQL 5.0 后的版本所具有。

1.整数类型

整数类型 字节
TINYINT 1
SMALLINT 2
MEDIUMINT 3
INT、INTEGER 4
BIGINT 8
  • MySQL 支持在类型名称后指定显示宽度,如 INT(3) 表示当宽度小于3位时在数字前填满。属性 ZEROFILL 表示用 0 填满。

  • 当插入宽度大于指定宽度,对插入数据没有任何影响。

  • 属性 UNSIGNED 表示无符号

  • 属性 AUTO_INCREMENT 表示自增,只能用于整数类型。并且使用该属性的列,必须定义为 NOT NULL,并且是 PRIMARY KEY 或者 UNIQUE。

CREATE TABLE tb_name (ID INT AUTO_INCREMENT NOT NULL PRIMARY KEY);

CREATE TABLE tb_name (ID INT AUTO_INCREMENT NOT NULL, PRIMARY KEY(ID));

CREATE TABLE tb_name (ID INT AUTO_INCREMENT NOT NULL UNIQUE);

CREATE TABLE tb_name (ID INT AUTO_INCREMENT NOT NULL,  UNIQUE(ID));

2.浮点数类型

浮点数类型 字节
FLOAT 4
DOUBLE 8
  • 浮点数后指定 (M,D) 不是标准用法。

  • 浮点数类型后可以指定 (M,D)。M 是精度,整数位+小数位。 D 是标度,小数位。

  • 如果指定精度和标度,会自动四舍五入后的结果插入。

  • 如果不指定精度时,会按照实际的精度显示,由实际的硬件和操作系统决定。

3.定点数类型

定点数类型 字节
DEC(M,D)、DECIMAL(M,D) M+2
  • 如果指定精度和标度,超出了精度和标度值系统会报错。

  • 如果没有指定精度和标度,会按照默认 DECIMAL(10,0) 来操作。

4.位类型

位类型 字节
BIT(M) 1~8
  • 位类型直接用 SELECT 命令无法直接显示,可以使用 bin() 或者 hex() 函数进行读取。

  • 超出位类型的位数,将报错无法插入。

二、日期时间类型

日期和时间类型 字节
DATE 4
DATETIME 8
TIMESTAMP 4
TIME 3
YEAR 1

三、字符串类型

字符串类型 字节
CHAR(M) M
VARCHAR(M) M+1
TINYBLOB 长度+1
BLOB 长度+2
MEDIUMBLOL 长度+3
LONGBLOB 长度+4
TINYTEXT 长度+1
TEXT 长度+2
MEDIUMTEXT 长度+3
LONGTEXT 长度+4
VARBINARY(M) 长度+1
BINARY(M) M

1.CHAR 和 VARCHAR

CHAR 和 VARCHAR 都用于存储比较短的字符串。

不同点:

  • CHAR 长度固定, VARCHAR 为可变长度字符串。

  • CHAR 删除插入字符串尾部的空格, VARCHAR 保留这些空格。

2.BINARY 和 VARBINARY

BINARY 和 VARBINARY 用于存储二进制字符串。

  • 当插入字符串没有达到定义长度 M 时,会在值的最后填充“0x00”以达到指定字段的长度。

3.ENUM

ENUM 成为美剧类型。

  • 1~255个成员,占1个字节
  • 256~65535个成员,占2个字节

创建 gender 字段为枚举类型,成员为 M 和 F:

CREATE TABLE tb_name (gender ENUM('M','F'));
  • 枚举类型是忽略大小写的

  • 如果插入的值不在枚举范围内,不会报错,自动插入枚举的第一个值。

4.SET

SET 可以包含 0~64 个成员,成员个数不同,存储空间不同。

  • 1~8个成员,占1个字节
  • 9~16个成员,占2个字节
  • 17~24个成员,占3个字节
  • 25~32个成员,占4个字节
  • 33~64个成员,占8个字节

创建 col 字段为集合类型,成员为 a b c d

CREATE TABLE tb_name (col SET('a','b','c','d'));

插入元素

INSERT INTO tb_name VALUES('a,b'),('a,c');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • sql 将数据类型分为三大类:数值类型,字符串,日期时间型 一、数值型: 数值大类:整数型和小数型 整数型 整数型...
    陈智涛阅读 995评论 0 0
  • 本文基于MySQL5.6版本进行描述从大的方面来讲,MySQL的数据类型分为4种 数值类型 日期和时间 字符串类型...
    黑哥儿666阅读 721评论 0 0
  • 日期和时间数据类型 MySQL数据类型 含义date 3字节,日期,格式:2014-09-18time ...
    百度怎么用阅读 243评论 0 3
  • 所谓的数据类型:对数据进行统一的分类,从系统的 角度出发为了能够使用统一的方式进行管理,更好的利用有限的空间;SQ...
    coder_hong阅读 584评论 0 0
  • MySQL学习笔记(2) mysql支持的数据类型 mysql数值类型 关于每个类型的详细信息可以通过 ? int...
    BigfaceMonster阅读 321评论 0 3