An exact numeric data type that uses integer data.
bigint
Integer data (all numbers) from -2^63 (-9223372036854775808) to 2^63-1 (9223372036854775807). The storage size is 8 bytes.
Int
Integer data (all numbers) from -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647). The storage size is 4 bytes. The SQL-92 synonymous word for int is integer.
smallint
Integer data from -2^15 (-32,768) to 2^15-1 (32,767). The storage size is 2 bytes.
tinyint
Integer data from 0 to 255. The storage size is 1 bytes.
Comments
Support for bigint data types where integer values are supported. However,bigint is used in some special cases when the integer value exceeds the range supported by the int data type, bigintcan be used. In SQL Server, theint data type is the primary integer data type.
In the data type precedence table,bigint is located between smallmoney and int .
The function returns bigintonly if the parameter expression is a bigint data type. SQL Server does not automatically promote other integer data types (tinyint,smallint , and int) to bigint.
In the MySQL data type, the value range of tinyint is: The signed range is 128 to 127. The unsigned range is 0 to 255 (see the official MySQL 5.1 reference Manual, Http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#numeric-types).
The tinyint occupies 1 bytes of storage space, or 8 bits (bit). So how did the tinyint range come from? Let's look at the unsigned situation first. The unsigned minimum value is all 8 bits (bit) are 0, converted to decimal is 0, so the minimum value of unsigned tinyint is 0. Unsigned maximum value is all 8bit is 1, 11111111, converted to decimal is 255. It's good to understand.
What is the value range of the signed tinyint? In the computer, the symbol is represented by the highest position. 0 means positive, 1 is negative, and the rest represents the value. So the minimum value of a signed 8bit is
1 1 1 1 1 1 1 1=-127
Represents a negative value
Maximum value:
0 1 1 1 1 1 1 1=+127
Indicates a positive value
How does the minimum value of the symbol be-127 instead of-128? This is the key point of this article, in the computer, the negative value is to use the complement (positive code, anti-code, the concept of complement to see http://indian.blog.163.com/blog/static/1088158200610942745817/)
Why is the minimum value of the signed tinyint 128? Although "0" is also "0", according to the system of positive, reverse, and complement, "0" of the complement and "+0" is different, so that the appearance of two complement represents a numerical situation. In order to match the complement with the number one by one, it is stipulated that "0" is used for "+0". At the same time, in order to make full use of resources, the original should be expressed as "0" of the complement provisions as a representative-128
Differences between int, bigint, smallint, and tinyint in MySQL