mysql笔记3(数据类型)

整数类型

TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT

8 16 24 32 64

可选属性:UNSIGNED

对字符宽度的定义,如INT(11),这并不会限制值的范围,只是规定了客户端显示字符的个数,在存储的时候,INT(1)和INT(21)是一样的

可以使用DECIMAL数据类型来存储更大或更加精确的数据

字符串类型

char 或 varchar的存储依赖于不同存储引擎的实现

VARCHAR使用变长字符串,能够节约空间,但由于行的长度可变,可能更新的开销会比较大

char适用于存储较短的字符串,另外对于char类型,尾部空格会被剔除。

BINARY和VARBINARY是以上两个类型的兄弟类型,但存储的是二进制字符串,并且空格使用'/0'存储而不是空格或截断。

BLOB和TEXT类型

BLOB保存的是二进制,没有字符集和排序规则,而TEXT则有字符集和排序规则

ENUM类型

使用ENUM类型的列可以存储65535个不同字符串,MySQL内部把每个值都保存为整数,以标识值在列表中的位置,并且还保留了一份查找表,枚举类型列的排序是按照数字排序而非字符顺序;ENUM的字符串表是固定的,添加/删除字符串只能通过使用alter table

日期和时间类型

DATETIME:1001年-9999年,精度为秒,封装在一个整数中,使用8字节存储空间

TIMESTAMP:保持自1970年1月1日午夜以来的秒数,使用4字节存储空间,只能保存1970-2038年,提供FROM_UNIXTIME(),将时间戳转换为日期,提供函数UNIX_TIMESTAMP(),将日期转换为时间戳。

另外,除非显式的指定时间戳,否则在插入时或更新时,timestamp字段都会被更新成当前时间

你可能感兴趣的:(mysql)