MYSQL数据类型与存储空间

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nimasike/article/details/88623663

1:整形 

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

类型 存储空间(字节) 最小值(有符号) 最小值(无符号) 最大值(有符号) 最大值(无符号)
TINYINT 1 -128 0 127 255
SMALLINT 2 -32768 0 32767 65535
MEDIUMINT 3 -8388608 0 8388607 16777215
INT 4 -2147483648 0 2147483647 4294967295
BIGINT 5 -2的63次幂 0 2的63次幂-1 2的64次幂-1

2:BIT类型

bit类型存储二进制的值,bit(M)可以存储M个二进制的值,M的范围1-64。

可以使用b'value'这种语法存值,value是 0或者1,例如 b'111' and b'10000000' 分别代表7和128。

如果长度不够则左侧以0填充,例如 bit(6),  值为b‘101’,则实际为000101。

SELECT bin(Money_), oct(Money_) FROM db_test;

3:时间类型

DATE,DATETIME,TIMESTAMP

date日期类型 ,格式YYYY-MM-DD, 存储范围'1000-01-01' to '9999-12-31'。

datetime时间类型,格式YYYY-MM-DD HH:MM:SS,存储范围  '1000-01-01 00:00:00' to '9999-12-31 23:59:59'。

扫描二维码关注公众号,回复: 6421113 查看本文章

timestamp时间类型,格式,YYYY-MM-DD HH:MM:SS,存储范围  '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC。

timestamp再存取值时,会把时间转换为UTC世界标准时间进行存取,比如mysql服务器是GTM+8的时区,那么存到mysql中会把当前时间减掉8小时,读取的时候在把时间加上8小时,就是你要的值。但是如果你存储和读取时时区不一致,就会导致时间不准确。

TIME

MySQL以'HH:MM:SS'格式(或大小时值的'HHH:MM:SS'格式)检索并显示TIME值。 TIME值的范围可以从'-838:59:59'到'838:59:59'。 小时部分可能非常大,因为TIME类型不仅可以用来表示一天中的时间(必须小于24小时),还可以用于表示两个事件之间的经过时间或时间间隔(可能远大于 24小时,甚至是负面的)。

YEAR

占用一个字节,8位。  范围是1901 to 2155, 底层存储的是与2155-1901=254,一个字节可以存储,底层存储的是与1901的差值。

4:浮点型

猜你喜欢

转载自blog.csdn.net/nimasike/article/details/88623663