概述
mysql中 有符号(signed), 无符号(unsigned )与 零填充(zerofill) 详解
三者区别
unsigned 是mysql自定义的类型,表示无符号数值即非负数。signed为整型默认属性。
区别1:起到约束数值的作用。
区别2:可以增加数值范围。
以tinyint为例,它的取值范围-128-127,加不加signed都默认此范围。加上unsigned表示范围0-255,其实相当于把负数那部分加到正数上。例如身高、体重或者年龄等字段一般不会为负数,此时就可以设置一个 UNSIGNED ,不允许负数插入。
zerofill零填充会自动使用无符号位。零填充指的是位数固定,如果数值长度不足字段类型的长度,则使用0来填充。比如zerofill 的int数值,设为123,数据库中会显示0000000123;
应用场景
mysql中数值有:五种整型(tinyint、smallint、mediumint、integer和bigint),三种浮点型(float、double和decimal)。整型数值可定义为unsigned,使列的取值为0及以上范围。
但是浮点类型不能使用unsigned,其取值范围也与整型不同。以int和float为例:两者都是4个字节,32位。
整型 int =1个符号位+31个指数位,取值范围为2^-31——2^31-1。
但是浮点型float =1个符号位+8个指数位+23个尾数位,取值采用的是IEEE 754标准,具体的规则这里不做介绍了。
最后
以上就是神勇绿茶为你收集整理的mysql中 signed 与 unsigned 详解mysql中 有符号(signed), 无符号(unsigned )与 零填充(zerofill) 详解的全部内容,希望文章能够帮你解决mysql中 signed 与 unsigned 详解mysql中 有符号(signed), 无符号(unsigned )与 零填充(zerofill) 详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复