Mysql中的数据类型
Posted lilacmemo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql中的数据类型相关的知识,希望对你有一定的参考价值。
mysql支持多种数据类型,主要有数值类型,日期/时间类型和字符串类型。
数值类型:
TINYINT:存储很小的整数,占用一个字节;
SMALLINT:存储小的整数,占用二个字节;
MEDIUMINT:存储中等大小的整数,占用三个字节;
INT:存储普通大小的整数,占用四个字节;
BIGINT:大整数,占用八个字节;
注:INT(11)表示的是该数据类型指定的显示宽度,显示宽度与数据类型的取值范围是无关的,数值的位数小于指定宽度时会由空格填充,如果插入大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值已然可以插入,而且可以正常的显示。
FLOAT:单精度浮点类型,占四个字节;
DOUBLE:双精度浮点类型,占八个字节;
DECIMAL:定点数类型,浮点数和定点数都可以用(M,N)来表示,其中M表示精度,表示总共的位数,N表示标度,表示小数的位置,占(M+2)个字节,DECIMAl类型不同于FLOAT与DOUBLE,它实际以串存放,其最大取值范围与DOUBLE一样,但其有效的取值单位由M和D决定;
FLOAT和DOUBLE在不指定精度时,默认会按照实际的精度(由计算机硬件和操作系统决定),DECIMAL如果不指定精度,默认为(10,0);
日期与时间类型:
YEAR(YYYY) TIME(HH:MM:SS) DATE(YYYY-MM-DD)
DATETIME(YYYY-MM-DD HH:MM:SS) YIMESTAMP(YYYY-MM-DD HH:MM:SS);
文本字符串类型:
CHAR VARCHAR TINYTEXT TEXT MEDIUMTEXT LONGTEXT ENUM SET
ENUM是一个字符串对象,其值为表创建时某列规定的一系列值,Mysql中它的索引序号从1开始,在对枚举类型的列中插入值可以插入原始值也可以插入索引序号,当插入不在索引列表或者超范围的索引值时会报错,例:
create table tmp(
score int,
level enum(‘excellent‘ , ‘good‘, ‘bad‘)
)
SET是一个字符串对象,可以由零个或多个值,最多可以有64个成员,其值为表创建时规定的一系列值,ENUM类型的的字段只能从定义的列值中选择一个插入,而SET可以从定义的列值中选择多个字符的联合,SET有序不能重复。
二进制字符串类型:
BIT BINARY VARBINARY TINYBLOB BLOB MEDIUMBLOB LONGBLOB
以上是关于Mysql中的数据类型的主要内容,如果未能解决你的问题,请参考以下文章