数据库常用数据类型

数值类型

1.位类型

bit(M)

M指定位数,默认为1。M范围是1到64,所以存储的数据范围是0到2^64-1.

2.整型

tinyint 一个字节,对应Java中的Byte

smallint 两个字节,对应Java中的Short

int四个字节,对应Java中的Integer

bigint 八个字节,对应Java中的long类型

3.浮点型

float(M,D)  四个字节,M指定长度,D指定小数位数

double(M,D) 八个字节

4.定点型

decimal(M,D) M/D的最大值加2个字节,M指定长度,D指定小数位数

与浮点型相比,decimal的精度更高。但运算速度变慢,占用空间更多

numeric和decimal一样

注意

数值类型可以指定为无符号的,表示不取负数。

对于整型,有符号的范围是-2^(类型字节数*8-1)到2^(类型字节数*8-1)-1;无符号的范围是0~2^(类型字节数*8)-1,因为一个字节是8个比特位

注意,尽量不使用unsigned,因为如果由于某些操作(比如小数减大数)导致出现负数后,系统无法显示负数,就会变成很大很大的正整数。

字符串类型

1.varchar(size)

范围是0~65535字节

varchar是变长字符串,size表示该类型里最多存几个字符(注意不是字节)

注意:当我们指定size为10,不是说当下立即分配是个字符的空间,而是先分配一个比较小的空间,如果不够再自动扩容

2.text

范围是0~65535个字节,一般用于存放长文本数据,或者是在不知道字符串长度范围无法指定size大小是使用

3.mediumtext

范围是0~16777215字节,中等长度文本数据

4.blob

范围是0~65535字节,存放二进制形式的长文本数据,对应java中的byte[ ]。

日期类型

1.datetime

八字节

范围是从1000年到9999年,不会进行时区的检索以及转换

2.timestamp

四字节。范围是从1970年到2038年,自动检索当前时区并转换

由于它只能表示到2038年,所以现在不建议再用timestamp,而一般用datetime

你可能感兴趣的:(数据库,数据类型)