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