MySQL的数据类型总结

虾米哥 阅读:966 2021-05-14 10:06:34 评论:0

1、数据类型
在这里插入图片描述
在这里插入图片描述
2、数值类型
在这里插入图片描述
(1)tinyint类型
数值越界测试:
在这里插入图片描述
说明:
1)在MySQL中,整型可以指定有符号或者无符号,默认是有符号的。
2)可以通过UNSIGNED来说明某个字段是无符号的。
3)无符号案例:
在这里插入图片描述
(2)bit类型
1)基本语法:bit[(M)]
2)释:位字段类型。M表示每个值得位数,范围从1到64,如果M被忽略,默认为1。
3)例:
在这里插入图片描述
4)注意事项:
A、bit字段在显示时,是按照ASCII码对应的值显示。
在这里插入图片描述
B、如果只存放0和1,定义bit(1),可以节省空间。
在这里插入图片描述
(3)float
1)语法:float[(m, d)] [unsigned];
2)释:M指定显示长度,d指定小数位数,占用空间4个字节。
3)案例:
A、float(4, 2)表示的范围是-99.99~99.99,MySQL在保存值时会进行四舍五入。
在这里插入图片描述
B、如果定义的是float(4, 2) unsigned,指定为无符号的数,范围是0~99.99。
在这里插入图片描述
(4)decimal
1)语法:decimal(m, d) [unsigned];
2)释:定点数m指定长度,d表示小数点的位数。
A、decimal(5, 2)表示的范围是-999.99~999.99;
B、decimal(5, 2)表示的范围是0~999.99。
3)float和decimal表示的精度不一样,decimal的精度比float的精度高。decimal整数最大位数m为65,支持小数最大位数d是30。如果d被省略,默认为0;如果m被省略,默认是10。
在这里插入图片描述
3、字符串类型
(1)char类型
1)语法:
char(L),固定长度字符串,L是可以存储的长度,单位为字符,最大长度值不能超过255。char(2)表示可以存放两个字符,可以是字母或汉字,但是不能超过2个。
2)案例:
在这里插入图片描述
(2)varchar类型
1)语法:
varchar(L):可变长度字符串,L表示字符串长度,最大长度65535个字节。
2)案例:
在这里插入图片描述
3)说明:
varchar的长度可以指定为0到65535之间的值,但是有1-3个字节用于记录数据的大小,所以说有效字节数是65532。当表的编码是utf8时,一个字符占用3个字节,所以varchar(n)的参数n最大值是65532/3=21844;如果编码是gbk,varchar(n)的参数n最大值是65532/2=32766,因为gbk中,一个字节占用2个字节。
在这里插入图片描述
(3)char和varchar存储空间比较
在这里插入图片描述
如何选择定长或变长字符串?
1)如果数据确定长度都一样,就使用定长(char),比如:身份证、手机号、md5。定长占用的磁盘空间比较浪费,但是效率高。
2)如果数据长度有变化,就使用变长(varchar),比如:名字、地址,但是要保证最长的数据能存进去。变长占用的磁盘空间比较节省,但是效率低。

4、日期和时间类型
(1)常用的日期类型:
1)datetime:时间日期格式’yyyy-mm-dd HH:ii:ss’,表示范围从1000到9999,占用8个字节。
2)date:日期’yyyy-mm-dd’,占用3个字节。
3)timestamp:时间戳,从1970年开始的yyyy-mm-dd HH:ii:ss格式和datetime完全一样,但是占用4个字节。
(2)案例:
在这里插入图片描述
释:添加数据时,时间戳自动补上当前时间。更新数据,时间戳会自动更新当前时间。

5、enum和set类型
(1)enum
1)含义:枚举,其实就是“单选”类型,对应界面或表单中的“单选项”的数据值。
2)语法:enum(‘选项1’, ‘选项2’, ‘选项3’, …);
3)释义:该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值。而且,处于效率考虑,这些值实际存储的是“数字”,因为这些选项的选项值依次对应如下数字:1,2,3,…,最多有65535个,当我们添加枚举值时,可添加对应的数字编号。
(2)set
1)含义:set就是“多选”类型,对应于界面或表单的“多选项”的数据值。
2)语法:set(‘选项值1’, ‘选项值2’, ‘选项值3’, …);
3)释义:该设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中的多个值。而且,出于效率考虑,实际存储的是“数字”,因为这些选项的选项值依次对应如下数字:1,2,4,8,16,32,…,最大值为64,即2的n次方。
(3)案例:
1)有一个调查表votes,需要调查人的喜好,比如:排球、乒乓球、羽毛球、游泳、跑步。注意:插入多选的值,中间不能有空格;查询多选的所有数据需要用到find_in_set函数。
在这里插入图片描述
2)查找爱好排球的所有人
在这里插入图片描述


声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

我的关注

全民解析

搜索
关注我们