一:整型

1.tinyInt            非常小的整数      存储1个字节

2.smallInt          较小整数             存储2个字节

3.mediumInt     中等大小整数      存储3个字节

4.int integer      标准整数             存储4个字节

5.bigInt                较大整数          存储8个字节

整数列可选属性有三个:

1.M:宽度,在0填充的时候有意义,否则不需要指定。

2.unSigned:无符号类型非负 用来增加数据的长度。

3.zerofill:0填充,如果某列是zerofill,那么默认就是无符号,如果指定了zerofill只是表示不够M位时,用0在左边填充,如果超过M位,只要不超过数据存储范围即可。

二:浮点型

在MySQL中单精度值使用4个字节,双精度使用8个字节,一个字节是由8个位组成,每位可以用0或者1表示。

float:单精度浮点数,有4个字节,32位,大约7位有效数字,范围有限

double:双精度浮点数,更高精度,有8个字节,64位,15位有效数字,范围大。

三:日期和时间类型

date类型:用于存储日期  年月日

time类型:用于存储时间  时分秒

dateTime类型   用来存储日期和时间

time Stamp类型 时间戳

与dateTime不同的是它会自动在更新插入的时候记录当前的日期和时间。

四:布尔类型

1.可以使用tinyint(1)来表示布尔类型,1表示字段的宽度,即占用的存储空间大小,在布尔字段中,1表示true,0表示false

2.bool   Boolean 与 tinyint 是等价的,也可以使用1表示true,0表示false。

3.布尔类型大部分用在条件语句,和循环中。

五:字符串类型

char    固定长度  默认长度为1, 速度快,费空间,存储不大。

varchar 可变长度类型 必须指定长度。

text   文本类型,村比较大的文本段。

六:枚举类型(enum)

枚举类型:用于存储预定义的一组值,他允许在创建表时指定一组可能的值,并且每个列只能存储这些与定义的值之一。

在MySQL中 enum('value1','value2','value3',.....)

value1,value2,value3表示枚举类型的可能取值,可以根据需要指定多个值,这些值用,分割,并用单引号括起来。

优点:1.限制列的取值范围,确保数据的有效性和一致性,可以提高查询效率。

           2.MySQL分别将枚举类型得值存储为整数,并使用索引进行快速查询。

           3.取值是按照定义的顺序,进行存储的,从1开始递增

处理枚举类型的值时,根据对应的整数值进行比较和计算。

七:集合类型

用于存储多个值的集合,集合类型允许在创建表时指定一组可能的值,并且每个列可以存储这些预定义得值的任意集合。

由于集合类型存储的是多个值,可能会导致查询和索引的性能下降,在设计数据库时,应该根据实际需求和性能考虑,合理选择是否使用集合类型。