MySQL的数据类型主要包括哪些

发布时间:2020-05-08 11:49:00


作者:三月

栏目:数据库

下文主要给大家带来MySQL的数据类型主要包括哪些,希望这些文字能够带给大家实际用处,这也是我编辑MySQL的数据类型主要包括哪些这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。

1bit即为一位二进制,

1Byte=8bit,即为八位二进制。换算成十进制可表示的最大的数值个数为2^8个

一、数值型

整型数据类型存储大小

tinyint1Byte 即2^8个数字

smallint2Byte

mediumint3Byte

int4Byte

bigint8Byte

浮点数数据类型

float(m,d)单精度浮点数m:浮点型数值的长度,不包括符号。d:小数点后面数字的位数

double(m,d)双精度浮点数

二、字符型字符类型大小写定长/变长占用空间实占空间储存范围

char(n)不分区定长nn0--2^8-1Bytes  256字节

varchar(n)不区分变长n实际字符长度空间0--2^16-1Bytes  65535字节

binary(n)区分定长nn0-2^8-1bytes  256字节

varbinary(n)区分变长n实际字符长度空间0--2^16-1Bytes  65535字节

text不区分变长0-2^16-1bytes   65535字节

blob区分变长n实际字符长度空间0-2^16-1bytes   65535字节

char需要占用一个字节标记非空,所以最多254字节可用。

varchar超过255字节时需要2个字节标记字段长度,不超过255字节需要1个字节标记长度,非空标记占用一个字节。

char类型的字符串检索速度要比varchar类型的快。

varchar可指定n,text不能指定

text是实际字符数+2个字节。

text类型不能有默认值。

varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。

枚举型ENUM:就是列出某个字段的所有可能取得值。储存范围是0-65535bytes。如ENUM('F','M')。

三、日期时间型日期时间型储存范围占用空间

日期型DATE"1000-01-01→9999-12-31"3bytes

时间型TIME"-838:59:59"→"838:59:59"3bytes

日期时间型DATETIME"1000-01-01 00:00:00"→"9999-12-31 23:59:59"8bytes

时间戳型TIMESTAMP是1970-01-01 00:00:00到当前的秒数4bytes

年型YEAR(2)"00-99"1bytes

年型YEAR(4)"1901-2155"1bytes

四、字段修饰符

在声明字段的时候,可以为这些字段添加额外的修饰符,不同的数据类型,其修饰符也是不一样的,数据类型修饰符

整型unsigned:无符号,表示非负,定义在最前面

null

not null

default value :定义默认值

auto_incremnet:自动增长,定义的字段必须是整型、非空、非负、唯一键或主键

浮点数unsigned , null , not null , default value

字符型

char、varchar、textnull , not null , default value

character set 字符集(show character   set 可以查看支持的字符集,show variables like ‘%charac%’可以查看支持的默认字符集)

collation '排序规则':设定排序规则;

show collation可以查看mysql支持的所有排序规则。

字符型binary、varbinary、blobnull , not null , default value

日期型null , not null , default value

enum(枚举型)null , not null , default value