MySQL数据类型

    xiaoxiao2021-03-25  70

    数值数据类型

    tinyint 有符号范围为-128到127,无符号为0到255,占用空间1字节 smallint 有符号为-32768到32767,无符号为0到65535,占用空间2字节 int 有符-2147483648到2147483647, 无符号为0到4294967295占用空间4字节 mediumint有符号为-8388608到8388607,无符号为0到16777215占用空间3字节

    bigint 有符号为-(2^23)~(2^23 - 1),无符号为0~(2^24 - 1),占用空间字节为8字节

    浮点数类型 float(m,d)不能使用无符号的浮点数字,可以定义显示长度m和小数位数d,默认的为10,2 double(m,d)不能使用的双精度浮点数,默认的为16,4,存经纬度用此类型 定点数类型 decimal(m,d)非压缩浮点数不能是无符号的,显示长度和小数的数量是必须的,在精度要求比较高的应用中(如货币)要使用定点数来保存数据

    日期和时间类型

    类型名称                           日期格式                                          占用空间 YEAR                                  YYYY                                             1个字节 TIME                                   HH:MM:SS                                     3个字节 DATE                                  YYYY-MM-DD                                 3个字节 DATETIME                          YYYY-MM-DD HH:MM:SS              8个字节 TIMESTAMP                        YYYY-MM-DD HH:MM:SS              4个字节

    字符串类型

    char(M),M为0~255之间的整数

    varchar(M),M为0~65536之间的整数,值的长度+1个字节

    tinyblob,允许长度为0~255字节,值的长度+1个字节

    blob,允许长度为0~65535字节,值的长度+2个字节

    mediumblob ,允许长度为0~167772150字节,值的长度+3个字节

    longblob ,允许长度为0~4294967295字节,值的长度+4个字节

    tinytext,允许长度为0~255字节,值的长度+2个字节

    text,允许长度为0~65535字节,值的长度+2个字节

    mediumtext,允许长度为0~167772150字节,值的长度+3个字节

    longtext ,允许长度为0~4294967295字节,值的长度+4个字节

    enum,枚举,存储需求为1或两个字节

    set,一个设置,字符串对象可以有零个或多个set成员,存储需求为1,2,3,4或8个字节

    数据类型的选择注意事项

    BLOB是二进制串,用来存储音频、图片等二进制数据;TEXT是非二进制字符串,用来存放纯文本文件,虽然存储文本文件本质上也是存储二进制,但是TEXT会有一个字符集,会转化为可显示字符。

    CHAR是固定长度,优点是处理速度快,缺点是浪费空间; VARCHAR是可变长度,优点是节省空间,缺点是处理速度慢。 对于MyISAM存储引擎,最好使用固定长度的数据列,以使整个数据表静态化,从而缩短数据检索时间,用空间换时间; 对于InnoDB存储引擎,推荐使用VARCHAR,因为InnoDB数据表的存储格式不分固定长度和可变长度,所以在检索时间上固定长度和可变长度差不多,所以,使用VARCHAR就比较节省空间了。

    对于日期类型的选择,如果应用只需要记录年,那么用一个字节来存储的year就可以满足需求,这样不仅能节约存储,更能提高 表的操作效率

    如果要记录年月日时分秒,并且记录的年份比较久远,那么最好使用datetime,而不是要使用timestamp,因为timestamp表示的日期范围比datetime要短的多,如果要记录的日期需要让不同时区的用户使用,那么最好使用timestamp,因为日期类型中只用它能够和实际时区相对应

    转载请注明原文地址: https://ju.6miu.com/read-33582.html

    最新回复(0)