mysql数据类型

在这里插入图片描述

类型及约束

在mysql中,如果我们插入的数据超过了范围或类型不符合,则mysql会报错,这代表在mysql中,类型本身就是一种约束

数值类型

在这里插入图片描述
前5个是整形家族,后3个是浮点数家族,bit代表比特位,范围是(1 – 64)
1).整形。
记住它们的范围,我们可以使用unsigned来标识其是无符号的数。
在这里插入图片描述
在这里插入图片描述
对于整形类型中,每个类型后面()中的数字代表,该类型的最大的十进制占位占几位,比如,有符号整形,最大的十进制占位就是(符号 + 整形最大值的十进制位数(10)),其他整形类型也是如此。
在这里插入图片描述

2).比特
bit(size),size是bit类型的长度,单位是字节,一个比特位只能赋予0/1,这是类型的约束。
在这里插入图片描述
比特类型默认显示方式是按照ASCII显示的。
在这里插入图片描述
我们可以让它们以16进制显示出来。
在这里插入图片描述
3),浮点类型
float/double/decimal(m, n),m代表显示的数字总个数,n代表小数部分的精度。
它们分别是4字节,8字节,8字节,而decimal比double精度更高。
精度充足
在这里插入图片描述
不足用0补齐
在这里插入图片描述
四舍五入机制
在这里插入图片描述
要注意四舍五入机制可能会进位到整数位,这可能导致数字总个数越界。
在这里插入图片描述
在这里插入图片描述

浮点数也可以设置位无符号
有符号的浮点数范围是[ -nums ----- nums],那么无符号的浮点数范围直接去掉所有的负数[0 ---- nums]。

字符串类型


我将枚举和set类型放到字符串类型中,因为这两者只能枚举字符串,不能枚举其他类型。
1).char和varchar
char和varchar都代表字符串类型,char类型开辟的范围是(0 — 255)个字符(注意:在默认的UTF8编码下,一个字符占3个字节!!)。
而varchar类型开辟的范围是(0 — 65535)个字节,同时其需要维护一个1-3字节的空间来维护当前的数据大小,所有在UTF8下,它的范围应该是(0 — 21844)。
范围代表的是能够插入的数据的范围
所有数据库中可以插入如中文,等等其他语言,也和英文一样,占一个字符
varchar是可变字符串,在定义的时候,定义的长度是最大长度,如果插入的字符串小于该长度,则不会开辟最大长度,但会维护空间来计算插入的字符多少

2),enum和set
enum是枚举类型,只能枚举字符串,set是集合类型,只能设置字符串,且两者的枚举项不能相同,同时enum和set可以为空
在这里插入图片描述
enum类型,只能选择一项进行枚举,同时,每个枚举项都代表一个数组元素,元素下标从1开始
在这里插入图片描述
set类型,可以选择多项插入,同时每一项都可以看作一个比特位,比特位为1代表该项要插入,比特位为0代表该项不插入。
在这里插入图片描述

日期/时间类型

在这里插入图片描述
上述日期/时间类型最常用的是date,datetime,timestamp。
1).date
date类型插入的日期是按照YYYY-MM-DD格式插入的。
在这里插入图片描述
2).datetime
datetime是日期和时间,插入时按照YYYY-MM-DD hh:mm:ss
在这里插入图片描述
3).timestamp
返回时间戳,是按照YYYY-MM-DD hh:mm:ss的形式显示的。
时间戳不需要用户进行输入,在我们进行插入,更新等操作时,时间戳就会更新为最新的时间。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值