前言
一、tinyint
范围:-128-----127
在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。可以通过UNSIGNED来说明某个字段是无符号的。如果我们向mysqlt特定的类型中插入不合法的数据,Mysq一般会直接拦截,不让我们操作。能插入mysql的数据一定是插入的时候是合法。所以数据类型也是一种约束。
二、bit
语法:bit[(M)] : 位字段类型。M表示每个值的位数,范围从1到64。如果M被忽略,默认为1
因为bit为1.值为1或者0,插入3就出错了。
需要注意:bit字段在显示时,是按照ASCII码对应的值显示。我们修改bit为8,插入‘A’,ASCII为65.
三.小数类型
float
语法:float[(m, d)] [unsigned] : M指定显示长度,d指定小数位数,占用空间4个字节
小数:float(4,2)表示的范围是-99.99 ~ 99.99,MySQL在保存值时会进行四舍五入。
如果我们插入数的数据范围不符合,就会拦截操作(error),如果我们精度比指定的更大,MySQL会四舍五入。前提是,在合法的范围内
不合法(99变为100)
如果我们使用无符号。float(4,2) unsigned,范围(0~99.99)它也遵守四舍五入
不过float存在精度丢失的问题,decimal可以更加精确,想要更精确度,可以考虑用这个
四.字符串类型
char:
char(L),它的长度最大到255.注意不是字节,char(2)比如插入‘中国’,长度就是2,超过2就报错。
varchar:
varchar(L): 可变长度字符串,L表示字符长度,最大长度65535个字节。
关于varchar(len),len到底是多大,这个len值,和表的编码密切相关:
varchar长度可以指定为0到65535之间的值,但是有1 - 3 个字节用于记录数据大小,所以说有效字
节数是65532。
当我们的表的编码是utf8时,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占用3个字节],如果编码是gbk,varchar(n)的参数n最大是65532/2=32766(因为gbk中,一个字符占用2字节)。
日期和实际类
date:年月日
datetime:年月日和时分秒
datestamp:时间戳,如果我们更改了,表,它也会刷新。
nume和set
nume:单选,插入可通过整数下标或者单选内容
set:多选,插入用位图的思想或者多选内容:有3个选择,000,如果选择插入3个,111---->7.
也可以直接插入选择项
集合查询使用find_ in_ set函数
find_in_set(sub,str_list) :如果 sub 在 str_list 中,则返回下标;如果不在,返回0;
str_list 用逗号分隔的字符串。它可帮我们找出所有含有的sub.