MySQL字段类型

僤鯓⒐⒋嵵緔 提交于 2020-03-05 07:07:01

1 字段类型

字段类型分别为:数值类型、字符串类型、日期时间类型。

1.1 数值类型

数值类型分为整数类型和小数类型。整数类型为tinyint、smallint、mediumint、int、bigint。小数类型分为浮点型和定点型,有float、double、decimal。

1.1.1 tinyint

迷你整形,系统采用1个字节来保存。最大能表示的值为0-255(2^8 - 1)

1.1.2 smallint

小整形,系统采用2个字节来保存。最大能表示的值为0-65535(2^16 – 1)。

1.1.3 mediumint

中整形,系统采用3个字节来保存。最大能表示的值为2^24 – 1。

1.1.4 int

整形,系统采用4个字节来保存。最大能表示的值为2^32 – 1。

1.1.5 bigint

大整形,系统采用8个字节来保存。最大能表示的值为2^64 – 1。

1.1.6 float

float又称之为单精度类型,系统采用4个字节来保存。但是能表达的范围要比整形大的多,大概是10^38。单精度浮点,精确到大约为7位。

1.1.7 double

double又称之为双精度类型,系统采用8个字节来保存。表示的范围更大,大概是10^308。精度为大约15位。

1.1.8 decimal

decimal又称之为定点数,系统自动根据存储的数据来分配存储空间。大概9个数就会分配4个字节来存储,同时小数位和整数位是分开保存的。

decimal(M, D):M表示总长度,最大值不能超过65,D代表小数部分长度,最长不能超过30。

1.2 字符串类型

1.2.1 char

定长字符,指定长度之后,系统会分配指定的空间用于存储数据。

基本语法:char(L),L代表字符数(英文和中文一样),L为0-255。

1.2.2 varchar

变长字符,指定长度后,系统根据实际存储的数据来计算长度,分配合适的长度(数据没有超出长度)。

基本语法:varchar(L),L代表字符数,L的理论长度为0-65535。

因为varchar要记录数据长度,所以每个varchar数据产生后,系统都会在数据后面增加1-2个字节的额外开销,是用来保存数据所占用的空间长度。

 

char和varchar的区别:

char一定会使用指定的空间,而varchar是根据数据来定空间。

char的数据查询效率比varchar高。varchar是需要通过后面的记录数来计算的。

1.2.3 text

普通的字符文本。

在选择字符存储的时候,如果数据超过255个字符,那么一定选择text存储。

在选择对应的存储文本的时候,不用刻意去选择text类型,系统会自动根据存储的数据长度来选择合适的文本类型。

1.2.4 enum

枚举类型。

语法:enum(数据值1,数据值2…)

空间:如果数据值列表在255个以内,那么一个字节就够,如果超过255但是小于65535,那么系统采用两个字节保存。

1.2.5 set

集合:是一种将多个数据选项可以同时保存的数据类型,本质是将指定的项按照对应的二进制位来进行控制:1表示该选项被选中,0表示该选项没有被选中。

语法:set(‘值1’,’值2’,’值3’…)

系统为set提供了多个字节进行保存,但是系统会自动计算来选择具体的存储单元

1个字节:set只能有8个选项

2个字节:set只能有16个选项

3个字节:set只能表示24个选项

8个字节:set可以表示64个选项

Set和enum一样,最终存储到数据字段中的依然是数字而不是真实的字符串

1.3 日期时间类型

1.3.1 date

日期类型,系统采用3个字节来保存,对应的格式为YYYY-mm-dd,能表示的范围是1000-01-01到9999-12-12。初始值为0000-00-00

1.3.2 time

时间类型,能够表示某个指定的时间,系统采用3个字节来保存。对应的格式为HH:ii:ss,但是MysQL中time能表示的范围要大的多,能表示-838:59:59-838:59:59。用处是描述时间段。

1.3.3 datetime

日期时间类型,就是将前面的date和time合并起来,表示的时间,使用8个字节来保存。

格式为:YYYY-mm-dd HH:ii:ss,能表示的区间为1000-01-01 00:00:00到9999-12-12 23:59:59,其值可以为0值:0000-00-00 00:00:00

1.3.4 timestamp

时间戳类型,表示从格林威治时间开始。

格式为:YYYY-mm-dd HH:ii:ss。其值表示的区间为:1970-01-01 00:00:00 到 2038-01-19 03:14:07

1.3.5 year

年类型,采用1个字节来保存。能表示1900-2155。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!