MySQL数据类型小结

一、数据类型图表

在这里插入图片描述
(1)mysql是不支持bool类型的,所以,当把一个数据设置成bool类型的时候,数据库会自动转换成tinyint(1)的数据类型,其实这个就是变相的bool。 默认值也就是1,0两种,分别对应了bool的true和false
(2)浮点类型格式:类型名(M,D)M是总长度,D是小数点后长度
(3)varchar(N)的N取值范围为65535,超过了自动转换为text类型

二、异同点分析

1、char(N)、varchar(N)、text的区别
(1)char(N)、varchar(N)。char(N)的N取值范围为255。varchar(N)的N取值范围为65535,超过了自动转换为text类型。其中N,不管针对char还是varcahr均有最大字符长度不允许超过N的意思,
(2)varchar(50)和varchar(100)是否一样?
硬盘存储需求一样,内存需求不一样。即对于VARCHAR数据类型来说,硬盘上的存储空间是根据实际字符长度来分配存储空间的,而对于内存来说,是使用N个字符空间的内存块来保存值,即varchar(50)占用50个字符内存空间,varchar(100)占用100个字符内存空间。

2、float、double、decimal类型的区别。
(1)MySQL 浮点型和定点型可以用类型名(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度,M和D又称为精度和标度,如float(7,4)的 可显示为-999.9999,MySQL保存值时进行四舍五入,如果插入999.00009,则结果为999.0001。
(2)FLOAT和DOUBLE在不指 定精度时,默认会按照实际的精度来显示,而DECIMAL在不指定精度时,默认整数为10,小数为0。DECIMAL数据类型用于要求非常高的精确度的计算中。

3、性别的类型
(1)数值型:可以使用0,1,2来表示,未知,男,女,优点搜索快,缺点显示/存储都要转换
(2)字符串:直接存储男/女,优点显示/存储便捷,缺点搜索慢
(3)真/假(布尔):使用真/假来设定男/女,优点搜索快,缺点显示/存储都要转换,而且没有第三种的未知状态

4、int和varchar的选择
设计数据库时,电话号码和邮编等,虽然是数字形式,但是应该设计为varchar类型,如果设计为int型,插入数据库会失效,比如电话会变成另外一串数字,插入0921,结果插入为921.因为int是以数字计算,varchar是以字符串计算。

发布了222 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42976139/article/details/103526802