2024年3月27日发(作者:)
MySql数据库的列类型(字段类型)
对于每个由MySQL支持的列类型的存储需求在下面按类列出。
7.3.2 数字类型
列类型
TINYINT
SMALLINT
MEDIUMINT
INT
INTEGER
BIGINT
FLOAT(X)
FLOAT
DOUBLE
DOUBLE PRECISION
REAL
DECIMAL(M,D)
NUMERIC(M,D)
需要的存储量
1 字节
2 个字节
3 个字节
4 个字节
4 个字节
8 个字节
4 如果 X < = 24 或 8 如果 25 < = X < = 53
4 个字节
8 个字节
8 个字节
8 个字节
M字节(D+2 , 如果M < D)
M字节(D+2 , 如果M < D)
7.3.3 日期和时间类型
列类型
DATE
DATETIME
TIMESTAMP
TIME
YEAR
需要的存储量
3 个字节
8 个字节
4 个字节
3 个字节
1 字节
7.3.4 串类型
列类型 需要的存储量
CHAR(M)
VARCHAR(M)
TINYBLOB, TINYTEXT
BLOB, TEXT
MEDIUMBLOB, MEDIUMTEXT
LONGBLOB, LONGTEXT
M字节,1 <= M <= 255
L+1 字节, 在此L <= M和1 <= M <= 255
L+1 字节, 在此L< 2 ^ 8
L+2 字节, 在此L< 2 ^ 16
L+3 字节, 在此L< 2 ^ 24
L+4 字节, 在此L< 2 ^ 32
1 或 2 个字节, 取决于枚举值的数目(最大值
ENUM('value1','value2',...)
65535)
1,2,3,4或8个字节, 取决于集合成员的数
SET('value1','value2',...)
量(最多64个成员)
VARCHAR和BLOB和TEXT类型是变长类型,对于其存储需求取决于列值的实际长
度(在前面的表格中用L表示),而不是取决于类型的最大可能尺寸。例如,一个
VARCHAR(10)列能保存最大长度为10个字符的一个字符串,实际的存储需要是字
符串的长度(L),加上1个字节以记录字符串的长度。对于字符串'abcd',L是4
而存储要求是5个字节。
BLOB和TEXT类型需要1,2,3或4个字节来记录列值的长度,这取决于类型的
最大可能长度。
如果一个表包括任何变长的列类型,记录格式将也是变长的。注意,当一个表被
创建时,MySQL可能在某些条件下将一个列从一个变长类型改变为一个定长类型
或相反。见7.7.1 隐式列指定变化。
一个ENUM对象的大小由不同枚举值的数量决定。1字节被用于枚举,最大到255
个可能的值;2个字节用于枚举,最大到65535 值。
一个SET对象的大小由不同的集合成员的数量决定。如果集合大小是N,对象占
据(N+7)/8个字节,四舍五入为1,2,3,4或8 个字节。一个SET最多能有64
个成员。
MySQL数据库的表是一个二维表,由一个或多个数据列构成。
每个数据列都有它的特定类型,该类型决定了MySQL如何看待该列数据,我们可以把整型
数值存放到字符类型的列中,MySQL则会把它看成字符串来处理。
MySQL中的列类型有三种:数值类、字符串类和日期/时间类。
从大类来看列类型和数值类型一样,都是只有三种。但每种列类型都还可细分。
下面对各种列类型进行详细介绍。
数值类的数据列类型
数值型的列类型包括整型和浮点型两大类。


发布评论