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时间戳。

存储引擎区别:

未完待续~~~~~

声地

原文地址:https://www.cnblogs.com/ccs-mxs/p/7096846.html