1. 数据库的数据类型
1.1、整数:
int bit
1.2、小数
Decimal
1.3、字符串:
char(固定长度),char(4) ’as’-------’as ‘
Varchar(可变长度字符串),varchar(4)----’as’---’as
text(大文本存储)字符>4000
1.4、枚举类型
enum
1.5、日期:
date
time
Datetime
1.6、数据类型的选择
1、整数和浮点数
如果不需要小数部分,则使用整数来保存数据,并且根据整数的大小,来选择合适的整数类型,如果需要小数部分,则使用浮点数类型,浮点数类型中,有float和double,如果需要精度高一点,则选择double。根据自己的需求来决定选什么。
2、浮点数和定点数
浮点数FLOAT、DOUBLE相对应定点数DECIMAL的优势在于:在长度一定的情况下,浮点数能表示更大的数据范围,但是浮点数容易产生误差,因此在精度比较高时,建议使用DECIMAL,比如货币这一类东西,就用DECIMAL比较合理,注意浮点数在进行加减运算时也容易出现问题。如果进行数值比较,也建议用DECIMAL
3、日期与时间类型
可以看上面详解时的图,根据各种格式,选择自己所需要的数据类型,注意TIMESTAMP和DATETIME的区别,一个是跟时区有关,一个无关,其他没什么大的区别。
4、CHAR与VARCHAR之间的特点与选择
区别:
CHAR是固定长度字符、VARCHAR是可变长度字符。CHAR会自动删除插入数据的尾部空格,VARCHAR不会。
CHAR是固定长度,处理速度比VARCHAR更快,缺点很明显,浪费存储空间,所以对存储不大,但在速度上有要求的可以使用CHAR类型,反之用VARCHAR。
5、ENUM和SET
ENUM只能取单值,也就是从枚举类型中选取其中一个值,但是SET可以取多值,
ENUM最多能存放65535个成员,SET只能65个
空字符串也能在SET中存储,要存储一个人的喜爱时,最好使用SET类型,其实最重要的是看具体的情况在选取最为合适的把
6、BLOB和TEXT
BLOB是二进制字符串,TEXT是非二进制字符串,两者均可存放大容量的信息,BLOB主要存储图片、音频信息,而TEXT只能存储纯文本文件。分清楚两者的用途
7、BINARY和VARBINARY
这两个的区别和CHAR与VARCHAR的区别差不多,BINARY是固定长度、VARBINARY是可变程度,这两个的作用就是为了区分大小写的,注意这两个是字节字符串。
2. 数据库约束
2.1、主键 primary key
物理上存储的顺序
2.2、非空字段的设置 not null
在当前字段不允许出现空值
2.3、唯一 unique
当前字段不允许重复
2.4、默认值 default
在当前的字段存在默认值,如果不写,就用默认值,如果写,就用写的数