mysql Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT

使用mysql的时候,用到int类型的蛮多,需要注意一下:

1. 值的范围

Type Storage Minimum Value Maximum Value
  (Bytes) (Signed/Unsigned) (Signed/Unsigned)
TINYINT 1 -128 127
    0 255
SMALLINT 2 -32768 32767
    0 65535
MEDIUMINT 3 -8388608 8388607
    0 16777215
INT 4 -2147483648 2147483647
    0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
    0 18446744073709551615

2. 显示宽度

MySQL还支持选择在该类型关键字后面的括号内指定整数值的显示宽度。

int(M) 在 integer 数据类型中,M 表示最大显示宽度,该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。

参考文献:

https://dev.mysql.com/doc/refman/5.5/en/integer-types.html

时间: 2024-12-14 23:15:37

mysql Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT的相关文章

mysql bigint ,int , smallint,tinyint 的范围

bigint  8字节 64位 int 4字节 32位 smallint 2字节 16位 tinyint 1字节8位 .. 范围  -128 到 127  , 如果是无符号 ,则返回 位 0-255 ... 上面的同理 .. 但是由一点比较奇怪: tinyint 的列 设置了 长度 是不起作用的... 比如长度设置为 1  但是 值 还是可以为 -128 到127 之间.好像和长度无关系..不知道什么原因...

Sizes of integer types 整形字节长度 系统字节

/usr/include/limits.h /* Copyright (C) 1991, 1992, 1996, 1997, 1998, 1999, 2000, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms

MySQL报错“1366 - Incorrect integer value: '' XXXXXXX' at row 1 ”

出现这个错误是因为我在表中插入了一条含有中文字符的语句: 修改方法: my.ini中查找sql-mode 将 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION", 修改为 sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION", 重启mysql后即可 . MySQL报错"1366 - Incorrect int

MySql 基础学习笔记 1——概述与基本数据类型: 整型: 1)TINYINT 2)SMALLINT 3) MEDIUMINT 4)INT 5)BIGINT 主要是大小的差别 图 浮点型:命令

一.CMD中经常使用mysql相关命令 mysql -D, --database=name  //打开数据库 --delimiter=name  //指定分隔符 -h, --host=name  //server名称 -p,--password[=name]  //密码 -p,--port[=name] //端口号 --prompt==name  //设置提示符 -u, --user=name  //username -V, --version    //输出版本 能够组合使用,如 输入 -uu

关于Integer对象比较,和int基本类型比较的一些问题

public class Test { public static void main(String[] args) { Integer j = 192; int i = 192; System.out.println(new Integer(12) == new Integer(12));//false对象比较.///必然不同 System.out.println(new Integer(192) == i);//true自动拆箱 System.out.println(j == i);//tr

[底层] 为什么Integer.MIN_VALUE-1会等于Integer.MAX_VALUE

Integer.MIN_VALUE-1 = Integer.MAX_VALUE Integer.MAX_VALUE+1 = Integer.MIN_VALUE 实际上这里是计算机底层的位运算法则问题[1] 计算机底层采用了补码来进行加减乘除的运算,好处是符号位参与运算. 举上面两个例子来说明问题. Integer.MIN_VALUE:  $10000000000000000000000000000000$ Integer.MAX_VALUE: $0111111111111111111111111

MySQL中有关char、varchar、int、tinyint、decimal

char.varchar属于字符串类型 1.char属于定长,能确切的知道列值的长度,也就是有多少个字符.当指定char(5)时,表示只能存5个字符,如5个英文‘a’,5个汉字‘我’,5个符号‘&’等等,超出部分会被截掉,不足部分会在字符串后面以空格补充,取出时去去掉后面的空格.占用5个字节. 2.varchar属于不定长,当指定varchar(5)时,表示只能存5个字符,如5个英文‘a’,5个汉字‘我’,5个符号‘&’等等,超出部分会被截掉,不足部分不进行填充,原样取出保存的值.占用5+

MySQLdb 的 Integer 字段类型转换,long -> int

使用 MySQLdb 或 SQLAlchemy 的时候,会发现表里的 Integer 字段被默认转换为了 long 类型.这种行为其实是 DB API 做的,即都是 MySQLdb 的错(假设你在使用这个 API 的话).这是因为 MySQL 的 unsigned int 范围已经超出了 int 的上限,强行使用可能导致溢出. 但 int 的上限在 10 万亿以上,一般用作 ID 的话,在溢出风险和便利性的权衡上其实有很大空间.因此这里给出改变 DB API 默认转换规则的方法. MySQLdb

[LeetCode][13]Roman to Integer解析 罗马字符转int类型关于栈的常数实现-Java实现

Q: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. A: 以下解法和代码没有借阅以往任何资料,如果有更好的解法请在评论区留言 看到这一题我真是感叹城会玩,昨天刚刚解过一个int转罗马字母,今天又反过来解.自叹弗如.这题的该意思就是给一个罗马字符,把他转化成一个int数字,范围在1-3999之间.关于罗马数字的详细信息就不复制了,