MySQL数据类型

1.整数

类型 范围 存储大小
tinyint -128 ~ 127 1字节
tinyint unsigned 0 ~ 255 1字节
smallint -32768 ~ 32767 2字节
smallint unsigned 0 ~ 65535 2字节
int -2147483648 ~ 2147483647 4字节
int unsigned 0 ~ 4294967295 4字节
bigint -9223372036854775808 ~ 9223372036854775807 8字节
bigint unsigned 0 ~ 18446744073709551615 8字节
  • 整数类型后接数字仅代表显示宽度,不代表存储长度。如 int(4) 与 int(10) 一致,固定存储为4字节,故建表语句中不必填写
  • 用作表主键时应该选用 int unsigned 或者 bigint unsigned
create table `example1` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例1';
--
create table `example2` (
    `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例2';
  • 使用整数代替枚举类enum能获取更高的效率,建议选用 tinyint 或者 tinyint unsigned
create table `example3` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `sex` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '性别:0-女 1-男',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例3';
  • 计算机处理整数类型比字符串类型快,故存储IPV4地址时候可使用 int unsigned,通过inet_ntoa和inet_aton进行转化
create table `example4` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `ip_addr` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'ipv4地址',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例4';

select inet_aton('209.207.224.40');   --3520061480
select inet_ntoa('3520061480');       --209.207.224.40

2.小数

类型 范围 存储 特点
float(M, D) M表示位宽,D是小数点后位数 4字节 浮点数-保存近似值
double(M, D) M表示位宽,D是小数点后位数 8字节 浮点数-保存近似值
decimal(M, D) M表示总位数,D是小数点后位数 M+2字节 定点数-以字符串型式保存数值
  • 建议小数统一使用 decimal ,尤其是与货币、金融相关的数据
create table `example5` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `price` decimal(10,2) NOT NULL DEFAULT 0 COMMENT '价格',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例5';

3.字符串

类型 范围 存储
char(n) n个字符(非字节) 固定存储长度
varchar(n) n个字符(非字节) 字符串实际长度加上用于记录长度的字节
  • 实际取值为定长时应选用char(n)
  • 变长字符串varchar(n) 存在用于记录长度的字节,故字符串长度<=255时仅需1字节记录长度 varchar(255)
  • 不要对过长的 varchar 建立索引
  • **重要: varchar 字段为 null 时无法使用索引,应使用 not null 定义并将默认值设为空串 **
create table `example6` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例6';

4.日期时间

类型 范围 存储大小 说明
year 1901 ~ 2155 1字节 年份
date 1000-01-01 ~ 9999-12-31 3字节 日期
time -838:59:59 ~ 838:59:59 3字节 时间
timestamp 1970-01-01 00:00:00~ 2037年 4字节 日期时间
datetime 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8字节 日期时间
  • 使用 timestamp 时可设置自动初始化和自动更新
create table `example7` (
    `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
    `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='示例7';
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • 所谓的数据类型:对数据进行统一的分类,从系统的 角度出发为了能够使用统一的方式进行管理,更好的利用有限的空间;SQ...
    coder_hong阅读 600评论 0 0
  • 本文基于MySQL5.6版本进行描述从大的方面来讲,MySQL的数据类型分为4种 数值类型 日期和时间 字符串类型...
    黑哥儿666阅读 737评论 0 0
  • 情景描述 完成sql文件,创建mysql tableCREATE TABLE IF NOT EXISTS grow...
    张培_阅读 773评论 0 0
  • CREATE TABLE IF NOT EXISTS ecs_order_info (order_id mediu...
    cookie口阅读 15,630评论 0 16
  • mysql的数据类型: 字符型 数值型 日期时间型 内建类型 字符型: CHAR(不区分字符大小写),BINARY...
    wangfs阅读 225评论 0 0