Mysql 数据类型
一:数值类型
我们设置的int后面的长度只是约束了显示宽度
所以我们输入的数字的长度可以是范围内任意的数字而不必担心宽度的设置
但是如果我们放入了超出范围的数字,那么只能写入当前范围内能描述的最大值
float(一共m位,小数部分占n位) 保留n位小数,并且四舍五入保留 例 float(7,2),一共7位数,小数部分占2位,整数部分占5位 double 比float更精准(255,30) decimal 超级精准,默认为整数,(65,30)
二:日期和时间类型
date 年月日 可以为空 没有默认值 表示时间范围长
datetime 年月日时分秒 可以为空 没有默认值 表示时间范围长
timestamp 年月日时分秒 不能为空 默认插入当前时间 并且随update语句更新字段 表示时间范围短
例:
insert into 表名 values('2018-12-17')
insert into 表名 values('2018-12-17 11:56:20')
insert into 表名 values('20181217115620')
insert into 表名 values(20181217115620)
三:字符串类型
char(12) 定长, 存在空间浪费问题, 但读取速度快 适用长度比较固定的内容 : 身份证号 手机号码 银行卡号 用户名 密码
varchar(225) 不定长, 不浪费空间, 但速度慢 评论
四:enum 和 set
enum 中文名称叫枚举类型,它的值范围需要在创建表时通过枚举方式显示。enum只允许从 (值集合) 中选取单个值,而不能一次取多个值。
set 和 enum 非常相似,也是一个字符串对象,里面可以包含0-64个成员。根据成员的不同,存储上也有所不同。
set类型可以允许值集合中任意选择1或多个元素进行组合。对超出范围的内容将不允许注入,而对重复的值将进行自动去重。
enum 单选 选错不生效 不在enum单选中的不写入表
set 多选 选错不写入 不在set中的不写入表 自动去重