mysql设置字段长度

1.关于char和varchar

char是定长字符,varchar是变长字符。

在mysql4.0版本之前,char和varchar后面的长度表示字节,在utf-8编码格式下:三个字节存储一个汉字(包括汉字下的符号),一个字节存储一个英文字母,一个数字。

在mysql5.0版本之后,char和varchar后面的长度表示一个字符,一个汉字、英文字母、数字或者符号,都是一个字符。

2.关于数字类型的长度

数字类型的长度就不是这个意思了,则更为复杂。

int类型:长度的设定值范围1~255(设置0时自动转为11,不设置时自动转为默认的11),这个设定值其实就是设定宽度,所谓宽度就是在数值显示时候,当数值宽度短于该设置的宽度时,将自动进行左填补0。不过要看到效果则需要在创建类型时候加zerofill这个值,表示用0填充,否则看不出效果的。我们通常创建数据库时候不会去加这个值。

我们不管设置多少的宽度,都不会影响到存储的范围。int存储的范围都是-2147483648~2147483647(即 -2的31次方 ~ 2的31次方-1)。

tinyint在此范围内任意长度值的字段值范围都是-128~127(-2的七次方 -1 ~ 2的七次方-1)。

mysql字段长度理解

随笔记知识

在设计数据表时,无论通过表格设计还是sql语句设计,都会涉及到字段长度的设计,字段长度即数据类型后括号内的数值,如int(10),varchar(10),字段长度在不同的数据类型下意义是不同的,此处仅以mysql中的int以及varchar类型做说明,其余请自行学习。

int类型

int类型的长度只表示显示宽度,对实际存储无影响,如int(10)和int(11)的数据都占4个字节,只有数据显示效果的区别

varchar类型

varchar类型的长度即字符长度(英文字符),同时也是显示宽度,如varchar(3)最多只能存放3个字符,显示3个字符长度,varchar(3)类型字段插入一个字符所占空间和varchar(10)类型数据插入一个字符所占空间相同。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。