1.有var前缀的,示意是现实存储空间是变长的,varchar,nvarchar
所谓定长就是长度牢固的,当输入的数据长度没有到达指定的长度时将自动以英文空格在其背面添补,使长度到达响应的长度,当你输入的字符大于指定的数时,它会截取超越的部份;而变长字符数据则不会以空格添补,比较破例的是,text存储的也是可变长。
2.n示意Unicode字符,即一切字符都占两个字节,nchar,nvarchar,
字符中,英文字符只须要一个字节存储就足够了,但汉字浩瀚,须要两个字节存储,英文与汉字同时存在时轻易形成杂沓,Unicode字符集就是为了处理字符集这类不兼容的题目而发生的,它一切的字符都用两个字节示意,即英文字符也是用两个字节示意
3.基于以上两点来看看字段容量
char(n),varchar(n) | 最多8000个英文,4000个汉字 | n示意输入数据的字节的现实长度 |
nchar(n),nvarchar(n) | 可存储4000个字符,不管英文照样汉字 | n示意字符个数 |
4.运用(个人偏好)
a.假如数据量非常大,又能100%肯定长度且保留只是ansi字符,那末char
b.能肯定长度又不一定是ansi字符或许,那末用nchar;
c.关于超大数据,如文章内容,运用nText
d.其他的通用nvarchar
特性比较
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"。和char、varchar比较起来,nchar、nvarchar最多存储4000个字符,不管是英文照样汉字;而char、varchar最多能存储8000个英文,4000个汉字。能够看出运用nchar、nvarchar数据范例时不必忧郁输入的字符是英文照样汉字,较为轻易,但在存储英文时数目上有些丧失。
所以一般来说,假如含有中文字符,用nchar/nvarchar,假如纯英文和数字,用char/varchar。
以上就是char、varchar、nchar、nvarchar、text之间有哪些区分的细致内容,更多请关注ki4网别的相干文章!