MySQL字段类型MySQL字段类型
MySQL⽀持多种类型,⼤致可以分为三类:数值、⽇期/时间和字符串(字符)类型。
数值类型
类型⼤
范围(有符号)范围(⽆符号)⽤途
TINYINT 1
(-128,127)(0,255)⼩整
数值
SMALLINT 2
(-32 768,32 767)(0,65 535)⼤整
数值
MEDIUMINT 3
(-8 388 608,8 388 607)(0,16 777 215)⼤整
数值
INT或INTEGER 4
(-2 147 483 648,2 147 483 647)(0,4 294 967 295)⼤整
数值
BIGINT 8
(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)
极⼤
整数
FLOAT 4
(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-
38,3.402 823 466 351 E+38)
0,(1.175 494 351 E-38,3.402 823
466 E+38)
单精
浮点
数值
DOUBLE 8
(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,
(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)
0,(2.225 073 858 507 201 4 E-
308,1.797 693 134 862 315 7
E+308)
双精
浮点
数值
字符串
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何⼯作以及如何在查询中使⽤这些类型。
char和varchar:
1.char(n) 若存⼊字符数⼩于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
2.char(n) 固定长度,char(4)不管是存⼊⼏个字符,都将占⽤4个字节,varchar是存⼊的实际字符数+1个字节(n<=255)或2个字节
(n>255),所以varchar(4),存⼊3个字符将占⽤4个字节。
3.char类型的字符串检索速度要⽐varchar类型的快。
varchar和text:
1.varchar可指定n,text不能指定,内部存储varchar是存⼊的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节。
<类型不能有默认值。
3.varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作⽤。
类型⼤⼩⽤途
CHAR0-255字节定长字符串
VARCHAR0-65535 字节变长字符串
TINYBLOB0-255字节不超过 255 个字符的⼆进制字符串
TINYTEXT0-255字节短⽂本字符串
BLOB0-65 535字节⼆进制形式的长⽂本数据
TEXT0-65 535字节长⽂本数据
MEDIUMBLOB0-16 777 215字节⼆进制形式的中等长度⽂本数据
MEDIUMTEXT0-16 777 215字节中等长度⽂本数据
LONGBLOB0-4 294 967 295字节⼆进制形式的极⼤⽂本数据
float几个字节多少位LONGTEXT0-4 294 967 295字节极⼤⽂本数据
类型⼤⼩⽤途
⽇期时间类型
表⽰时间值的⽇期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
类型⼤⼩范围格式⽤途DATE3字节1000-01-01/9999-12-31YYYY-MM-DD⽇期值
TIME3字节'-838:59:59'/'838:59:59'HH:MM:SS时间值或持续时间YEAR1字节1901/2155YYYY年份值DATETIME8字节1000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合⽇期和时间值
TIMESTAMP4字节1970-01-01 00:00:00/2038
结束时间是第 2147483647 秒,北京时间 2038-1-19
11:14:07,格林尼治时间 2038年1⽉19⽇凌晨
03:14:07
YYYYMMDD HHMMSS混合⽇期和时间值,时间戳
⼆进制
布尔:bit
bit 表⽰1个⼆进制的位
bit(8) 表⽰8个⼆进制的位
性别可以定义为0,1, ⽽不使⽤male或female字符串数据逻辑删除
某辆车在车库中停放的状态
所有基于两种状态的数据都可以使⽤0,1来存储.