本文Mysql的版本为当前最新的:Server version: 8.0.30 MySQL Community Server - GPL
对于Mysql中对整数类型的支持说明如下:
MySQL supports the SQL standard integer types INTEGER
(or INT
) and SMALLINT
. As an extension to the standard,
MySQL also supports the integer types TINYINT
, MEDIUMINT
, and BIGINT
. The following table shows the required storage and range for each integer type.
因此Mysql支持5种类型用来表示整型数字,分别用1,2,3,4,8 个字节来表示
tinyint smallint mediumint int bigint
表示的范围如下图所示:
对于上面的整数类型,创建表时,不特殊声明,默认就是有符号类型的,即同时支持 负数,0,正数
对于无符号的整数类型,创建时,需要在类型后,加上unsigned进行特别声明,如下:
mysql> create table integer_demo ( -> a int, -> b int unsigned -> ); Query OK, 0 rows affected (0.02 sec)
这样integer_demo表的b字段,就只能存储规定范围内的自然数了,不能存储负数
另外,笔者曾查询过,对于负数的存储原理,是取负数的绝对值的原码,再取其反码,最后再+1得到补码进行存储,因此tinyint 有符号类型,最小的为-128
因此如-128在数据库的存储为 1000 0000, -1的存储为1111 1111 ,可以知道负数的最高位为始终为1
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/16929644.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!