1.整数类型
| 整数类型 | 大小 | 表述范围(无符号) | 作用 |
|---|---|---|---|
| TINYINT | 1字节 | (0,255) | 小整数值 |
| SMALLINT | 2字节 | (0,65535) | 大整数值 |
| MEDIUMINT | 3字节 | (0,16777215) | 大整数值 |
| INT/INTEGER | 4字节 | (0,4294967295) | 大整数值 |
| BIGINT | 8字节 | (0,18446744073709551615) | 极大整数值 |
MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。
显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。
主键自增:不使用序列,通过auto_increment,要求是整数类型。
2.浮点数类型
| 浮点数类型 | 大小 | 作用 |
|---|---|---|
| FLOAT | 4字节 | 单精度浮点数 |
| DOUBLE | 8字节 | 双精度浮点数值 |
需要注意的是与整数类型不一样的是,浮点数类型的宽度不会自动扩充。
score double(4,1)–小数部分为1位,总宽度4位,并且不会自动扩充。
3.字符串类型
| 字符串类型 | 大小 | 描述 |
|---|---|---|
| CHAR | 0~255字符 | 允许长度0~M个字符的定长字符串 |
| VARCHAR(M) | 0~65535字符 | 允许长度0~M个字符的定长字符串 |
| BLOL | 二进制长文本数据 | |
| TEXT | 长文本数据 |
CHAR和VARCHAR类型相似,均用于存于较短的字符串,主要的不同之处在于存储方式。CHAR类型长度固定,VARCHAR类型的长度可变。
因为VARCHAR类型能够根据字符串的实际长度来动态改变所占字节的大小,所以在不能明确该字段具体需要多少字符时推荐使用VARCHAR类型,这样可以大大地节约磁盘空间、提高存储效率。
CHAR和VARCHAR表示的是字符的个数,而不是字节的个数
4.日期时间类型
| 类型 | 格式 |
|---|---|
| TIME | ‘HH:MM:SS’ |
| DATE | ‘YYYY-MM=DD’ |
| YEAR | YYYY |
| DATETIME | ‘YYYY-MM-DD-HH:MM:SS’ |
| TIMESTAMP | ‘YYYY-MM-DD HH:MM:SS’ |
TIMESTEMP类型的数据指定方式与DATETIME基本相同,两者的不同之处在于以下几点:
(1) 数据的取值范围不同,TIMESTEMP类型的取值范围更小。
(2) 如果我们对TIMESTAMP类型的字段没有明确赋值,或是被赋与了NULL值,MySQL会自动将该字段赋值为系统当前的日期与时间。
(3) TIMESTEMP类型还可以使用CURRENT_TIMESTAMP来获取系统当前时间。
(4) TIMESTEMP类型有一个很大的特点,那就是时间是根据时区来显示的。例如,在东八区插入的TIMESTEMP数据为2017-07-11 16:43:25,在东七区显示时,时间部分就变成了15:43:25,在东九区显示时,时间部分就变成了17:43:25。
