数值型
整型
| 整数类型 | 字节(有符号、无符号) |
|---|---|
| Tinyint | 1 |
| Smallint | 2 |
| Mediumint | 3 |
| Int、integer | 4 |
| Bigint | 8 |
特点:
#1、默认有符号类型—-t2 INT UNSIGNED
#2、如果超出范围,会报异常,并且插入临界值
#3、数据长度由类型决定,设置长度是显示长度—-t1 INT(7) ZEROFILL—-变成无符号类型
小数
| 浮点型 | 字节 | 范围 |
|---|---|---|
| float”(M,D)” | 4 | …. |
| double”(M,D)” | 8 | …. |
| 定点型 | ||
| DEC(M,D) DECIMAL(M,D) |
M+2 | 最大范围与double相同,给定decimal的有效取值范围由M和D |
特点:
#1、M:整数部位+小数部位
D:小数部位
如果超出范围,则插入临界值(999.99)
#2、M和D都可以省略
如果是float和double,则根据插入数值的精度来决定精度
如果是decimal,则默认(10,0);
#3、定点型精度相对较高,一般使用float,double
原则
选择类型越简单越好,能保存数值的类型越小越好
字符型
较短的文本
| 字符串类型 | 最多字符数 | 描述及存储需求 |
|---|---|---|
| char(M) | M(省略,默认为1) | 0~255之间的整数 |
| varchar(M) | M(不可以省略) | 0~65535之间的整数 |
| 位类型:bit(M) | 字节:1~8 | 范围:bit(1)~bit(8) |
|---|---|---|
| binary和varbinary | 类似于char和varchar,但他们包含二进制字符串而不包含非二进制字符串 | |
| 枚举:enum | 只插入插入枚举类型,忽略大小写 | |
| Set型 | 和Enum类型类似,里面可以保存0-64个成员。和Enum类型最大的区别是: SET类型一次可以选取多个成员,而Enum只能选一个,根据成员个数不同存储所占的字节也不同 |
- 成员数 字节数
1-8 1
9-16 2
17-24 3
25-32 4
33-64 8
特点;
#1、char消耗空间,效率高,varchar可变字符长度
较长的文本
- text
- blob(较大二进制)
日期类型
| 日期与时间 | 字节 | 最小值 | 最大值 |
|---|---|---|---|
| 日期:date | 4 | 1000-01-01 | 9999-12-31 |
| datetime | 8 | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 |
| timestamp | 4 | 1970-01-01 08:00:01 | 2038年的某个时刻 |
| 时间;time | 3 | -838:59:59 | 838:59:59 |
| year | 1 | 1901 | 2155 |
特点:
#1、timestamp 受时区影响—-datetime不受时区影响
