首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

详解 mysql int 类型长度值问题

秉着好奇心, 打开了 google ~ 引入大神的解答. mysql 在建表的时候 int 类型后的长度代表什么? 是该列允许存储值的最大宽度?...为什么我设置成 int(1), 也一样能存 10,100,1000 呢. 当时我虽然知道 int(1), 这个长度 1 并不代表允许存储的宽度, 但却没有一个合理的解释....所以我在网上查阅了一些资料, 也仔细的看了 mysql 手册关于 int data type 的说法. 以下是每个整数类型的存储和范围 (来自 mysql 手册) ?...我们拿 int 类型例: int 类型, 占用字节数 4byte, 学过计算机原理的同学应该知道, 字节 (byte) 并非是计算机存储的最小单位, 还有比字节 (byte) 更小的单位, 也就是位...计算机存储单位的换算: 1B=8b 1KB=1024B 1MB=1024KB 那么根据 int 类型允许存储的字节数是 4 个字节, 我们就能换算出 intUNSIGNED(无符号) 类型的能存储的最小值

3.6K20

MySqlint(10)与int(11)有什么区别

0 1 引言 依稀还记得有次面试,有面试官问我int(10)与int(11)有什么区别,当时觉得就是长度的区别吧!面试官最后也没有给反馈,我也就以为自己答对了。...最后查出的结果是:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储 3个长度的数字,int(11)就会存储 11 个长度的数字,这是大错特错的。...int(10)也可以代表 2147483647 这个值int(11)也可以代表。 要查看出不同效果记得在创建类型的时候加 zerofill这个值,表示用 0 填充,否则看不出效果的。...当结合可选扩展属性 ZEROFILL 使用时, 默认补充的空格用零代替。例如,对于声明为 INT(5) ZEROFILL 的列,值 4 检索 00004。...请注意如果在整数列保存超过显示宽度的一个值,当 MySQL 复杂联接生成临时表时会遇到问题,因为在这些情况下 MySQL 相信数据适合原列宽度。

