mysql字段类型

mysql字段类型

MYSQL支持的数据类型——字符串类型

注:mysql中的varchar类型表示字符个数而不是字节数,这点与sqlserver有所区别

数字类型

列类型

需要的存储量

范围、备注

TINYINT

1 个字节

一个很小的整数

有符号的范围是-128到127,无符号的范围是0到255

SMALLINT

2 个字节

一个比较小的整数

有符号的范围是-32768到32767,无符号的范围是0到65535

MEDIUMINT

3 个字节

一个中等大小的整数

有符号的范围是-8388608到8388607,无符号的范围是0到16777215

INT

4 个字节

一个正常大小整数

有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295

即最多可存储10个数字,如果存储手机号(11位)则会失败。

INTEGER

4 个字节

INT的一个同义词

BIGINT

8 个字节

一个大整数

有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615

FLOAT(M,D)

4 个字节

 

一个小(单精密)浮点数字。不能无符号。

允许的值是-3.402823466E+38到-1.175494351E-38,0 和 1.175494351E-38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24 的一个 参数表示一个单精密浮点数字。

FLOAT

4 个字节

 

DOUBLE

 

8 个字节

一个正常大小(双精密)浮点数字。不能无符号。
允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、
0和2.2250738585072014E-308到1.7976931348623157E+308。

DOUBLE PRECISION

8 个字节

 

REAL

8 个字节

这些是DOUBLE同义词

DECIMAL(M,D)

M字节(D+2 , 如果M < D)

一个未压缩(unpack)的浮点数字。不能无符号。行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符

NUMERIC(M,D)

M字节(D+2 , 如果M < D)

这是DECIMAL的一个同义词

日期和时间类型

列类型

需要的存储量

范围、备注

DATE

3 个字节

 1000-01-01~9999-12-31 3字节(MySQL3.23版以前是4字节 ) 0000-00-00

DATETIME

8 个字节

 1000-01-01 00:00:00~9999-12-31 23:59:59 8字节 0000-00-00 00:00:00

TIMESTAMP

4 个字节

 19700101000000~2037年的某个时刻 4字节 00000000000000

TIME

3 个字节

 -838:59:59~838:59:59 3字节 00:00:00

YEAR

1 字节

 YEAR(4):1901~2155 YEAR(2):1970~2069 1字节 0000

字符串类型

列类型

需要的存储量

备注

CHAR(M)

M字节,1 <= M <= 255

 

VARCHAR(M)

L+1 字节, 在此L <= M1 <= M <= 255

 

TINYBLOB, TINYTEXT

L+1 字节, 在此L< 2 ^ 8

最大长度为255(2^8-1)个字符

BLOB, TEXT

L+2 字节, 在此L< 2 ^ 16

最大长度为65535=64K(2^16-1)个字符

MEDIUMBLOB, MEDIUMTEXT

L+3 字节, 在此L< 2 ^ 24

最大长度为16777215=16M(2^24-1)个字符

LONGBLOB, LONGTEXT

L+4 字节, 在此L< 2 ^ 32

最大长度为4294967295=4G(2^32-1)个字符

ENUM('value1','value2',...)

1 或 2 个字节, 取决于枚举值的数目(最大值65535)

 

SET('value1','value2',...)

1,2,3,4或8个字节, 取决于集合成员的数量(最多64个成员)

 


原文地址:https://www.cnblogs.com/jingzhishen/p/4906875.html