如何在mysql中表示此数据?
16 bit unsigned integer -----Range: 0x0000 - 0xFFF7
64 bit unsigned int. Depicted as xx:xx:xx:xx:xx:xx:xx:xx -----Range: 0x0000 - 0xFFFFFFFFFFFFFFFF
2 bits ----- 00 - None, 01 - Residential Security, 10 - High Security
32 bit unsigned int
我应该将所有内容转换为字符串并在应用层转换它吗?
答案 0 :(得分:4)
根据MySQL's Overview of Numeric Types:
UNSIGNED SMALLINT
:范围是0到65535.这对于16位无符号整数就足够了。UNSIGNED TINYINT
:范围是0到255.足够2位无符号整数。您似乎需要保留前导零,因此也请使用ZEROFILL
。要将值保持为两个字符宽,您可以指定UNSIGNED ZEROFILL TINYINT(2)
。UNSIGNED INT
:范围是0到4294967295.足够32位无符号整数。UNSIGNED BIGINT
:范围是0到18446744073709551615.见下文:最后一个,64位unsigned int,有一些警告,来自上面的链接页面:
- 所有算术都是使用带符号的BIGINT或DOUBLE值完成的,因此除了位功能外,不应使用大于9223372036854775807(63位)的无符号大整数!如果这样做,结果中的一些最后数字可能是错误的,因为在将BIGINT值转换为DOUBLE时出现舍入错误。
- 通过使用字符串存储,您始终可以在BIGINT列中存储精确的整数值。在这种情况下,MySQL执行字符串到数字的转换,不涉及中间双精度表示。
- 当两个操作数都是整数值时, - ,+和*运算符使用BIGINT算法。这意味着如果乘以两个大整数(或返回整数的函数的结果),当结果大于9223372036854775807时,可能会得到意外结果。
答案 1 :(得分:1)
MySQL支持多种数据类型。见MySQL Data Types
UNSIGNED BIGINT : 8-byte (64-bit) integer
UNSIGNED INT : 4-byte (32-bit) integer
UNSIGNED SMALLINT : 2-byte (16-bit) integer
对于2位类型,您可以使用TINYINT (8-bit)
或ENUM
datatype。