MySQL数据类型详细解决方案
类型
大小
范围(签名)
范围(无符号)
目的
TINYINT
1字节
(- 128127)
(0255)
小的整数
smallint
2字节
(- 32 - 768, 32767)
(0, 65535)
大整数的值
MEDIUMINT
3字节
(- 8 - 388608, 8388607)
(0, 16777215)
大整数的值
整数或整数
4字节
(- 2 - 147483648, 2147483647)
(0, 4294967295)
大整数的值
bigint
8字节
(- 9 - 233372036854775808, 922337203685477580)
(0, 18446744073709551 615)
最大整数值
浮
4字节
(-3.402 823466 + 38,1.175494351 e-38),0,(1.175494351 e-38,3.402823466351 + 38)
0, (1.175494351 E-38, 3.402823466 E+38)
单精度
浮点数
双
8字节
(1.7976931348623157 + 308,2.2250738585072014 e-308),0,(2.2250738585072014 e-308,1.7976931348623157 + 308)
0、(2.2250738585072014 e-308,1.7976931348623157 + 308)
双精度
浮点数
十进制的
对于十进制(m,d),如果m,d,m + 2或d + 2
依赖于m和d的值
依赖于m和d的值
小的数值
int类型
5个主要的整数类型,支持MySQL是tinyint、smallint、MEDIUMINT,int、bigint。这些类型在很大程度上是相同的,只是它们存储的值的大小是不同的。
MySQL扩展一个可选的显示宽度指标形式的SQL标准,所以当一个值是从数据库中检索,可以延长到指定的长度。例如,指定字段的类型是int(6),以确保不超过6的数字的值是从数据库自动检索时,它是从数据库检索。需要注意的是,一个宽度指标的使用不影响磁场的大小和范围的值,它可以存储重要的。
如果我们需要存储一个超出字段允许范围的数字,MySQL将根据它的最接近的允许范围存储它,然后缩短它。另一个特殊的地方是MySQL会在插入表的未指定值之前自动将其修改为0。
未签名修饰符指定字段只保留正数,因为不需要保存正数和负值的符号,可以在存储中节省一点空间,这可以增加存储在这个字段中的值的范围。
的补零修饰符指定0(非空间)可以用来弥补输出值。此改性剂防止使用MySQL数据库存储的负价值。
浮点、双和十进制类型
mysql支持的三种浮点类型是浮点型、双十进制型和十进制类型,浮点数字类型用于表示单个精度浮点值,而双数值类型用于表示双精度浮点值。
像整数一样,这些类型也有额外的参数:显示宽度指标和小数点指标。例如,语句float(7,3)指定的显示值不超过7位数的数字,而小数点后的3位数。
对于超过允许范围的小数点后面的位数,MySQL自动将其设置为四到最接近的值,然后插入它。
小数数据类型用于高精度计算,使精度和计数方法指定的值被选择作为选择参数。这里的精度是指总人数的有效数字保存这个值,和计数方法表示的位数小数点后。例如,声明的十进制(7,3)指定存储的值不会超过7位和小数点不超过3位。
如果忽略十进制数据类型和计数方法修饰符的精度,MySQL数据库将将所有标记为该数据类型的数据的字段精度设置为10,计算方法设置为0。
无符号和补零剂也可以通过浮动,双,和小数数据类型。和效果为int数据类型相同。
字符串类型
MySQL提供8种基本的字符串类型,它们可以从一个字符存储到一个巨大的文本块或二进制字符串数据。
类型
大小
目的
烧焦
0-255字节
固定长度的字符串
varchar
0-255字节
长串
tinyblob
0-255字节
不超过255个字符的二进制字符串。
tinytext
0-255字节
短文本字符串
斑点
0到65535字节
二进制形式的长文本数据
文本
0到65535字节
长文本数据
mediumblob
0-16777215字节
二进制格式的中等长度文本数据
mediumtext
0-16777215字节
中等长度文本数据
logngblob
0-4294967295字节
二进制形式的最大文本数据
单引号字符
0-4294967295字节
最大的文本数据
CHAR和VARCHAR类型
char类型用于设置一长串,必须定义在括号中有大小修饰符。这个尺寸改为0-255。值大于指定的长度将被截断,和小于指定的长度将充满空间的价值。
char类型可用于二进制修饰符。当用于比较操作时,此修饰符使char以二进制方式操作,而不是传统的区分大小的方式。
一个char类型的变量是varchar类型。它是一个可变长度的字符串类型,它也必须与一系列的CHAR和varchgar之间的差异有一个指标是0-255.the MuSQL数据库的方式来处理这一指标。焦炭作为这个尺寸的值的大小和补充它没有空间时,它是短暂的。VARCHAR类型视为最高价值,并将价值只有通过使用存储的字符串长度的实际需求(增加一个额外的字节来存储字符串本身的长度)。所以VARCHAR型短于指示长度不会填补空间,但价值比指标仍将被截断,再。
因为VARCHAR类型可以动态的根据实际内容改变存储值的长度,所以当我们不能确定有多少字符的领域的需求,我们可以节省磁盘空间和使用VARCHAR类型提高存储效率。
VARCHAR类型完全相同的字符类型修饰符时,使用二进制。
文本和团块类型
由于需要超过255个字段长度,MySQL提供了两种类型的文本和数据块。根据存储数据的大小,它们具有不同的子类型。这些大数据用于存储二进制数据类型,例如文本块或图像、声音文件,等等。
在text和BLOB类型之间的差异types.blob分类和比较是区分大小写的文本是不敏感的。大小修饰符不能用于各种斑点和文本型。最大值是大于指定类型的支持将被自动截断。
日期和时间类型
当处理日期和时间类型的值,MySQL有5种不同的数据类型选择。他们可以分为简单的日期、时间和混合类型,日期和时间类型。根据要求的精度,可用于各亚型分类,和MySQL内置函数变换多种输入格式为标准格式。
类型
大小
(字节)
范围
格式
目的
日期
三
1000-01-01 / 9999-12-31
为
日期值
时间
三
838:59:59 ' / '838:59:59
毫米:SS
时间或持续时间
年
一
1901 2155
yyyy
年值
日期时间
八
1000-01-01 00:00:00 / 9999-12-31 23:59:59
为HH:MM:SS
混合日期和时间值
时间戳
八
1970-01-01 00:00:00 / 2037的某个时候
YYYYMMDD hhmmss
混合日期和时间值,时间戳
日期、时间和类型
日期和撕裂类型MySQL存储简单的日期值,并利用时间类型存储时间值。这些类型可以描述为字符串或整数序列不符。如果日期型的描述字符串值应使用连字符作为分隔符,和类型应作为一个分离器分离结肠时间的价值。
重要的是要注意,没有冒号分隔符的时间类型值将被MySQL理解为一个持久的时间,而不是时间戳。
MySQL也在数字价值今年的两个日期,在最大电流撕裂式输入的SQL语句或两个数字。因为眼泪类型的所有值必须保存在4 numbers.mysql试图将今年的2号4号值。将值在00-69范围的2000-2069范围。对70与99范围的值转换为1970-1979.if的MySQL的自动转换的值不符合我们的需要,请输入数字表示4年。
dateyime和时间戳类型
除了日期和时间数据类型,MySQL也支持dateyime和时间戳两混合型。他们可以存储日期和时间作为一个单一的值。这两类型通常用于自动存储包含当前日期和时间的时间戳,并能在执行大量数据库事务和建立审计和跟踪中的应用起到了良好的作用。
如果我们没有一个明确的分配时间戳字段的类型,或是空value.mysql会自动填充系统的当前日期和时间。
复合型
MySQL还支持两复合数据类型、枚举和集合,扩展SQL规范。虽然这些类型的技术是字符串类型,他们可以被视为不同的数据类型,枚举类型只允许一个值从一组;和设置类型允许任何数量的值是从一组得到的。
枚举类型
枚举类型是一个单一的选择有点相似,因为它只允许值应在收集得到。很容易理解,在处理彼此的数据,如人类的性别。枚举类型字段可以从集合中获取值或使用空值。此外,输入将使MySQL在这个字段中插入一个空字符串。此外,如果插入值的值与设置中值的情况值不匹配,MySQL将自动使用插入值的大写值将其转换为与集合中的情况一致的值。
枚举类型可以存储在系统数与数从1索引。一个枚举类型可以包含65536个元素最多,其中保留的MySQL,这是用来存储错误信息。这个错误值用索引0或空字符串表示。
MySQL认为出现在枚举类型的值是一个合法的输入,除了任何其他输入将失败。这意味着错误记录的位置可以很容易地通过搜索一行包含空字符串或一个对应的0个数字指标线的发现。
集合类型
集合类型相似但不相同的枚举类型,集合类型可以从预定义的设置得到任何数量的值。和同为枚举类型是试图插入非预定义的值集合中的类型字段会让MySQL插入一个空字符串。如果你插入一条记录,有一个合法的元件和不法分子,MySQL将保留删除非法的元素的法律要素。
集合类型可以包含多达64个元素,set元素的中间值作为一个单独的位序列存储,它表示与之相对应的元素。比特是创建一组有序元素的简单有效的方法。它还删除重复的元素,因此不可能包含set类型中的两个相同的元素。
希望从集合类型字段中找到非法记录只需要查找包含空字符串或二进制值为0的行。