MySQL-基础篇-数据类型

数据类型作用

给表字段指定存储格式、约束、有效范围,MySQL主要有以下几种数据类型:

  • 数值类型
  • 字符串类型
  • 日期和时间类型

数值类型

类型关键字字节无符号最小值无符号最大值
整数TINYINT1028-1
整数SMALLINT20216-1
整数MEDIUMINT30224-1
整数INT40232-1
整数BIGINT80264-1
浮点数FLOAT4 ± 1.175494351 E − 38 \pm1.175494351E-38 ±1.175494351E38 ± 3.402823466 E + 38 \pm3.402823466E+38 ±3.402823466E+38
浮点数DOUBLE4 ± 2.2250738585072014 E − 308 \pm2.2250738585072014E-308 ±2.2250738585072014E308 ± 1.7976931348623157 E + 308 \pm1.7976931348623157E+308 ±1.7976931348623157E+308
定点数DECIMAL(M,D)M+2和Double一致和Double一致
位类型BIT1~8BIT(1)BIT(64)
  1. 有符号情况下,由于需要一位表示符号,因此数值范围为 -2M*8-1~+2M*8-1-1 ,其中M表示字节数。
    • 单精度 符号位1 + 指数位8 + 尾数位23
    • 双精度 符号位1 + 指数位11 + 尾数位52
  2. 宽度定义,类似INT(8)表示宽度为8位,表示如果数值宽度小于8位时在数字前面填满宽度,和zerofill搭配使用。

字符串类型

字符串类型字节备注
CHAR(M)MM为0~255之间整数
VARCHAR(M)M为0~65535之间整数
BLOB允许长度0~65535字节
TEXT允许长度0~65535字节
LONGTEXT允许长度0~4294967295字节
  1. CHAR和VARCHAR的区别
    • CHAR的长度固定为声明的长度,而VARCHAR中的值为可变长字符串
    • 检索的时候,CHAR列删除了尾部的空格,而VARCHAR会保留空格

日期和时间类型

数据类型字节最小值最大值
DATETIME81000-01-01 00:00:009999-12:31 23:59:59
TIMESTAMP4197001010800012038年某个时刻
DATE41000-01-019999-12-31
TIME3-838:59:59838:59:59
YEAR119012155
  1. DATETIME和TIMESTAMP的区别是什么?
    • TIMESTAMP的时间范围较小,不适合存放比较久远的数据
    • 表中第一个TIMESTAMP列默认值自动设置为current_timestamp,其他TIMESTAMP的列默认值为’0000-00-00 00:00:00’
    • TIMESTAMP类型和时区相关,不同时区的人看到的时间是不一样的,而DATETIME只能反映插入时的本地时区。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值