mysql 学习之列类型以及属性特点详解
本文和大家分享的主要是mysql列类型及属性特点相关内容,一起来看看吧,希望对大家学习mysql有所帮助。
整形列:
一个字节有8个位,例如:int 类型的列存入数字1,00000000 00000000 00000000 00000001它就在最低位置上存入一个1,由此可见是极大的浪费资源,所以在建立列类型的时候,依实际情况而定。
整型列的可选属性有:
unsigned 非负
zerofill 零填充 (M)M表示固定宽度,它主要用于学号编码等,可以用0填至固定宽度。 注意:有零填充的列数据库默认为unsigned,即非负。
例如:存入当前列数字1,固定宽度设置5,则存入数据库的数据显示为00001
另一种情况如下:
例如:如果没有零填充单纯的int(x)这种格式,x表示的是期望的宽度,(如 INT(4))。这个可选的宽度规格说明是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也不是为了限制那些超过该列指定宽度的值的可被显示的数字位数,如果在一个整型列中存储一个超过显示宽度的更大值时,当 MySQL 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,MySQL 信任地认为所有的值均适合原始的列宽度。
浮点列和定点列以及它们的区别:(都是存小数的)
float(M,D)两个参数,M表示小数的总位数,D小数点后是几位,例如:float(5,2)最大存入999.99,最小存入-999.99
double (M,D)与float的区别是范围比float大
decimal 与float/double的区别主要是有精度损失,decimal更精确。decimal适合对数据要求比较严格的时候使用,比如涉及到钱。
字符型列:M限制的是字符
char(M) 定长 M取值范围0~255
varchar(M)不定长0~65,535
一般开发过程中,M比较短果断选择char,char执行速度快。
text 文本存储内容较大 其他文本类型可查看mysql手册,blob不需要考虑字符集存二进制时使用。
enum 是定义好值,也就是取值范围。例如:性别。
set 集合型 可以选其中的一个或多个。
日期时间类型列:
year
date
time
datetime
一般存入数据库用的是unigx时间戳。
来源:博客园