MySQL-常用数据类型

作为一个数据库设计人员,掌握数据库的数据类型是非常有必要的!
MySQL支持常用的数据类型:数值类型日期/时间类型字符串类型

1.数值型
1.1整形:
类型 字节 最小值 最大值
TINYINT 1 -128 127
SMALLINT 2 -32768 32767
MEDIUMINT 3 -8388608 8388607
INT 4 -2147483648 2147483647
BIGINT 8 -9223372036854775808 9223372036854775807

表中是MySQL支持的整型,无符号(unsigned)属性可扩展一倍的最大值上限,例如 无符号的tinyint最大值为255最小值为0
MySQL整形还可以设置一个‘width’属性,但这并不表示一个精度,而是告诉客户端要显示多少个字符而已

1.2定点数

定点数也就是Decimal型,指的是小数点位置是固定不变的
Decimal(M,D) M是精度,表示数据的总长度,也就是十进制数据的位数,不包括小数点。
D是标度,表示小数点后面的数字位数。

1.3浮点数

单精度浮点型(Float)使用4个字节,双精度浮点型(Double)使用8个字节
浮点数不规定精度或位数,但会存在误差,应尽量避免对浮点数进行比较。
浮点数比定点数使用空间更少。

2.日期/时间类型

表示日期和时间的类型有:DATETIME、DATE、TIMESTAMP、TIME和YEAR
每个时间类型都有一个有效值范围
当需要同时包含时间个日期的值时,建议使用datetime类型,占8个字节
当只需要日期时,建议使用date类型,占3个字节
TIMESTAMP类型用于在进行insert或update操作是记录日期和时间。占4个字节
datetime和timestamp显示格式是一样的,但是存储方式是不一样的,
对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。
而对于DATETIME,不做任何改变,原样输入和输出

3.字符串类型
3.1CHAR和VARCHAR类型

char是固定长度的字符串,如char(30)表示字符长度为30,不足的话右边以空格补齐
varchar可变字符串,最大长度为65532,。如varchar(30)表示字符长度为30的可变字符串,字符个数多占用的空间就多,字符个数少占用的空间就少,不会以空格补齐
当检索到char值时,尾部的空格会被自动删除,这是MySQL服务器自动控制的
也可以这么说,char和varchar在检索的时候显示的是一样的,只是存储不一样

3.2 binary和varbinary

类似于char和varchar,不同的是它们包含的是二进制字符串,也就是说他们包含的是字节字符串而不是字符字符串,他们的长度是字节长度。

3.3 BLOB和TEXT

blob是一个二进制大对象,大多数情况下可以视为能够存储足够大数据的varbinary,同样也可以将text视为varchar类型
但是blob和text可能会导致严重的性能问题

你可能感兴趣的:(MySQL-常用数据类型)