重庆网站设计,软文推广营销平台,如何避免网站被耍流量,外汇返佣网站开发数据库的数据类型应该是数据库架构师(DBA)和产品经理沟通后依据公司的项目、业务而定的#xff0c;而且会不停地变化。数据类型的选择方面没有一个统一的标准#xff0c;但是应该符合业务、项目的逻辑标准。 菜鸟教程 Mysql 数据类型 文章目录 1. int类型2. 浮点数3. 定点数4… 数据库的数据类型应该是数据库架构师(DBA)和产品经理沟通后依据公司的项目、业务而定的而且会不停地变化。数据类型的选择方面没有一个统一的标准但是应该符合业务、项目的逻辑标准。 菜鸟教程 Mysql 数据类型 文章目录 1. int类型2. 浮点数3. 定点数4. 字符串与文本类型5. 枚举类型6. 布尔类型7. set类型(集合类型)8. 时间和日期类9. 内容出处 1. int类型 无符号就是unsinged属性即一定是正数 例如年龄一定是unsigned tinyint因为年龄一定是正数且没有人的年龄会超过255岁 我们可以发现number这个字段的输入数据可以超过设定的宽度6(倒数第二条数据报错是因为它超过了int的范围)但是age字段的输入数据不可以超过unsigned tinyint的范围(即不能超过255)。 2. 浮点数 数据类型后面括号中第一个是总位数第二个是小数位数 我们可以发现一旦输入数据的小数位数超过了设定的小数位数就会出现四舍五入或者精度丢失的情况。因此除非有特殊要求否则在mysql里浮点类型数据不是特别常用。例如银行卡余额就不会用浮点数来存储。 问为什么会出现精度丢失问题 答(gpt)① 有限的位数浮点数在计算机中通常用32位(float)或64位(double)来表示。这些位数决定了浮点数能表示的有效数字的总位数。当数值超出这个范围时会发生舍入或精度丢失。② 二进制表示计算机内部以二进制形式存储浮点数而不是十进制。在转换过程中某些十进制无法被精确地表示为二进制因此在存储和计算时会有精度误差。③ 舍入误差浮点数的运算涉及到四舍五入和近似值的处理这可能会导致计算结果与期望值略有不同。 3. 定点数 问什么叫定点数 答它是变长的大概每9个数字用4个字节来存储。 问为什么它不存在精度丢失问题 答因为它的整数部分和小数部分是分开存的。 定点数也支持无符号的 存钱也用decimal因为不用考虑精度丢失问题。 4. 字符串与文本类型 ① C和Java中的char只能存单个字符而mysql中的char可以存储字符串 ② varchar 会回收多余的空间且比char表示范围要大因而推荐它 ③ 但是char的效率要比varchar高 ④ varchar的理论长度是65535但是实际上它可能达不到。因为字符串字符的大小跟字符集编码有关例如一个汉字占2个字节这个时候varchar可存储的数据长度就是65535除以2。如果是utf8可能就只有2万多了jbk可能就是32000多。 ⑤ TEXT比较常用。可以用来存储博客文章等 5. 枚举类型 可以结合c语言中的枚举类型理解 ① 枚举类型的另类存储方式 枚举是通过整数进行管理的即第一个数据’man’在存储时就是1第二个’woman’是2以此类推。这样可以节省字节。 ② 枚举类型的好处 节省空间、速度快(比字符串要快好多因为它存的是数字但是读取和显示时是字符串)、限制数据(对输入的数据进行了限制只允许输入哪几个数据) 6. 布尔类型 7. set类型(集合类型) 一些网站点进去会让我们选择感兴趣的标签例如数学、天文、音乐等等。通常情况下我们可以选择多个。这个就是用set实现的 与枚举的区别 ① 枚举类型一次只能取一个数据set类型一次可以取多个数据 ② 枚举类型数据是按1、2、3等存储set类型分配方式是从左向右按照2的指数幂存储(8个字节是64位因此8个字节可以保存64个选项),即2^0 、2^1 、2^2等 第一种写法报错的原因这种写法相当于一次存了两个字段 第一种写法报错的原因这种写法相当于一次存了三个字段加引号也不行 8. 时间和日期类 ① 规定每张表都必须要有时间和日期类型不过不是我们手动输入时间而是让程序自动给 ② 实际应用时datetime就行因为这个格式非常清晰 9. 内容出处 mysql