数值型:
整型
小数:
定点数
浮点数
字符型:
较短的文本: CHAR 、 VARCHAR
较长的文本:text 、 BLOB(较长的二进制数据)
日期型
所选择的类型越简单越好
1、整型(int)
TINYINT | SMALLINT | MEDIUMINT | INT/INTEGER | BIGINT |
---|
1 | 2 | 3 | 4 | 8 |
特点:
1、如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加 UNSIGNED 关键字
2、如果插入的数值超出了整型的范围,会报out of range异常,并且插入的是临界值
3、如果不设置长度,会有默认的长度
4、长度代表的意思为显示的最大宽度,如果不够会用0在左边填充,但必须搭配 ZEROFILL 来使用
使用了 ZEROFILL 会自动默认成无符号
2、浮点型和定点型(float)
分类:
1、浮点型
FLOAT(M,D)
DOUBLE(M,D)
2、定点型
DEC(M,D)
DECIMAL(M,D)
特点:
1)M,D
M:整数部位+小数部位
D:小数部位
如果超过范围,则插入临界值
2)M和D都可以省略
如果是 DECIMAL ,则M默认为10,D默认为0
如果是float和double,则会根据插入数值的精读来决定精度
3)定点型的精确度较高,如果要求插入数值的精读较高如货币运算等则考虑使用
3、字符型(varchar)
较短的文本: CHAR VARCHAR 其他: BINARY 和 VARBINARY 用于保存较短的二进制
ENUM 枚举(填写男女时可用) 只可插入一个
SET 集合 可插入多个
较长的文本: TEXT BLOB(较大的二进制)
写法 | M的意思 | 特点 | 空间的耗费 | 效率 |
---|
CHAR(M) | 最大的字符数 | 固定长度的字符 | 比较耗费 | 高 |
VARCHAR(M) | 最大的字符数 | 可变长度的字符 | 比较节省 | 低 |
4、日期型(timestamp)
分类:
DATE 只保存日期
TIME 只保存时间
YEAR 只保存年
DATETIME 保存日期+时间
TIMESTAMP 保存日期+时间
关键字 | 字节 | 范围 | 时区等的影响 |
---|
DATETIME | 8 | 1000-9999 | 不受 |
TIMESTAMP | 4 | 1970-2038 | 受 |