数据类型:
数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
整型:
有符号位可以表示负数;无符号位只能表示0和正数
在正数表达的范围内,无符号位是有符号位的两倍范围
上述INT
及以下类别,每个类别都是2的幂次行增加8位,分别为28、216、224、232;字节递加为1、2、3、4;
而BIGINT
则是INT
的2倍,范围为264、字节为8 。
数据优化最基础的则是要选择最合理的数据类型,在海量数据的情况下,则能显现很大的优势
浮点型:
FLOAT
单精度浮点,能精确到7位小数点
DOUBLE
双精度浮点,将近是FLOAT的十倍
M必须大于D
例如:FLOAT[(7,2)]
M为总位数,D为小数点位数: 则这个最多能代表99999.99
存储范围越大,占用的字节也越大
日期时间型
YEAR
:1970年 至 2069年 的年份类型,默认是4位,但也可以存储2位,
TIME
:-8385959 至 8385959 的时间类型
DATE
合理范围为:1000年1月1日 至 9999年12月31日
DATETIME
合理范围为:1000/01/01 00:00:00 至 9999/12/31 23:59:59;很少采用此种类型,因为会有跨时区的问题。若需要用到日期时间类型,一般也会使用数字类型来取代它。在很多实际运用中,会把时间变成“时间戳 1 ”的形式使用。
TIMESTAMP
则是表示 1970/01/01 00:00:00 至 2037/12/31 23:59:59
在实际应用中,很少使用到日期时间型,大多使用数字型,然后使用时间戳的方式。
字符型
CHAR(M) 定长类型,没有达到指定的长度,后面用空格来补齐。
VARCHAR(M) 变长类型,字符是什么就存储什么,没有达到指定长度,也不会补齐。
ENUM 枚举值,是指给它几个选项,让它在其中做选择。比如性别:男、女、保密。
SET 集合,是指给它几个值,它可以做这些值中任意的组合,比如它可以选男、女、男女、男保密等等。
时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 ↩︎