MySQL 数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

数值类型

(1)整数类型

  • 整数类型的数,默认情况下既可以表示正整数又可以表示负整数(此时称为有符号数)。如果只希望表示零和正整数,可以使用无符号关键字“unsigned”对整数类型进行修饰。
  • 各个类别存储空间及取值范围。
类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 byte (-128,127) (0,255) 小整数值
SMALLINT 2 bytes (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 bytes (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 bytes (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 bytes (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值

(2)小数类型

  • decimal(length, precision)用于表示精度确定(小数点后数字的位数确定)的小数类型,length决定了该小数的最大位数,precision用于设置精度(小数点后数字的位数)。
  • 例如: decimal (5,2)表示小数取值范围:999.99~999.99 decimal (5,0)表示: -99999~99999的整数。
  • 各个类别存储空间及取值范围。
类型 大小 范围(有符号) 范围(无符号) 用途
FLOAT 4 bytes (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度
浮点数值
DOUBLE 8 bytes (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度
浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

日期和时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

TIMESTAMP类型有专有的自动更新特性,将在后面描述。

类型 大小
(bytes)
范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 ‘-838:59:59’/‘838:59:59’ HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 1970-01-01 00:00:00/2038
结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07
YYYYMMDD HHMMSS 混合日期和时间值,时间戳

字符串类型

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

类型 大小 用途
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据

注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。

CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。

3.MySQL数据类型相关推荐

  1. [转]mysql 数据类型

    原文地址:https://github.com/jaywcjlove/handbook/blob/master/MySQL/MySQL%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E ...

  2. mysql课程id数据类型_数据库学习之六:mysql数据类型

    六.mysql数据类型 1.课程大纲 • 数据类型介绍 • 数据类型设置 • 列属性 • 数据类型的字符集用法 • 选择适当的数据类型 2.数据类型介绍 • 四种主要类别: 数值类型 字符类型 时间类 ...

  3. 面试题:mysql 数据类型

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 mysql 数据类型 MySQL数据类型 含义(有符号) tiny ...

  4. MySQL数据类型之数字类型详细解析

    MySQL数据类型之数字类型 数字类型按照我的分类方法分为三类:整数类.小数类和数字类. 我所谓的"数字类",就是指DECIMAL和NUMERIC,它们是同一种类型.它严格的说不是 ...

  5. mysql lint的范围_【MySQL】MySQL数据类型

    MySQL表数据存储大小说明 MySQL中规定,任何一条记录(数据表中每行数据)理论上的最大存储容量为 2^16 - 1 (Bytes) = 65535字节. MySQL数据类型思维导图 MySQL数 ...

  6. MySQL数据类型以及元数据的使用

    第1章 Mysql数据类型 1.1 四中主要类别: 1.      数值类型 2.      字符类型 3.      时间类型 4.      二进制类型 1.2 数据类型三要素: 简介-完整-适当 ...

  7. mysql数据类型默认长度_mysql数据类型长度

    1个字节= 8位  tinyint 为一个字节  2的8次方= 256 所以最多存储到256 日期和时间数据类型 MySQL数据类型 含义 date 3字节,日期,格式:2014-09-18 time ...

  8. linux mysql 类型_常用的MySQL数据类型

    "But there's an exception with database column types that do not accept empty strings as valid ...

  9. MySQL数据类型中DECIMAL的作用和用法

    在MySQL数据类型中,例如INT,FLOAT,DOUBLE,CHAR,DECIMAL等,它们都有各自的作用,下面我们就主要来介绍一下MySQL数据类型中的DECIMAL类型的作用和用法. 一般赋予浮 ...

  10. MySQL数据类型(最大值 和 最小值)

    MySQL数据类型(最大值 和 最小值) 1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节  范围(-128~127) smallint(m) 2个字节  范围(-3276 ...

最新文章

  1. vmd变分模态分解程序matlab论坛_博士兼职辅导员论坛分享会第三期
  2. 在虚拟机中的Nginx的安装
  3. 在 Mac OS X 上安装 TensorFlow
  4. python读写、创建 文件(一)
  5. db2查最新值的前一天值_现在的C1驾照值多少钱?最新价格曝光,老司机一看赚翻了...
  6. 管理员所有权代码_为什么代码所有权糟透了,您永远不应该在有实践的地方工作...
  7. shiro使用jdbc_realm登录验证
  8. 数据产品经理:6大数据分析平台的“世界观”
  9. List接口的常用方法以及ArrayList/LinkedList源码分析
  10. 查看在Ubuntu上打印的大型JSON文件
  11. secuteCRT的使用
  12. 将一个字符串进行反转。将字符串中指定部分进行反转
  13. 共谋发展:软件孵化器与软件开发云
  14. centos linux安装网卡驱动,如何在CentOS系统下安装网卡驱动
  15. ioi2020集训队作业_IOI2020集训队作业
  16. shell 亚瑟王环
  17. 【高级数据结构】线段树 | 求区间和
  18. java 307跳转_GitHub - yy307/java-weixinlib: 微信公众平台接入
  19. BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏
  20. Linux使用vi修改、删除、保存文件

热门文章

  1. 英语总结系列(二十):八月有些小惊喜
  2. HTML,JS和CSS实现减肥周期计算(附源码)
  3. TFT彩屏常见汉字取模方式及相关驱动函数
  4. ​Python 中的数字到底是什么?
  5. 徐松亮算法教学-基于C语言的数独(九宫格)求解(含多解和解数统计)
  6. 安装ifconfig命令
  7. 在RHEL6.0 X64系统中安装oracle 11g数据库及安装后设置
  8. Python3.X 调用百度翻译API和有道翻译API
  9. d2lzh_pytorch
  10. CA6110发动机曲轴的加工工艺及夹具设计-说明书+外文翻译+夹具体+毛配图+曲轴零件图+夹具装配图+垫块图+工艺卡片10张