《深入浅出Mysql》——第三章 Mysql支持的数据类型

时间:2022-01-12 02:03:27

《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 在整数类型中,按照取值范围和存储方式不同,分为 tinyint、smallint、mediumint、int、 bigint 这 5 个类型。如果超出类型范围的操作,会发生“Out of range”错误提示。为了避免此 类问题发生,在选择数据类型时要根据应用的实际情况确定其取值范围,最后根据确定的结 果慎重选择数据类型。 

对于整型数据,MySQL 还支持在类型名称后面的小括号内指定显示宽度,例如 int(5)表 示当数值宽度小于 5 位的时候在数字前面填满宽度,如果不显示指定宽度则默认为 int(11)。 一般配合 zerofill 使用,顾名思义,zerofill 就是用“0”填充的意思,也就是在数字位数不够 的空间用字符“0”填满。以下几个例子分别描述了填充前后的区别。

《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 (3)分别修改 id1和 id2 的字段类型,加入 zerofill 参数:

《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 

 

 《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 

 《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

日期类型:

《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 

TIMESTAMP还有一个重要特点,就是和时区相关。当插入日期时,会先转换为本地时区 后存放;而从数据库里面取出时,也同样需要将日期转换为本地时区后显示。这样,两个不 同时区的用户看到的同一个日期可能是不一样的,下面的例子演示了这个差别。 

 

(1)创建表t8,包含字段id1(TIMESTAMP)和id2(DATETIME),设置id2的目的是为 了和id1做对比

《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 可以发现,时区的值为“SYSTEM”,这个值默认是和主机的时区值一致的,因为我们在中国, 这里的“SYSTEM”实际是东八区( 8:00)。

(4)修改时区为东九区,再次查看表中日期: 

《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 

 

《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 

《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 

《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 

《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 

《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 《深入浅出Mysql》——第三章 Mysql支持的数据类型

 

 。对于超出允许值范围的值例 如(‘a,d,f‘)将不允许注入到上面例子中设置的 SET 类型列中,而对于(‘a,d,a‘)这样包含重 复成员的集合将只取一次,写入后的结果为“a,d”