# 精确度不同float、double、decimalfloat(x,y)double(x,y)decimal(x,y)[推荐]# 总共 x 位,其中小数 y 位
设计表注意:
1.表结构中的数据类型
2.该表上线之后可能产生多少数据量
字符串类型
char、varcharchar(x)--> 最多存储 x 位,不足 x 位空格补齐 # MySQL 的底层机制会在存储数据时用空格补齐位数,但在读取时会自动剔除空格# 想要显示是否添加空格需要现更改 MySQL 的模式 -- set global sql model ='strict_trans_tables, pad_char_to_full_length';varchar(x)--> 最多存储 x 位,有几位存几位[推荐]"""
varchar 原理相当于 Python 中的粘包现象,Python 中可以通过 pack 函数对数据进行打包,并未其添加报头,在使用 unpack 解包时,先取出报头,在根据报头信息解包
"""# 除确定长度固定不变的数据使用 char以外,其余使用 varchar# varchar 可以节省空间,但查询速度闭 char 慢
日期类型
datetime-- 年月日、时分秒time-- 时分秒date-- 年月日year-- 年份
枚举类型
enumcreatetable<表名>(
id int,
gender enum('male','female','other'));insertinto<表名>values(1,'egon');# 报错insertinto<表名>values(1.'male');# 类似于单选题,只能在给定的选项中选择其中一个
集合类型
createtable<表名>(
id int,
hobby set('set','music','lm'));insertinto<表名>values(1,'egon');insertinto<表名>values(1,'read');insertinto<表名>values(1,'read,lm');insertinto<表名>values(1,'read,egon');# 集合类似于多选题,在给定的选项中可以选择多个