MySQL一个语句查出各种整形占用字节数及最大最小值

时间:2023-08-04 15:07:32

直接上码:

select 'bigint unsigned' as type ,'' as bytes ,~0 as max_num,0 as min_num union
select 'int unsigned','',~0>>32,0 union
select 'mediumint unsigned','',~0>>40,0 union
select 'smallint unsigned','',~0>>48,0 union
select 'tinyint unsigned','',~0>>56,0 union
select 'signed bigint','',~0>>1,-(1<<63) union
select 'signed int','',~0>>33,-(1<<31) union
select 'signed mediumint','',~0>>41,-(1<<23) union
select 'signed smallint','',~0>>49,-(1<<15) union
select 'signed tinyint','',~0>>57,-(1<<7); +--------------------+-------+----------------------+----------------------+
| type | bytes | max_num | min_num |
+--------------------+-------+----------------------+----------------------+
| bigint unsigned | 8 | 18446744073709551615 | 0 |
| int unsigned | 4 | 4294967295 | 0 |
| mediumint unsigned | 3 | 16777215 | 0 |
| smallint unsigned | 2 | 65535 | 0 |
| tinyint unsigned | 1 | 255 | 0 |
| signed bigint | 8 | 9223372036854775807 | -9223372036854775808 |
| signed int | 4 | 2147483647 | -2147483648 |
| signed mediumint | 3 | 8388607 | -8388608 |
| signed smallint | 2 | 32767 | -32768 |
| signed tinyint | 1 | 127 | -128 |
+--------------------+-------+----------------------+----------------------+
10 rows in set (0.00 sec)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------