美文网首页
建表时字段类型后面的数字有什么用

建表时字段类型后面的数字有什么用

作者: x0216u | 来源:发表于2019-12-31 12:40 被阅读0次

Eg: int(11), decimal(5,2), varchar(32)

介绍:

Mysql数据库中以 数据类型(m) 来约束数据,其中 数字m在不同的数据类型中表示含义是不同的

整数类型

Mysql中整型数系统已经限制了取值范围

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1字节 (-128,127) (0,255) 小整数值
SMALLINT 2字节 ( -2^15 :-32768,2^15 - 1:32767) (0,65 535) 大整数值
MEDIUMINT 3字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4字节 (-2^31:-2 147 483 648, 2^31 - 1:2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8字节 (-2^63:-9 233 372 036 854 775 808,2^63-1:9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值

这些类型,是定长的,其容量是不会随着后面的数字而变化的,那么后面的数字是用来干什么的呢?

  • 显示宽度
    不论是有符号还是无符号类型,他们都使用相同的存储空间,并具有相同的性能。但是对于显示工具来说(例如Mysql客户端),后面的数据长度决定了用来显示字符的个数

实数类型

实数是带有小数部分的数字。Mysql即支持精确类型,也支持不精确类型

Fixed-Point类型 (DECIMAL, NUMERIC)

DECIMAL 类型用于存储精确的小数且以二进制形式存储。在MYSQL5或者更高版本中,DECIMAL类型允许最多65个数字。
在创建MySQL的DECIMAL列的时候,可以指定进度和标度:DECIMAL(M,D)。M为精度(precision),表示该值的总长度;D为标度(scale),表示小数点后面的长度。例如,DECIMAL(7,4)可存储的数据范围为-999.9999~999.9999。
DECIMAL在不指定精度时,默认整数为10,小数为0,即DECIMAL(10,0)。当DECIMAL(M,D)列存储的数值的小数位数超过D,则四舍五入到D位。当DECIMAL(M,D)列存储的数值大于该列能表示的范围,则存储为DECIMAL(M,D)能表示的最大值;当DECIMAL(M,D)列存储的数值小于该列能表示的范围,则存储为DECIMAL(M,D)能表示的最小值。

浮点类型(FLOAT、DOUBLE)

FLOATDOUBLE 类型代表近似值。MySQL使用4个字节表示单精度值、使用8个字节表示双精度值。单精度的FLOAT类型表示4个字节;24-53的精度则需要双精度DOUBLE类型表示

字符串类型

VARCHAR

VARCHAR 类型用于存储可变长字符串,其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。长度可以指定为0到65,535之间的值。(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节)。它比定长类型更节省空间,因为它仅使用必要的空间(例如,越短的字符串使用越少的空间)。
VARCHAR 需要使用1 或 2个额外字节记录字符串的长度,如果列的长度小于或等于255,则只使用1个字节表示,否则使用2个字节。
VARCHAR 节省了存储空间,所以对性能有所帮助,但是,由于行是可变的,所以UPDATE的时候可能会使行变得比原来更长,这就导致需要做额外的工作。
VARCHAR 在存储字符串列的最大长度,比平均长度大很多; 列更新较少;复杂字符集;等情况下较为适合选择

CHAR

CHAR 类型是定长的,MYSQL会根据定义的长度为字符串分配足够的空间,当存储类型为CHAR的时候,MYSQL 会删除末尾的空格,CHAR值会根据需要采用空格填充,来进行比较
CHAR 适合存储很短的字符串,或者所有值都接近同一个长度。如: 存储有MD5的密码字段,或者对于一些非常短的内容的列,如 Y,N,此时选择CHAR只需要一个字节,而VARCHAR却需要两个字节

字符串的长度定义不是字节数,是字符数。多字节字符集会需要更多的空间存储单个字符

BLOB、TEXT

BLOBTEXT都是为存储很大的数据而设计的字符串类型,分别采用二进制和字符方式存储

MySql计算字段的长度

LENGTH

LENGTH 函数是一个用来获取字符串长度的内置函数

CHAR_LENGTH

CHAR_LENGTH 查看字符串长度

区别:

命令 单位 一个汉字 一个数字or字母 示例
char_length 字符 1 1 char_length(str)
length Byte 3 1 length(str)
bit_length bit 24 8 length(str)

相关文章

网友评论

      本文标题:建表时字段类型后面的数字有什么用

      本文链接:https://www.haomeiwen.com/subject/mzfboctx.html