char与varchar、nvarchar区别

char     char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。    nvarchar(n)     包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。       varchar[(n)]      长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。 1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。 

2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。  从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。  3、TEXT。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。  4、NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。  所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。

时间: 2024-10-18 05:34:26

char与varchar、nvarchar区别的相关文章

数据库 char nchar varchar nvarchar 区别

char:对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间.因为是固定长度,所以速度效率高. Varchar类型::变长型字符数据类型,存储最长长度为8,000 个字符.Varchar的类型不以空格填满,比如varchar(100),但它的值只是"haha",则它的值就是"haha".而char 不一样,

sqlserver char nchar varchar nvarchar 的区别

数据库SQLserver的数据库存储类型(nchar.char .nvarchar.varchar)的说明及比较 1.char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率极高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间.因为是固定长度,所以速度效率高. 2.varchar类型:      存储变长数据,如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符

MYSQL, char 与 varchar的区别!

一.char 和 varchar 的区别: 1)取值范围: char:取值范围:0~255 varchar:取值范围:0~65535 2)空间占用与速度: char: 定长字符串,占用空间大,速度快,一般用于固定长度的表单提交数据存储,例如:身份账号.电话号码.密码等 varchar:变长字符串,占用空间小,速度慢 3)存储与检索数据: char:存储的数据是否达到了给定值得字节,都要占用给定值大小的空间,不足的自动用空格填充,在检索时后面的空格会被自动去裁剪掉. 如:定义  tel char(

mysql中char与varchar的区别分析

原文网址:http://www.jb51.net/article/23575.htm mysql中char与varchar的区别分析 作者: 字体:[增加 减小] 类型:转载 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型. char与varchar的区别 char (13)长度固定, 如'www.jb51.net' 存储需要空间 12个字符 varchar(13) 可变长 如'w

char、varchar的区别

char的长度是固定的,varchar的长度是可变的. 例如:char(5)  varchar(5) 当输入char数据时:字符.数字.汉字都是5个,只能输入5个 当输入varchar数据时:字符.数字.汉字也是5个,也只能输入5个 从表面上看char和varchar没什么区别 实际上当char输入1个(字符.数字.汉字)时,5个空间会被占满 而varchar输入1个(字符.数字.汉字)时,只会占一个空间, 之所以说(varchar)变长计算速度慢,是因为变长需要计算字符串长度,而char是不需

通过char与varchar的区别,学习可变长的字符类型

转自http://www.uphtm.com/database/232.html 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型. char与varchar的区别 char (16)长度固定, 如'www.uphtm.com' 存储需要空间 14个字符 varchar(16) 可变长 如'www.uphtm.com' 需要存储空间 15字符, 从上面可以看得出来char 长度是固定

char与varchar的区别

char的长度是不可变的,而varchar的长度是可变的,也就是说, 定义一个char[10]和varchar[10],如果存进去的是'csdn', 那么char所占的长度依然为10, 除了字符'csdn'外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候, char类型的要用trim()去掉多余的空格,而varchar是不需要的. 1.char与varchar的区别 char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找: 但是char也为此

SQL中char nchar varchar nvarchar text ntext的区别

类型 长度 使用说明 长度说明 char(n) 定长 索引效率高,程序里面使用trim去除多余的空白 n必须是一个介于1和8000之间的数值,存储大小为n个字节 varchar(n) 变长 效率没char高 灵活 n必须是一个介于1和8000之间的数值.存储大小为输入数据的字节的实际长度,而不是n个字节 text(n) 变长 非Unicode数据 不用指定长度 nchar(n) 定长 处理Unicode数据类型(所有的字符使用两个字节表示) n的值必须介于1和4000之间,存储大小为n字节的两倍

Char Varchar Nvarchar区别

char和varchar是一样的字符型,不同在于,varchar比char更灵活,精确,且不占内存空间,当你取同样的字符时,char会在该字符后面加上空格,而varchar则只取得这个字符,比如有字段5,用varchar从该字段中取aa时,你取得的是"aa",如果用char,则取得的是"aa ",char会在后面用空格补齐5个字段.所以,varchar比char更精确,但,varchar的速度却比char慢.因为char是直接取得全部,而varchar是精确的去取得

sql中char nchar varchar nvarchar的区别

char    char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符.   nvarchar(n)    包含 n 个字符的可变长度 Unicode 字符数据.n 的值必须介于 1 与 4,000 之间.字节的存储大小是所输入字符个数的两倍.所输入的数据字符长度可以为零.      varchar[(n)]     长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必须是