sqlserver中char varchar nchar nvarchar的区别

char:    固定长度,存储ANSI字符,不足的补英文半角空格。
nchar:   固定长度,存储Unicode字符,不足的补英文半角空格
varchar:  可变长度,存储ANSI字符,根据数据长度自动变化。
nvarchar: 可变长度,存储Unicode字符,根据数据长度自动变化。

操作方法

  • 01

    nvarchar(n) :包含 n个字符的可变长度 Unicode 字符数据。n 的值必须介于 1  与  4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。 varchar[(n)]:长度为 n 个字节的可变长度且非 Unicode的字符数据。n 必须是一个介于   1 和 8,000之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。 注意:      ANSI主要是以单字节来存储数据,一般适合英文。而我们常用的汉字需要用两个字节来存储,所以就要使用unicode的数据类型,不然读取出来的数据可能会乱码。

  • 02

    (2)区别: ①从存储方式上,nvarchar是按字符存储的,而 varchar是按字节存储的; ②从存储量上考虑, varchar比较节省空间,因为存储大小为字节的实际长度,而 nvarchar是双字节存储; ③在使用上,如果存储内容都是英文字符而没有汉字等其他语言符号,建议使用varchar;含有汉字的使用nvarchar,因为nvarchar是使用Unicode编码,即统一的字符编码标准,会减少乱码的出现几率;

  • 03

    (3)优缺点: Nvarchar优点:判断字符串的时候可以不需要考虑中英文两种字符的差别,可以避免程序中乱码的问题。 缺点:存储英文字符会增大一倍的存储空间.但是在存储代价已经很低廉的情况下,优先考虑兼容性会给你带来更多好处的,效率没有varchar高。

  • 04

    (4)为什么要用nvarchar? 有n前缀的,n表示Unicode字符,即所有字符都占两个字节,nchar,nvarchar 字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。

  • 05

    (5)有关var的简单介绍: 有var前缀的,表示是实际存储空间是变长的,varchar,nvarchar 所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长。

  • 06

    (6)如何使用这些类型? 如果你肯定存储的数据长度,而且不包中文的,可以选择char类型。 如果肯定存储的数据长度,但可能包括中文,可以选择nchar类型。 如果不确定存储的数据长度,存储只有英文、数字的最好用varchar 如果不确定存储的数据长度,也有可能有中文,可以选择nvarchar类型,在SQL Server2005中也是比较常用的字符数据类型。

(0)

相关推荐

  • Oracle varchar与varchar2的区别

    操作方法 01 varchar -- 存放定長的字符数据,最长2000個字符:varchar2 -- 存放可变长字符数据,最大长度为4000字符. 目前没有本质的区别 但是:varchar2是orac ...

  • C++ 中指针和引用有什么区别

    C++ 中指针和引用有什么区别详解 1.从内存上来讲  系统为指针分寸内存空间,而引用与绑定的对象共享内存空间,系统不为引用变量分配内容空间. 2指针初始化以后可以改变指向的对象,而引用定义的时候必须 ...

  • excel中char函数有什么作用?

    在计算机数据表示中,每一个字符都有对应的ASCII码与其对应,我们可以借助Char函数将ASCII码转换成对应的字符,该函数在编程及循环操作时常见.而char函数的作用非常简单,是显示计算机的字符集, ...

  • 怎么使用SSMS将SqlServer中的表结构和数据导出备份

    如果想要将SqlServer中的数据表结构及数据同时导出进行备份,该怎么操作呢?今天就跟大家介绍一下使用SSMS将SqlServer中的表结构和数据导出备份的具体操作步骤.1. 首先打开电脑上的SSM ...

  • Excel中函数countif与sumif的区别以及两者用法

    在统计数据中我们经常要运用各种函数,Excel中函数众多,大大方便了我们的数据统计.其中countif和sumif两个函数功能都是算数,好像差不多,所以有的人在Excel中统计数据时不知如何区别运用. ...

  • sqlserver中between...and结果是否包含边界值?

    sqlserver数据库中的范围查询between...and之间的边界条件是否包含在查询结果中呢? 操作方法 01 打开SQL Server Management Studio管理工具,连接上数据库 ...

  • 电脑主板是大板好还是小板好 主板中大板和小板的区别介绍

    在DIY装机选择主板的时候,经常会有用户问小编这样一个问题:电脑主板大板好还是小板好?对于此问题,笔者也经常会不厌其烦的为装机用户简单解答一下,不过问的朋友多了,难免会有些反感,今天小编为大家详细罗列 ...

  • Windows Vista/7中关机.睡眠和休眠的区别

    打开开始菜单,然后单击右下角的三角形箭头按钮,随后会看到很多选项(如下图所示)。这些选项大部分含义都很直白,用途一目了然,不过有些选项可能会让很 多人纳闷,例如“待机”、“休眠”,以及“睡眠”,这些功 ...

  • Linux操作系统中内存buffer和cache的区别

    free 命令相对于top 提供了更简洁的查看系统内存使用情况: $ free total used free shared buffers cached Mem: 255268 238332 169 ...