【MYSQL】数据类型

TINYINT

数值类型:
TINYINT:1字节
SMALLINT:2字节
MEDIUINT:3字节
INT:4字节
BIGINT:8字节

数据范围:默认有符号,-128~127 超出这个范围的数据不会被存入表内。若要设置无符号,在属性后面加上unsigned。

由于这种特性,数据类型本身就是一种约束!

BIT

BIT(M)
可以指定 M 位数,M最大是64.

位类型显示的时候按照ASCII码值的方式,可能显示不出来,可以转成十进制来查看.

FLOAT

语法:

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

其中,小数部分必须是d位!若超过d位,则采取四舍五入的方式存取数据(在合法范围内 ).

float在数据过大的时候,有一些明显精度损失.

DECIMAL

decimal 和 float 很像,但表示的精度不同,decimal 精度的准确性要比float更好.使用浮点数的时候,若希望有较高精度,建议使用decimal

CHAR

语法:
char(L) : 固定长度L的字符串,L最大为255,单位是字符.

char类型的字符,和语言内的字符概念不一样,mysql中的字符就是一种符号,一个汉字也是一个字符.

VARCHAR

语法:

varchar(L) : 变长的字符串.最多存65535个字节,其中有1~3个字节来记录数据大小(动态调整)

在utf8编码中,L最大是21844;而在gbk编码下就是 (655-3)/2 .MySQL里一行也有字节大小上限!

日期和时间类型

date: 日期 'yyyy-mm-dd',占用三个字节

datetime : 时间日期格式 'yyyy-mm-dd HH:II:SS' 表示范围从1000~9999,占用8字节

timestamp : 时间戳(自动变化),占用四字节.

date:生日等不需要具体时间的日期.
datetime:主要是用于固定的时间.
timestamp:主要用于可能更新的时间.

ENUM 和 SET

语法:

enum('选项1','选项2','选项3',...);

set('选项1','选项2','选项3',...);

enum 只是提供了若干个选项的值,最终的单元格里只存储了选项中的一个,出于效率考虑,实际存储的是数字,这些选项的每个值对应1,2,3,4,…65535,所以当我们添加枚举的时候,也可以插入数字.

set 只是提供了若干个选项的值,最终的单元格里只存储了选项中的一个,出于效率考虑,实际存储的是数字,这些选项的每个值对应1,2,4,8,…64(位图,不是下标!!).

enum 和 set 不建议插入数字,不方便阅读.

集合查询

//函数
find_in_set(sub,str_list)

//说明
如果sub在sub_list中,返回下标;不在返回0.
sub是单个选项,str_list是用逗号分开的字符串.
若要筛选多个选项,可在查询语句使用and连接多个查询函数.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蓝色学者i

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

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

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

打赏作者

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

抵扣说明:

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

余额充值