mysql-数据库表的设计

mysql的数据类型

String:
char:长度固定,固定空间大小,可以有默认值
varchar:长度不固定,存储效率没有char那么高,可以有默认值,存储的时候还有会单独的空间存储制定长度的大小(1-8000)
text:不能有默认值,一般指量比较大的,(凡是遇到text类型的一定要与主表分离出来)

char和varchar的区别:
1)char长度固定,适用于存储固定的值,如MD5嘛,char比varchar的存储效率更高
2)varchar长度不固定,存储效率没有char高,再存储后还会开辟一个单独的存储空间

报错;ERRData too long for column 创建的时候超出长度
int类型:
bigint:8个字节
int:4个字节
smallint:2个字节
tinyint:1个字节

float:4个字节
double:8个字节
decimal(m,d):m加2个字节(一般用于精度较高的项目,不容易丢失精度)

报错:ERR Out of rang value

在用户量特别巨大的时候,可以设置数据类型 unsigned取反,这样就不会有负数而且范围也会扩大

时间类型:
时间类型没什么好说的,有些公司也用String类型的在使用,所以这里之说几个简单的额

	1)date:0000-00-00
	2)time:00:00:00
	3)datetime:0000-00-00 00:00:00
	4)timestamo:0000-00-00 00:00:00

不推荐存在数据库中的数据类型

二进制类型:比如多媒体的图片,音频,视频这些
超大文本类型text,longtext

推荐存的地址是信息存在某一个文件中

不推荐数据默认为null:对于数据库来说,null会有一个特殊的字符来替代nulll,特别是使用索引的时候,也会作为一个头标记存在数据库,还会影响sql查询,影响误差,如果硬要使用null,建议自己使用一个特殊的字符来替代

你可能感兴趣的:(mySQL)