MySQL——数据类型

本文详细介绍了MySQL中的数据类型,包括bit、小数、字符串、时间及enum和set。探讨了数值类型的边界测试,浮点数与定点数的区别,以及char与varchar的选择原则。此外,还讲解了日期时间类型和enum、set的使用场景。
摘要由CSDN通过智能技术生成

目录

数据类型分类

bit类型

小数类型

字符串类型

时间类型

 enum和set


数据类型分类

分为四种类型

  • 数值类型
  • 文本二进制类型
  • 时间日期
  • string类型

 我们需要了解数值类型不同可容许的最大值和最小值分别是多少

 我们来进行几组越界测试:

 我们可以发现,整形默认是有符号的。那如何创建无符号的呢?

bit类型

//bit基本语法
bit[(M)]: 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1。

问: 为什么a对应的值未显示呢?

因为bit字段在显示时,是按照ASCII码对应的值显示。

小数类型

数值类型中,其中float类型和decimal类型属于小数类型。

//float语法
float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节

比如float(4,2)表示的范围是-99.9~99.99。

我们可以从插入值看出,float保存时会四舍五入。

当float是无符号时,float(4,2)unsigned范围是0~99.99

 

//decimal语法
decimal(m, d) [unsigned] : 定点数m指定长度,d表示小数点的位数

比如decimal(5,2)表示的范围是-999.99~999.99

如上,decimal(5,2) unsigned 表示的范围 0 ~ 999.99

看起来decimal和float十分相似,下来我们来看看两者有什么不同

字符串类型

字符串类型有char和varchar

//char语法
char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255

//varchar语法
varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节

 

char和varchar两个字符串类型比较

那如何选用使用哪个呢?请遵循以下规则

  • 如果数据确定长度都一样,就使用定长(char),比如:身份证,手机号,md5
  • 如果数据长度有变化,就使用变长(varchar), 比如:名字,地址,但是你要保证最长的能存的进去。
  • 定长的磁盘空间比较浪费,但是效率高。
  • 变长的磁盘空间比较节省,但是效率低。
  • 定长的意义是,直接开辟好对应的空间
  • 变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少。

时间类型

常用的日期有如下三个:

  • date :日期 'yyyy-mm-dd' ,占用三字节
  • datetime 时间日期格式 'yyyy-mm-dd HH:ii:ss' 表示范围从 1000 到 9999 ,占用八字节
  • timestamp :时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和 datetime 完全一致,占用四字节

我们可以看到,时间戳会自动生成当前时间。接下来我们修改一下t1的时间。

 enum和set

//两者语法
enum('选项1','选项2','选项3',...);
set('选项值1','选项值2','选项值3', ...);

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学c的长弓狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值