SQL:char、varchar、text和nchar、nvarchar、ntext的区别

SQL:char、varchar、text和nchar、nvarchar、ntext的区别

SQL中char、varchar、text和nchar、nvarchar、ntext的区别

     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。

     如果是存储文章等大段内容的时候,纯英文和数字,用text,含有中文字符的,用ntext。

转载于:https://www.cnblogs.com/TomToDo/archive/2008/05/27/1208496.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111017.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 简单人脸识别一之使用opencv+cnn网络实现人脸识别

    简单人脸识别一之使用opencv+cnn网络实现人脸识别最近在研究目标检测这个方向,看到网上有很多的人脸识别帖子,所以也想着上上手看看。当时是做了三个模型出来,第一个就是网上很通用普遍的opencv+简单三层cnn网络来实现的,说实话效果真的一般吧!具体的下面再细细陈述。第二个是把三层cnn网络换成了残差网络。因为自己刚好也是学习了残差网络。就想着生搬硬套过来,但效果说实话很迷,时好时坏,把我是整蒙逼了,后面也会提的。最后一个是用opencv+MTCN…

    2022年5月11日
    46
  • kali apk免杀_kali攻击windows

    kali apk免杀_kali攻击windows首先,介绍一下VeilEvasion,VeilEvasion是linux的一款免杀工具,是一个用Python编写的免杀框架,用来生成MSF的Payload,能绕过常见的杀毒软件,它可以将任意脚本或一段Shellcode转换成Windows可执行文件,从而逃避常见防病毒产品的检测。关于MSF,它就是一个漏洞框架(全称:TheMetasploitFramework),嗯,免费,通过这个框架,我们可以很容易的对于软件的漏洞进行攻击。它本身带有几千个漏洞攻击工具。……

    2022年8月20日
    6
  • MyEclipse注册码_eclipse语言包

    MyEclipse注册码_eclipse语言包一:MyEclipse_6.0.1GA_E3.3.1_FullStackInstaller注册码Subscriber:javpSubscriptionCode:wLR7ZL-655551-68586356379508982Subscriber:AdministratorSubscriptionCode:NLR8ZC-855055-65677556686438302

    2022年9月30日
    2
  • poj2386 Lake Counting(简单DFS)

    poj2386 Lake Counting(简单DFS)

    2022年1月4日
    49
  • unity3d吧_unity3d从入门到精通

    unity3d吧_unity3d从入门到精通2-62-72-82-92-103-33-43-5

    2022年9月2日
    2
  • redis端口号为什么是6379「建议收藏」

    redis端口号为什么是6379「建议收藏」6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女AlessiaMerz的名字。MERZ长期以来被Redis作者antirez及其朋友当作愚蠢的代名词。后来Redis作者在开发Redis时就选用了这个端口。——AlessiaMerz是一位意大利舞女、女演员。Redis作者Antirez早年看电视节目,觉得Merz在节目中的一些话愚蠢可笑,Antirez喜欢造…

    2022年5月30日
    228

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号