一、数值类型
以上表格整理了用来表示数值类型的数据类型,其中,接下来将介绍和展示其中几个类型的使用和各种细节
1.tinyint
越界测试:建立一个包含tinyint类型的表格,插入各中数据去查看结果,并且尝试插入边界数据和越界数据去观察现象
tinyint属于整形类型的其中一个,还有smallint、int、bigint,同样和tinyint的使用方法是一样的,就是空间字节大小不一样,用于各种数据大小不同的场景。
2.bit(N)
基本用法:bit后面加括号,里面可以指定大小比特位的空间大小,若是写,则默认为1
在字段显示时,按照ACSLL码的规则显示
3.float(m,d)
基本使用:m表示有效数字长度,即包括小数位和实数位的数字个数,d表示精确到小数点后几位
小数部分若是给的精度较小,则会自动补0,若是给的精度较大,则会自动采取四舍五入的策略
通常我们可以通过计算m-d,得到实数位置的范围可以是(m-d)位数,但不绝对,有可能出现边界情况,四舍五入后自动进位导致数据超出
测试:
同理,double和decimal的使用方法是一样的,不过精度不同,根据具体情况选择
二、字符串类型
1.char(size)
基本使用:可以指定size大小的字符,注意,这里的字符无论是字母还是汉字,都按字符个数数,而不是字节
2.varchar(size)
用法上和char相同,区别在于varchar的空间使用策略和char不同,char是固定长度大小,开辟多少空间则认为使用了多少空间,而varchar开辟的空间,可以看作为是最大使用上限,而不是实际使用的空间,在需要使用时,才会被真正使用
三、日期和时间类型
1.date
date:日期 'yyyy-mm-dd' ,占用三字节
2.datetime
datetime:时间日期格式 'yyyy-mm-dd HH:ii:ss' 表示范围从1000 到 9999 ,占用八字节
3.timestamp
timestamp:时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss 格式和datetime 完全一致,占用四字节,每次修改或更新数据时,会自动更新到当前时间
四、枚举类型
1.基本使用
enum('选项一','选项二','选项三','选项四',...)
set('选项一','选项二','选项三','选项四',...)
2.比较enum和set的不同
1.enum是多选一,而set是多选多
2.enum在插入时,可以采用下标的方式插入(从1开始),set在插入时,插入的数字含义不是下标,而是根据比特位中对应位置的0或1去表示(位图)
3.set可以采用逗号的方式,一次性多次插入
4.为了方便筛选,一般有两种方式,一种是严格筛选:
select * from table_name where 字段名称='选项';
另一种则是包含某个选项的所有情况,此时需要用到接口find_in_set
select * from table_name where find_in_set('选项(只能单个)',字段名称);
若是想多个的情况,可以用and去链接(and相当于c里面的&&)
例如:在名为table_name的表中,选出hobby包含篮球和登山的信息
select * from table_name where find_in_set('篮球',hobby) and find_in_set('登山',hobby);
总结
本篇总结了mysql中的各种常见的数据类型和基本使用方法