4.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于mysql字段时间类型timestamp默认当前时间问题--Java学习网

    今天把应用部署到AWS上发现后台修改内容提交后程序报错,经过排查发现是更新数据的时候,有张数据表中的一个timestamp类型的字段默认值变成了"0000-00-00 00:00:00.000000"格式...将“explicit_defaults_for_timestamp”的值设置ON。 2....“explicit_defaults_for_timestamp”的值依旧是OFF,也有两种方法可以禁用 1> 用DEFAULT子句该该列指定一个默认值 2> 该列指定NULL属性...开发环境explicit_defaults_for_timestamp 的值是OFF 比对了下RDS中mysql的参数,发现这个参数值0,因为rds中mysql默认参数组是不允许修改的,所以创建个参数组...,会默认把default的参数组继承过来,当时并不知道这里的0和1是怎么对应on和off的,所以就把值改成了1.然后重启rds。

    2.4K20

    MySQL基础数据类型

    | #无符号,最大值255 | 255 | #256存成了255 +------+ 有符号和无符号int 1.int默认为有符号 mysql...默认的显示宽度就是能够存储的最大的数据的长度,比如:int无符号类型,那么默认的显示宽度就是int(10),有符号的就是int(11),因为多了一个符号,所以我们没有必要指定整数类型的数据,没必要指定宽度...-1     有符号和无符号的最大数字需要的显示宽度均为10,而针对有符号的最小值则需要11位才能显示完全,所以int类型默认的显示宽度11是非常合理的     最后:整形类型,其实没有必要指定显示宽度...,不是说好的char会补全,我设置的字段是char(4),那么长度应该都是4才对啊?...这次 LENGTH 函数返回的长度 10。需要注意的是,LENGTH 函数返回的是字节长度,而不是字符长度

    5K10

    数据库之表操作

    num int not null, primary key(nid,num) ) 主键 自增,如果某列设置自增列,插入数据时无需设置此列,默认将自增... MySQL支持多种类型,大致可以分为四类:数值、字符串类型、日期/时间和其他类型 二进制类型: bit[(M)] 二进制位(101001),m表示二进制位的长度(1-64),...,与存储范围无关,所以我们使用默认的就可以了 有符号和无符号的最大数字需要的显示宽度均为10, 而针对有符号的最小值则需要11位才能显示完全,所以int类型默认的显示宽度11是非常合理的...varchar(m) varchar 数据类型用于变长的字符串,可以包含最多达65535个字符(理论上可以,但是实际上在超出21845长度后,mysql会自动帮您转换数据类型文本类型)...其中m代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。

    44420

    PHP 笔试 + 面试题

    arr[], int n) // n 数组大小 { for (int i = 0; i < n - 1; i++) { // n-1 趟排序 for (int j = i...int arr[10] = { 5, 1, 7, 2, 9, 3, 6, 8, 0, 4 }; bubbleSort(arr, 10); // 数组大小 for (int i = 0...9 return substr($str, 0, $i); // $i 是加上中文后的字符串长度 } echo GBSubstr("ab喜cdefgh",7); // 从头开始截取一个长度...它要求存储在Memory数据表里的数据使用的是长度不变的格式,这意味着不能使用BLOB和TEXT这样的长度可变的数据类型,VARCHAR是一种长度可变的类型,但因为它在MySQL内部当做长度固定不变的CHAR...[3] MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么? varchar是变长,节省存储空间,char是固定长度

    3K51

    告诉你 38 个 MySQL 数据库的小技巧!

    还可以使用一种直接的方法查看默认存储引擎。执行结果直接显示了当前默认的存储引擎 MyISAM。...10 选择数据类型的方法和技巧是什么? MySQL 提供了大量的数据类型,为了优化存储,提高数据库性能,在任何情况下均应使用 最精确的类型。即在所有可以表示该列值的类型中,该类型使用的存储最少。...12 MySQL 中可以存储文件MySQL 中的 BLOB 和 TEXT 字段类型可以存储数据量较大的文件,可以使用这些数据类型 存储图像、声音或者是大容量的文本内容,例如网页或者文档。...可以输入 LEFT(dt, 4),这样就获得了字符串左边开始长度 4 的子字符串,即 YEAR 部分的值;如果要获取月份值,可以输入 MID(dt,6,2),字符串第 6 个字符开始,长度 2 的子...默认情况下查询缓冲区的大小 〇,也就是不可用。可以修改 queiy_cache_size 以调查询缓冲区大小;修改 query_cache_type 以调整查询缓冲区的类型

    2.6K40

    告诉你38个MySQL数据库的小技巧!

    还可以使用一种直接的方法查看默认存储引擎。执行结果直接显示了当前默认的存储引擎MyISAM。...10、选择数据类型的方法和技巧是什么? MySQL提供了大量的数据类型,为了优化存储,提高数据库性能,在任何情况下均应使用 最精确的类型。即在所有可以表示该列值的类型中,该类型使用的存储最少。...LEFT(dt, 4),这样就获得了字符串左边开始长度4的子字符串,即YEAR 部分的值;如果要获取月份值,可以输入MID(dt,6,2),字符串第6个字符开始,长度2的子 字符串正好dt中的月份值...对字符串类型的字段进行索引,如果可能应该指定一个前缀长度。例如,如果有一个 CHAR(255)的列,如果在前10个或30个字符内,多数值是惟一的,则不需要对整个列进行索引。...默认情况下查询缓冲区的大小〇,也就是不可用。可以修改queiy_cache_size以调整 查询缓冲区大小;修改query_cache_type以调整查询缓冲区的类型

    2.6K10

    MySQL数据库实用技巧

    还可以使用一种直接的方法查看默认存储引擎。执行结果直接显示了当前默认的存储引擎MyISAM。...10、选择数据类型的方法和技巧是什么?   MySQL提供了大量的数据类型,为了优化存储,提高数据库性能,在任何情况下均应使用 最精确的类型。即在所有可以表示该列值的类型中,该类型使用的存储最少。...LEFT(dt, 4),这样就获得了字符串左边开始长度4的子字符串,即YEAR 部分的值;如果要获取月份值,可以输入MID(dt,6,2),字符串第6个字符开始,长度2的子 字符串正好dt中的月份值...对字符串类型的字段进行索引,如果可能应该指定一个前缀长度。例如,如果有一个 CHAR(255)的列,如果在前10个或30个字符内,多数值是惟一的,则不需要对整个列进行索引。...默认情况下查询缓冲区的大小0,也就是不可用。可以修改queiy_cache_size以调整查询缓冲区大小;修改query_cache_type以调整查询缓冲区的类型

    2.5K10

    37 个 MySQL 数据库小技巧,不看别后悔!

    还可以使用一种直接的方法查看默认存储引擎。执行结果直接显示了当前默认的存储引擎MyISAM。...10、选择数据类型的方法和技巧是什么? MySQL提供了大量的数据类型,为了优化存储,提高数据库性能,在任何情况下均应使用 最精确的类型。即在所有可以表示该列值的类型中,该类型使用的存储最少。...12、MySQL中可以存储文件MySQL中的BLOB和TEXT字段类型可以存储数据量较大的文件,可以使用这些数据类型 存储图像、声音或者是大容量的文本内容,例如网页或者文档。...LEFT(dt, 4),这样就获得了字符串左边开始长度4的子字符串,即YEAR 部分的值;如果要获取月份值,可以输入MID(dt,6,2),字符串第6个字符开始,长度2的子 字符串正好dt中的月份值...对字符串类型的字段进行索引,如果可能应该指定一个前缀长度。例如,如果有一个 CHAR(255)的列,如果在前10个或30个字符内,多数值是惟一的,则不需要对整个列进行索引。

    1.8K20

    DBA-MySql面试问题及答案-上

    7.选择合适的数据类型 8.char & varchar 9.Mysql字符集 10.如何选择字符集? 11.什么是索引? 12.索引设计原则? 13.MySql有哪些索引?...**varchar(10)和int(10)代表什么含义** 49.视图是什么?对比普通表优势? 50.count(*)在不同引擎的实现方式? 1.什么是数据库?...1.Myisam是Mysql默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。 每个MyISAM 在磁盘上存储成三个文件。...null值会占用更多的字节,且会在程序中造成很多与预期不符的情况. 48.varchar(10)和int(10)代表什么含义 varchar的10代表了申请的空间长度,也是可以存储的数据的最大长度,而int...的10只是代表了展示的长度,不足10位以0填充.也就是说,int(1)和int(10)所能存储的数字大小以及占用的空间都是相同的,只是在展示时按照长度展示。

    31220

    MySql的这几个坑你踩过没?真是防不胜防!

    二、有符号和无符号 以前我们公司在项目开发之初制定开发规范时,对mysqlint类型字段定义成有符号,还是无符号问题专门讨论过。...默认int类型就是有符号的,创建有符号字段的语句如下: create table test_signed(a int);insert into test_signed values(-1); 执行结果:...mysql除了varchar和char是代表字符长度之外,其余的类型都是代表字节长度int(n) 这个n表示什么意思呢?...mysql常用数字类型字段占用字节数对照表: ? 从表中可以看出bigint实际长度是8个字节,但是我们定义的a显示4个字节,所以在不满4个字节时前面填充0。...所以bigint(4),这里的4表示显示的长度4个字节,实际长度还是8个字节。 五、忽略大小写 我们知道在英文字母中有大小写问题,比如:a 和 A 是一样的

    85410

    一条这样的SQL语句最多能查询出来多少条记录?

    MySQL 的官方文档,根据文档我们知道: MySQL 客户端 max_allowed_packet值的默认大小 16M(不同的客户端可能有不同的默认值,但最大不能超过 1G) MySQL 服务端...那么第 2 点呢,单行记录,默认值是 64M,会不会太大了啊,一行记录有可能这么大的? 有必要设置这么大? 单行最大存储空间限制又是多少呢?  ...,那么我们试一下用和上图一样的字段长度,只把最后一个字段的类型改成 BLOB 和 TEXT mysql> CREATE TABLE t (a VARCHAR(10000), b VARCHAR(10000...例子中我们用的是 MySQL8 ,由于字符集是 utf8mb3 ,存储一个字要用三个字节, 长度 255 的话(列宽),总长度要 765 字节 ,再加上用 2 个字节存储长度,那么这个列的总长度就是...这种可变长度类型

    34740

    安全的数据库图形管理工具(4):SQL语句(2)

    字段类型和约束不能随便弄了,这个是已经规定好的协议,下面我们就来一一看看。 MySQL数据类型 MySQL数据类型有很多,最主要的也就那么几个,字符串,整数,浮点数,定点数,日期时间。...CHAR(10)和VARCHAR(10)表示都只能最多存放10个字符,CHAR(10)表示不管存放多少个字符,他都占用10个字符的空间(也就是10字节),那么如果是VARCHAR(10)就是存放一个字符只占用一个字符的空间...定点数 浮点数真的可以精确表示?!大部分浮点数无法精确表示,浮点数可以精确表示的也就只有0.5=1/2,0.25=1/4……如果是0.1=1/10这就没有办法精确表示了,为什么呢?...MySQL约束 MySQL约束也就5种——主键约束,默认约束,唯一约束,外键约束,非空约束。...我在这里就是简单的删除了密码123的所有用户。这个SQL语句依旧可以封装,而且也不是太难,一个必选参数,一个默认参数,必选参数是表名,默认参数是条件。

    76820

    2024Mysql And Redis基础与进阶操作系列(11)作者——LJS

    具体操作:创建索引-单列索引-普通索引 单列索引 一个索引只包含单个列,但一个表中可以有多个单列索引 普通索引 MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹 了查询数据更快一点...是因为mysql本身就有一层sql优化, 他会根据sql来识别出来该用哪个索引,我们可以理解3和4在mysql眼中是等价的。...; 只有字段的数据类型 char、varchar、text 及其系列才可以建全文索引; 在数据量较大时候,现将数据放入一个没有全局索引的表中,然后再用create index创建fulltext索 引...MySQL 中的全文索引,有两个变量,最小搜索长度和最大搜索长度,对于长度小于最小搜索长度和大于最大搜索长度的词语,都不会被索引。...这两个的默认值可以使用以下命令查看: show variables like '%ft%'; 参数解释: # 参数名称 默认值 最小值 最大 值 作用 1 ft_min_word_len 4 1 3600

    6810
    领券