MySQL的字段长度和显示宽度

MySQL类型关键字后面的括号内指定整数值的显示宽度(例如,INT(11))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。

所以INT(1)和INT(11)默认是没有任何区别的!!!

当结合可选扩展属性ZEROFILL使用时, 默认补充的空格用零代替。例如,对于声明为INT(5) ZEROFILL的列,值4检索为00004。 请注意如果在整数列保存超过显示宽度的一个值,当MySQL为复杂联接生成临时表时会遇到问题,因为在这些情况下MySQL相信数据适合原列宽度。

所有整数类型可以有一个可选(非标准)属性UNSIGNED。当你想要在列内只允许非负数和该列需要较大的上限数值范围时可以使用无符号值 。 如果设置了ZEROFILL扩展属性试,默认就有了无符号属性(UNSIGNED)

所以INT(1)与INT(11)后的括号中的字符表示显示宽度,整数列的显示宽度与MySQL需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,INT类型的字段能存储的数据上限还是2147483647(有符号型)和4294967295(无符号型)。其实当我们在选择使用INT的类型的时候,不论是INT(1)还是INT(11),它在数据库里面存储的都是4个字节的长度。

总结:

INT(M) ZEROFILL,加上ZEROFILL后M才表现出不同,比如 INT(3) ZEROFILL,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果INT(3)和INT(10)不加ZEROFILL,则它们没有什么区别.M不是用来限制INT列内保存值的范围的.int(M)的最大值和最小值与UNSIGNED有关。

时间: 2024-12-01 19:48:07

MySQL的字段长度和显示宽度的相关文章

mysql修改字段长度及pymysql.err.DataError: (1406, "Data too long for column 'name' at row 1")错误

文章链接:修改字段:https://blog.csdn.net/xiejunna/article/details/78580682 错误分析:https://blog.csdn.net/qq_42142258/article/details/82782237 修改字段长度类型:https://www.cnblogs.com/freeweb/p/5210762.html 向mysql 插入数据并能显示一条数据再报错:pymysql.err.DataError: (1406, "Data too l

关于mysql的字段长度含义问题。

int的长度可不是自己定义的,系统已经定义好了. 如果是varchar类型的 你定义一个1,绝对不能输入abc. int(m),integer(m) 32位整数(4字节....) 其实这个m跟INT能表示的范围没有关系,只要你选择了INT,INT是用4个字节表示,1个字节8位,若表示无符号数时可以表示的范围是 0 ------- 2^32-1次方 ,你可以存储任何在这个范围内的数字.但也不是说跟表示完全没关系,mysql中有个zerofll,当建表时选择了0 填充之后存储就会有很大的不同,这时如

mysql中字段长度知多少

1.数字类型 1 TINYINT 1字节 2 SMALLINT 2字节 3 MEDIUMINT 3 个字节 4 INT 4 个字节 5 INTEGER 4 个字节 6 BIGINT 8 个字节      

mysql中修改表字段名/字段长度/字段类型详解

先来看看常用的方法 MySql的简单语法,常用,却不容易记住.当然,这些Sql语法在各数据库中基本通用.下面列出: 1.增加一个字段 alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; //增加一个字段,默认为空alter table user add COLUMN new2 VARCHAR(20) NOT NULL; //增加一个字段,默认不能为空 2.删除一个字段 alter table user DROP COLUMN ne

mysql timestamp字段定义的

Cause: java.sql.SQLException: Cannot convert value '2017-07-26 20:40:41.000000' from column 10 to TIMESTAMP.; SQL []; Cannot convert value '2017-07-26 20:40:41.000000' from column 10 to TIMESTAMP.; nested exception is java.sql.SQLException: Cannot co

Mysql修改字段类型

mysql 修改字段长度 alter table news  modify column title varchar(130); alter table 表名 modify column 字段名 类型; 如:news 表里的title  字段 原来长度是 100个字符,现长度要改成130个字符 alter table news modify column title varchar(130); 原文地址:https://www.cnblogs.com/-zrj/p/9504009.html

Mysql字段长度限制你真的了解吗?

一行中可以容纳多少字段长度?每个字段拥有长度又可以是多少?是否数据类型的限制长度固定不变?带着这几个问题,我们开始进行一系列研究. 一.行容纳的字段长度 众所周知,记录是以行的形式进行保存的,Mysql5.1以后,行的保存格式默认为Compact格式.行记录Compact格式为: 变长字段 NULL标志位 记录头信息 列1数据 列2数据 列3数据 ... 第一个变长字段是记录这行的总字段长度,如果行记录的字段总长小于255字节,变长字段就占一个字节(一个字节有8位,8位的二进制最多能表示到255

[转]分析MySQL数据类型的长度【mysql数据字段 中length和decimals的作用!熟悉mysql必看】

你看到的这个文章来自于http://www.cnblogs.com/ayanmw 转载自:http://blog.csdn.net/daydreamingboy/article/details/6310907 分析MySQL数据类型的长度 MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length).VARCHAR(Length).TINYINT(Length).SMALLINT(Length).MEDIUMINT(Length).INT(Length).BIGINT(L

修改MySQL中字段的类型和长度

MySQL修改字段类型的命令是: mysql> alter table 表名 modify column 字段名 类型; 假设在MySQL中有一个表为:address,有一个字段为city 初始情况下为varchar(30),那么修改类型为char可以在MySQL控制台输入: alter table address modify column city char(30); 注意修改类型应该谨慎,因为类型之间数据需要转换,可能会导致数据出错或者丢失 如果要将varchar(30)长度进行扩展可以使