您好,欢迎访问本站博客!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧
  • 网站所有资源均来自网络,如有侵权请联系站长删除!

MySQL数据类型

mysql总结 lher 2018-09-05 55 次浏览 0个评论
网站分享代码

MySQL数据类型

整数类型

在mysql中整数类型拥有以下几个类型:

TINYINT、SAMLLINT、MEDIUMINT、INT、BIGINT,它们都具有属性UNSIGNED(让值不出现负数),我们可以为整数类型指定宽度,例如:INT(11),这样的指定对大多数的应用是没有实际意义的,他不会限制值的合法范围,只会影响显示字符的个数。

整数类型的各个取值范围如下图所示:


实数类型

在mysql中实数类型拥有以下几个类型:

FLOAT、DOUBLE、DECIMAL,其中DECIMAL可存储比BIGINT更大的整数;也可以用于存储精确的小数。

FLOAT和DOUBLE类型支持使用标准的浮点进行近似计算。DECIMAL的计算可以理解为对字符串进行处理。所以可以处理理更为精确的计算。

实数类型中的取值范围大小如下图所示:

image.png

字符串类型

image.png

MySQL中的字符串类型有VARCHAR、CHAR、TEXT、BLOB等类型,


char和varchar:

VARCHAR类型用于存储可变长度字符串,它比定长类型更节省空间。VARCHAR会使用1或者2个额外字节来记录字符串的长度,列长度小于255字节使用1个字节否则使用2个。在使用VARCHAR类型时。如果指定了长度。比如VARCHAR(10)。这个时候如果我们存储的长度大于了10,那么MYSQL只会截取前面10长度的字符。而且对于不同的版本。还会出现报错等情况。

CHAR存储室长的字符串。是根据定义的长度分配足够的空间。如果存储的字符串没有定义的长度。则会采用以空格的方式进行填充以方便进行比较。CHAR类型适合存储很短的字符串。。。或者所有值都接近一个相同的长度。CHAR如果超出了长度也会被截断。

char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。 

char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。 

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

varchar和text: 

1.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节。 

2.text类型不能有默认值。 

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



各数据类型及字节长度一览表:

数据类型字节长度范围或用法
Bit1无符号[0,255],有符号[-128,127],天缘博客备注:BIT和BOOL布尔型都占用1字节
TinyInt1整数[0,255]
SmallInt2无符号[0,65535],有符号[-32768,32767]
MediumInt3无符号[0,2^24-1],有符号[-2^23,2^23-1]]
Int4无符号[0,2^32-1],有符号[-2^31,2^31-1]
BigInt8无符号[0,2^64-1],有符号[-2^63 ,2^63 -1]
Float(M,D)4单精度浮点数。天缘博客提醒这里的D是精度,如果D<=24则为默认的FLOAT,如果D>24则会自动被转换为DOUBLE型。
Double(M,D)8 双精度浮点。
Decimal(M,D)M+1或M+2未打包的浮点数,用法类似于FLOAT和DOUBLE,天缘博客提醒您如果在ASP中使用到Decimal数据类型,直接从数据库读出来的Decimal可能需要先转换成Float或Double类型后再进行运算。
Date3以YYYY-MM-DD的格式显示,比如:2009-07-19
Date Time8以YYYY-MM-DD HH:MM:SS的格式显示,比如:2009-07-19 11:22:30
TimeStamp4以YYYY-MM-DD的格式显示,比如:2009-07-19
Time3以HH:MM:SS的格式显示。比如:11:22:30
Year1以YYYY的格式显示。比如:2009
Char(M)M定长字符串。
VarChar(M)M变长字符串,要求M<=255
Binary(M)M类似Char的二进制存储,特点是插入定长不足补0
VarBinary(M)M类似VarChar的变长二进制存储,特点是定长不补0
Tiny TextMax:255大小写不敏感
TextMax:64K大小写不敏感
Medium TextMax:16M大小写不敏感
Long TextMax:4G大小写不敏感
TinyBlobMax:255大小写敏感
BlobMax:64K大小写敏感
MediumBlobMax:16M大小写敏感
LongBlobMax:4G大小写敏感
Enum1或2最大可达65535个不同的枚举值
Set可达8最大可达64个不同的值
Geometry

Point

LineString

Polygon

MultiPoint

MultiLineString

MultiPolygon

GeometryCollection

    



已有 55 位网友参与,快来吐槽:

发表评论