一、mysql基本数据类型
mysql的数据类型大致分为:数值、时间和字符串
二、数值类型
tinyint[(m)] [unsigned] [zerofill]
小整数,数据类型用于保存一些范围的整数数值范围:
有符号:
-128~127
无符号:
0~255
特别的:MYSQL中无布尔值,使用tinyint(1)构造
int[(m)] [unsigned] [zerofill]
整数,数据类型用于保存一些范围的整数数值范围:
有符号:
-2147483648~ 2147483647
无符号:
0~ 4294967295
特别的:整数类型中的m仅用于显示,对存储范围无限制。
例如:int(5),当插入数据
bigint[(m)] [unsigned] [zerofill]
大整数,数据类型用于保存一些范围的整数数值范围:
有符号:
-9223372036854775808 ~ 9223372036854775807
无符号:
0 ~ 18446744073709551615
decimal[(m[,d])] [unsigned] [zerofill]
准确的小数值,m是数字总个数(符号不算),d是小数点后个数。m最大值为65,d最大值为30.
特别的:对于精准数值计算时需要用此类型
decaimal能够存储精确值的原因在于其内部按照字符串存储
三、字符串类型
char(10) 定长: 速度快(查的时候) 最大包含255个字符
varchar(10) 不定长:节省空间 最大包含255个字符
ps:创建数据表定长列向前放(SQL优化的一种手段)
注:虽然varchar使用起来比较灵活,但是从整体系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑个方面的因素,以求达到最佳的平衡
为什么说char比varchar的查询速度快呢?
因为这些固定长度是很容易计算下一个数据的偏移量的,所以读取的自然也会很快。而如果字段不是定长的,那么,每一次要找下一条的话,需要程序找到主键
text
text数据类型用于保存变长的大字符串,可以最多65535(2*16-1)个字符。
四、时间类型
DATE
YYYY-MM-DD
TIME
HH:MM:SS
YEAR
YYYY
DATETIME
YYYY-MM-DD HH:MM:SS
TIMESTAMP
YYYYMMDD HHMMSS
ps:还有枚举类型enum和集合类型set,这里不在累述