MySql数据库对象

MySql数据类型

1. Number

整形

常用类型:INT、SMALLINT、MEDIUMINT、BIGINT

TypeStorageMinimum ValueMaximum Value
Bytes(Signed/Unsigned)(Signed/Unsigned)
TINYINT1-128127
0255
SMALLINT2-3276832767
065535
MEDIUMINT3-83886088388607
016777215
INT4-21474836482147483647
04294967295
BIGINT8-92233720368547758089223372036854775807
018446744073709551615


问题:int(10)和int(20)的区别
  1. 在存储空间和存储范围是没有任何的区别。
  2. 只设置zerofill属性后,补足0的情况下才有区别。


浮点型

常用类型:FLOAT( M , D )、DOUBLE( M , D )

属性存储空间精度精确性
Float4字节单精度非精确
Double8字节双精度比Float精度高


定点数

DECIMAL — 更精确的数字类型
1. 高精度的数据类型,常用来存储交易相关数据。
2. DECIMAL( M , N ) ,M代表总精度,N代表小数点右侧的位数(标度)。
3. 1 < M < 254 , 0 < N < 60。
4. 存储空间变长。

经验:
1. 存储性别、省份、类型等分类信息时选择用Tinyint或者Enum。
2. Bigint存储空间更大,Int和Bigint通常之间选用Bigint。
3. 交易等高精度数据时选择使用Decimal。

2. char 、varchar 、text

char 与 varchar

  • char与varchar的存储单位都是字符
  • 字符与字节的区别

    编码\输入字符串字符varchar
    gbk(双字节)varchar(2)/4字节varchar(7)/7字节
    utf8(三字节)varchar(2)/6字节varchar(7)/7字节
    utf8mb4(四字节)varchar(2)/8字节varchar(7)/7字节
  • char存储定长,容易造成空间浪费

  • varchar存储变长,节省存储空间

text与char、varchar的区别

  • char与varchar存储单位为字符
  • text存储单位为字节,总大小为65535字节,约为64KB
  • char数据类型最大为255字符
  • varchar数据类型为变长存储,可以存储超过255字符
  • text在数据库内部大多存储格式为溢出页,效率不如char

3. 二进制文件

  • BLOG
  • BINARY

    存储格式也是为溢出页,通常非常不推荐用数据库存储二进制文件

4. 日期

  • DATE
  • TIME
  • DATETIME
  • TIMESTAMP
  • BIGINT

存储空间上的区别

  • DATE :3字节 如: 2015-05-01
  • TIME :3字节 如:11:12:00
  • TIMESTAMP:4字节 如:2015-05-01 11:12:00
  • DATETIME:8字节 如:2015-05=01 11:12:00

存储精度的区别

  • DATE精确到年月日
  • TIME精确到时分秒
  • TIMESTAMP、DATETIME包含上述两者

存储范围

  • TIMESTAMP : 1970-01-01 00:00:01 to 2038-01-19 03:14:07
  • DATETIME : 1000-01-01 00:00:01 to 9999-12-31 23:59:59

MySql5.6.4版本之后,TIMESTAMP、DATETIME支持到微秒

字段类型与时区的关联关系

  • TIMESTAMP会根据系统时区进行转换,DATETIME不会

BIGINT存储时间类型

存储时间戳
时间 —>时间戳:unix_timestamp()
时间戳 —> 时间 : from_unixtime()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值