第五站:MySQL常用典型数据类型
数值类型tinyint类型tinyint:默认有符号整数范围为-128~127tingint unsigned:无符号整数0~255;注意如果我们向MySQL中插入的值超过数据类型的定义时插入不成功。反之如果插入成功了则数据一定是合法的。所以mysql中数据类型一般而言也是一种约束。这保证了数据库中的数据是可预期数据在一定范围内完整的没有发生截断。bit类型bit[(M)]:位字段类型。M表示每个值的位数范围从1到64。如果M被忽略默认为1注意插入的值不能超出二进制M位所能表示出来的十进制数大小若插入的值位bit类型简单使用select*from 表名是不能查出bit类型那一列的元素的需要改成这样 以十六进制输出selecthex(属性列类型为bit的列名 from 表名;#HEX:以十六进制输出 以十进制输出select 属性列类型位bit的列名0from 表名;注意插入字母是按照对应的ascll码表上的数值插入的。小数类型float类型float[(m,d)][unsigned]:M指定显示长度d指定小数位数占用空间4个字节注意 MySQL在保存值时会进行四舍五入如上图所示当我们插入大的值时缺缺失一些位上的值。如上图出现了四舍五入我的MySQL中float的精度为6位数从前往后算后面多余的位数就进行四舍五入。decimal类型decimal(m,d)[unsigned]:定点数m指定长度d表示小数点的位数decimal整数最大位数m为65。支持小数最大位数d是30。如果d被省略默认为0.如果m被省略 默认是10注意 decimal和float很像但是有区别: float和decimal表示的精度不一样 如果希望小数的精度高推荐使用decimal。char类型char(L):固定长度字符串L是可以存储的长度单位为字符最大长度值可以为255注意 char(2) 表示可以存放两个字符可以是字母或汉字但是不能超过2个 最多只能是255char长度固定varchar有上限但是是用多少给你多少varchar类型varchar(L):可变长度字符串L表示字符长度最大长度65535个字节注意一个中文字符占3个字节小结varchar 总字节上限为65535其中会占用 1~3 字节存储数据长度实际可用数据字节为 65532。编码决定单字符占用字节进而限制 varchar (n) 最大 nutf81 字符占 3 字节最大 n 65532 ÷ 3 21844gbk1 字符占 2 字节最大 n 65532 ÷ 2 32766定长 char直接开辟对应固定长度存储空间预先分配固定空间磁盘空间浪费但查询效率更高变长 varchar不超过设定上限前提下实际占用多少就开辟多少空间用多少占多少节省磁盘空间但查询效率更低enum和setenum枚举“单选”类型 set集合“多选”类型集合类型在插入值时可以是对应值也可以是数值这个数字最终转为二进制形式从第一位开始对应于我所列举的集合中元素若对应位为1则插入该数查询时同理。数字0代表着空串占着位置。集合查询使用find_ in_ set函数使用find_in_set函数一次只能查一个元素在一个集合中若要查多个可使用sql语言中的and做链接。find_in_set(sub,str_list)如果sub 在str_list 中则返回下标 如果不在返回0str_list 用逗号分隔的字符串。