1.整数

TINYINT: 8 bit 存储空间

SMALLINT: 16 bit 存储空间

MEDIUMINT: 24 bit 存储空间

INT: 32 bit 存储空间

BIGINT: 64 bit 存储空间

分为

SIGNEN: 有符整数,可存储正数和负数,如 TINYINT SIGNED 表示的范围是 -127 ~ 128

UNSIGNED: 无符整数,只能存储正数,但是表示的值是有符整数的两倍, 如 TINYINT UNSIGNED 表示的范围是 0 ~ 255

有符整数和无符整数只有表示的值大小上的区别,存储空间和效率上都是一样的

2.实数

DECIMAL: 可表示比 BIGINT 还大的正数,保存时可以指定整数长度和小数位数,如 DECIMAL(18, 9) 表示总长18位,小数点后9位,一共占用9 Byte,小数点前4 Byte,小数点1 Byte, 小数点后4 Byte, 一般用于存储精确数据,如银行账目

FLOAT: 32 bit, 0~23精度

DOUBLE: 64 bit,  24~53精度

DOUBLE和FLOAT比起DECIMAL,占用的存储更少,但是精度没有DECIMAL高

3.字符串

3.1 CHAR和VARCHAR

CHAR:

定长字符串,最大长度为255,mysql会分配固定的存储空间来存储CHAR,一般来讲用在需要经常执行长度经变化的UPDATE,但最大长度和平均长度相近的列上

CHAR在获取值时,会将末尾空格删除,但是在比较值时,末尾的空格则会保存,效果参见下图

VARCHAR:

变长字符串,最大长度为65535,mysql会分配字符串实际长度的空间来存储VARCHAR,一般来讲用在不需要经常执行列值长度变化的UPDATE,但是最大长度又远大于平均长度的列上,因为当列值的长度变化时(例如某列从"Jack" => "I want to gank"),需要重新分配需要的存储空间,会造成额外的性能开销.

CHAR和VARCHAR总是会使用字符编码的最大长度来作为单位存储空间,这是为了保证缓存中有足够的空间来存储字符串,例如使用UTF8,虽然UTF8是变长字符集(英文1Byte,中文3Byte),但是VARCHAR(10)仍然会占用30Bytes空间,即使里面一个中文字也没有.

另外,VARCHAR会比原长度额外占用1~2个字节,用来表示字符串的长度,当字符串长度小于255时占用1 Byte, 否则占用 2 Byte

查询时,CHAR去除末尾空格

WHERE字句比较字符串时,CHAR保留末尾空格

关于二者的效率:

UPDATE时,CHAR的效率会高于VARCHAR的效率,因为VARCHAR是不定长的,当数据长度改变时,需要重新分配存储空间

3.2 BLOB和TEXT

BLOB和TEXT的唯一区别是BLOB保存二进制类型而且没有字符集好排序规则,而TEXT保存字符文本,且有字符集和排序规则

它们的排序规则按照 max_short_length 规定长度的前若干个字符进行排序

4.日期和时间类型

DATETIME: 将日期保存为YYYYMMDDHHMMSS格式,范围从1001 ~ 9999年,占用空间 8 Byte

TIMESTAMP: 将日期保存为Unix时间戳,范围从1970 ~ 2038年, 占用空间 4Byte,并且和时区相关,它的特性是当插入没有定义TIMESTAMP的列时,MySQL会自动将时间戳保存为当前时间,所以一般可用于记录最后登录时间等.

5.位集数据类型

BIT: 最大 64 bit,一般用于保存一个true/false值,如BIT(1),占用 1 bit,远小于使用字符表示

SET: 用于保存多个true/false值,可用于权限管理,效果见下图

6.枚举

ENUM: 类似于SET,但是只能插入1个值,一般可用来表示性别等唯一且范围固定的属性(男,女..)

