3.MySQL数据类型
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数据类型相关推荐
- [转]mysql 数据类型
原文地址:https://github.com/jaywcjlove/handbook/blob/master/MySQL/MySQL%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E ...
- mysql课程id数据类型_数据库学习之六:mysql数据类型
六.mysql数据类型 1.课程大纲 • 数据类型介绍 • 数据类型设置 • 列属性 • 数据类型的字符集用法 • 选择适当的数据类型 2.数据类型介绍 • 四种主要类别: 数值类型 字符类型 时间类 ...
- 面试题:mysql 数据类型
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 mysql 数据类型 MySQL数据类型 含义(有符号) tiny ...
- MySQL数据类型之数字类型详细解析
MySQL数据类型之数字类型 数字类型按照我的分类方法分为三类:整数类.小数类和数字类. 我所谓的"数字类",就是指DECIMAL和NUMERIC,它们是同一种类型.它严格的说不是 ...
- mysql lint的范围_【MySQL】MySQL数据类型
MySQL表数据存储大小说明 MySQL中规定,任何一条记录(数据表中每行数据)理论上的最大存储容量为 2^16 - 1 (Bytes) = 65535字节. MySQL数据类型思维导图 MySQL数 ...
- MySQL数据类型以及元数据的使用
第1章 Mysql数据类型 1.1 四中主要类别: 1. 数值类型 2. 字符类型 3. 时间类型 4. 二进制类型 1.2 数据类型三要素: 简介-完整-适当 ...
- mysql数据类型默认长度_mysql数据类型长度
1个字节= 8位 tinyint 为一个字节 2的8次方= 256 所以最多存储到256 日期和时间数据类型 MySQL数据类型 含义 date 3字节,日期,格式:2014-09-18 time ...
- linux mysql 类型_常用的MySQL数据类型
"But there's an exception with database column types that do not accept empty strings as valid ...
- MySQL数据类型中DECIMAL的作用和用法
在MySQL数据类型中,例如INT,FLOAT,DOUBLE,CHAR,DECIMAL等,它们都有各自的作用,下面我们就主要来介绍一下MySQL数据类型中的DECIMAL类型的作用和用法. 一般赋予浮 ...
- MySQL数据类型(最大值 和 最小值)
MySQL数据类型(最大值 和 最小值) 1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-3276 ...
最新文章
- vmd变分模态分解程序matlab论坛_博士兼职辅导员论坛分享会第三期
- 在虚拟机中的Nginx的安装
- 在 Mac OS X 上安装 TensorFlow
- python读写、创建 文件(一)
- db2查最新值的前一天值_现在的C1驾照值多少钱?最新价格曝光,老司机一看赚翻了...
- 管理员所有权代码_为什么代码所有权糟透了,您永远不应该在有实践的地方工作...
- shiro使用jdbc_realm登录验证
- 数据产品经理:6大数据分析平台的“世界观”
- List接口的常用方法以及ArrayList/LinkedList源码分析
- 查看在Ubuntu上打印的大型JSON文件
- secuteCRT的使用
- 将一个字符串进行反转。将字符串中指定部分进行反转
- 共谋发展:软件孵化器与软件开发云
- centos linux安装网卡驱动,如何在CentOS系统下安装网卡驱动
- ioi2020集训队作业_IOI2020集训队作业
- shell 亚瑟王环
- 【高级数据结构】线段树 | 求区间和
- java 307跳转_GitHub - yy307/java-weixinlib: 微信公众平台接入
- BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏
- Linux使用vi修改、删除、保存文件
热门文章
- 英语总结系列(二十):八月有些小惊喜
- HTML,JS和CSS实现减肥周期计算(附源码)
- TFT彩屏常见汉字取模方式及相关驱动函数
- ​Python 中的数字到底是什么?
- 徐松亮算法教学-基于C语言的数独(九宫格)求解(含多解和解数统计)
- 安装ifconfig命令
- 在RHEL6.0 X64系统中安装oracle 11g数据库及安装后设置
- Python3.X 调用百度翻译API和有道翻译API
- d2lzh_pytorch
- CA6110发动机曲轴的加工工艺及夹具设计-说明书+外文翻译+夹具体+毛配图+曲轴零件图+夹具装配图+垫块图+工艺卡片10张