一,数值类型
1.存储范围
整数类型 | 类型名称 | 存储空间 |
---|---|---|
tinyint | 非常小的整数 | 1个字节 |
smallint | 小整数 | 2个字节 |
mediumint | 中型大小的整数 | 3个字节 |
int | 一般大小的整数 | 4个字节 |
bigint | 很大的整数 | 5个字节 |
2.类型的数值范围
注意:
1.显示宽度和数据类型的取值范围的关系:整数类型的显示宽度和数据类型的取值范围没有关系。
2.int配合zerofill可以在前面添加0,如果我们设置的显示长度为6,而我们插入的数据是2那么保存到数据库中的数据将会是000002
3.无符号属性unsigned
4.设置为主键primary key
5.自增auto_increment
二,浮点类型
1.所需存储空间
浮点数类型 | 类型名称 | 存储空间 |
---|---|---|
float | 单精度浮点数 | 4个字节 |
double | 双精度浮点数 | 8个字节 |
2.数值范围
注意:
1.如果使用户指定的精度超出了浮点数的类型的精度,则MySQL会自动进行四舍五入的操作。
2.实例
create table t1(
->price float(5,2)
->price_a double(6,3)
)
3.定点数类型
定点数类型可以使用(M,D)的方式表示,M表示的是精度,是数据的总位数;D被称为标度,表示数据的小数部分所占的位数。定点数在MySQL中是按照字符串的形式存储的,精度比浮点型更加的精准。适合存储表示金额和其他精度较高的数据。超过精度的会按照四舍五入计算。
三,日期和时间类型
类型 | 显示格式 | 有效范围 | 占用空间(字节) |
---|---|---|---|
timestamp | 年-月-日 时:分:秒 | 1970-01-01 00:00:01 至 2037-12-31 23:59:59 | 4 |
datetime | 年-月-日 时:分:秒 | 1000-01-01 00:00:00 至 9999-12-31 23:59:59 | 8 |
date | 年-月-日 | 1000-01-01 至 9999-12-31 | 3 |
time | 时:分:秒 | -838:59:59 至 838:59:59 | 3 |
year | 年 | 1901 至 2155 | 1 |
四,文本字符串类型
字符串类型 | 字节 | 描述及存储需求 |
---|---|---|
CHAR(M) | M | M为0~255之间的整数 |
VARCHAR(M) | L | M为0~65536之间的整数 |
TINYBLOB | L | 允许长度0~255字节 |
BLOB | L | 允许长度0~65535字节 |
MEDUIMBLOB | L | 允许长度0~167772150字节 |
LONGBLOB | L | 允许长度0~4294967295 |
TINYTEXT | L | 允许长度0~255字节 |
TEXT | L | 允许长度0~65535字节 |
MEDIUMTEXT | L | 允许长度0~167772150字节 |
LONGTEXT | L | 允许长度0~4294967295字节 |
set | L | 0<=L<=64 |
enum | L | 1<=L<=65535 |
VARBINARY(M) | M | 允许长度0~M个字节的边长字节字符集 |
BINARY(M) | M | 允许长度0~M个字节的定长字节字符集 |
注意:
a、char的长度是固定的,char类型的字段长度会把尾部的空格去除。
b、varchar是一个可变长度的字符串,不会去除尾部的空格。
c、enum类型只允许选取单个值,不能一次选择多个值。
d、set的使用