mysql 整数类型_MySQL的数据类型相关推荐

  1. mysql option 类型_mysql之数据类型与表操作

    关系数据库的注释 -- 单行注释 /* 多行注释 */ 数据类型 数值 整数 只能保存整数,如果是小数,则自动四舍五入取整. mediumint smallint tinyint(6) zerofil ...

  2. mysql unit类型_mysql入门-数据类型(二)

    mysql入门-数据类型(二) 今天说一下mysql的数据类型日期,mysql的日期类型有date.datetime.time.year.timestamp. date其实就是日期,例如2019年07 ...

  3. mysql 优化 类型_MySQL数据类型的优化选择

    整数类型: Tinyint-8 Smallint-16 Mediumint-24 Int-32 Bigint-64 实数类型(带有小数部分的数字) Float-4/double-8:浮点 Decima ...

  4. mysql数据库 set类型_MYSQL数据库数据类型

    07.14自我总结 MYSQL数据库数据类型 一.整数类型和浮点数典型 1.有符号/没符号 对于整数和负整数来说,默认情况下是有符号范围的 默认是有符号 有符号和没符号其实就是有没有包括负数,有符号是 ...

  5. mysql 命令类型_mysql 基本命令(3)-数据类型和运算符

    一.数值类型 1.数据类型有:数值类型.日i期类型.字符串类型. 2.int(20),int 指整数的取值范围,里面的参数20,只是表示数据显示的宽度.显示宽度和数据类型的取值范围是无关的.显示宽度只 ...

  6. mysql最大整数类型_MySQL教程19-整数类型

    整数类型又称数值型数据,数值型数据类型主要用来存储数字. MySQL 提供了多种数值型数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需的存储空间也会越大. MySQL 主要提供的 ...

  7. mysql 小类型_mysql 数据类型

    1.整数类型 tinyint   1个字节 smallint 2个字节 mediumint 3个字节 int  4个字节 bigint 8个字节 2.浮点数类型.定点数类型 float 4个字节 do ...

  8. mysql polygon 类型_MySQL数据类型 - 空间数据类型 (4)

    支持的空间数据格式 有两种标准空间数据格式用于表示查询中的几何对象: ●已知文本(WKT)格式 ●已知二进制(WKB)格式 在内部,MySQL用与WKT或WKB格式不同的格式存储几何值.(内部格式类似 ...

  9. mysql datatype 类型_MySQL DataType--数值类型

    ========================================================= MySQL常见的整数类型有: TINYINT: 占用8位空间 SMALLINT: 占 ...

最新文章

  1. 释疑の字段符号 FIELD-SYMBOLS
  2. boost::parameter::deduced相关的测试程序
  3. SPOJ1812(后缀自动机求n个串的最长公共子串)
  4. android+4.2+mtp+在此设备上不支持+文件类型,Nexus 4无法通过MTP显示文件
  5. [专栏精选]UI的自动布局
  6. android ndk 多线程mk,Android NDK 开发教程六: application.mk
  7. TCP粘包和拆包问题
  8. 实战之8051驱动8位数码管
  9. html边框双箭头,CSS常用样式之绘制双箭头代码示例
  10. 中国计算机软件行业分析4---外企的商业贿赂
  11. 如何利用MATLAB建立Lotka-Volterra模型及其改进模型
  12. java锟斤拷锟斤拷锟_锟斤拷?UTF-8与GBK互转乱码问题
  13. css中文字段落对齐,CSS段落对齐方式
  14. 统计推断(一) Hypothesis Test
  15. 和平精英分数计算机制,和平精英掉分机制怎么计算
  16. 如何用计算机计算log除法,电脑系统自带科学计算器使用方法
  17. 基于 Python 使用 CNN 实现身份证汉字和数字识别
  18. 一个多线程Ping 类
  19. 【转载】关于重定向RedirectAttributes的用法
  20. 在Mac上安装Ruby on Rails

热门文章

  1. 另类玩法:通过 DNS 进行文件传输
  2. 性能优化实战案例——助力某移动OA系统
  3. 微信支付开发(7) 刷卡支付
  4. Android 四大组件 与 MVC 架构模式
  5. iOS LLDB console debug总结
  6. DM***+OSPF测试
  7. JSP学习笔记(一百一十七):Windows下nginx以服务的方式运行
  8. ubuntu之apache正向代理及反向代理(ProxyPass\ProxyPassReverse)
  9. 拿起电话就开始给(飞鸽传书3.0)
  10. 如何自定义MFC的窗口类名