MYSQL比较特殊的数据类型

存储emoji类型的数据:

 需要将字符串编码改成utf8mb4,就可以使用字符类型进行存储

存储图片类型的数据:

图片类型再计算机中保存的格式是二进制,可以使用相应的二进制存储类型进行数据保存,比如

bit,binary,varbinary,blob,tinyblob,mediublob,longblob。

MYSQL比较特殊的数据类型_第1张图片

 bit:

bit(m):m取值范围是1-64,如果不写m那就相当于bit(1),引导符有0b,b,B,但是没有0B。

再bit中val代表的是01。一般是用来保存布尔值和状态存储的。

binary与varbinary:

binary与char类似不同的是包含二进制字符串,长度固定,比如binary(3),而你只保存一个a,它会自动在右端补齐。

varbinary与varchar相似,长度可变。

blob:

有四种blob:

tinyblob:最小的blob,保存的单位只有2的8次方-1

blob:保存的单位有2的16次方-1

mediumblob:保存的单位有2的24次方-1

logblob:保存的单位有2的31-1次方,或者4g。

数值乘除问题:

当两个数值平方再相除时,得到的值的数据类型是decimal,避免数据精度丢失

ENUM数据类型:

枚举数据类型,在创建表的时候使用。

比如:create  table a(

state enum('free','nofree','halffree') not null

)

在插入数据时只能插入枚举包含的数值,比如insert into talea values('free'),('nofree');

或者可以插入数值,代表第几个数据,比如 insert into tablea values(1),(2),(3)

当你插入的数据不是枚举的数据时,它会自动使用第一个数据作为数值插入。

也可以使用该列进行排序与查询。

每个枚举值均有一个索引值。

set数据类型:

使用方式:

建表或者修改表结构时使用:

create table set_table(

set1 set('free','nofree','halffree')

插入数据时可以一次插入多条:insert into set_table values('free,nofree'),('nofree');

插入数据时可以使用数值:insert into set_table values(1),(2),(3)这里1代表的是第一个数值,2代表的是第二个数值,3代表的是第一个和第二个数值

搜索:

select * from set_table where find_in_set('free',set1)>0

select * from set_table where set1 like 'fre%'

寻找第一个set成员:

select * from set_table where set1 & 1

准确寻找:

select * from set_table where set1='free,nofree'

TEXT:

作用文本描述。

有四种:tinytext是1字节,存储范围是255,例如:博文摘录,文章摘要等

text:64kb,一般用于描述正文。

mediumtext:16mb,用于存储相当大的文本文件

longtext:4G。

你可能感兴趣的:(mysql,数据库)