zoukankan      html  css  js  c++  java
  • SQl中的char,varcher,nvarchar,txt

    CHAR

       char是定长的,在字段建立时,空间就固定了,不管是否插入值(NULL也包含在内),都占用字符的空间。例如: char(8),输入字符小于8,后面补空值。输入字符大于8时,会截取。CHAR存储定长数据(英文或数字)很方便,CHAR字段上的索引效率级高。

    VARCHAR (n)

       可变长且非 Unicode 的字符数据,存储效率没有char高。n介于 1 和 8,000 之间。输入的数据字符长度可以为零。VARCHAR类型的实际长度是它的值的实际长度+1。这一个字节用于保存实际使用了多大的长度。

    从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。

    NVARCHAR (n)

       可变长度 Unicode 字符数据。n介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。 

    TEXT

    text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。

    总结

    NCHAR、NVARCHAR、NTEXT。 “N”表示存储的是Unicode数据类型的字符。我们知道英文字符只需要一个字节存储就足够了,但汉字需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的。


    所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。

  • 相关阅读:
    poj3720
    poj3099
    poj3734
    poj3112
    poj3723
    十二个开源UML工具推荐
    关于大型asp.net应用系统的架构—如何做到高性能高可伸缩性
    读《中央确定西部新十年战略》有感
    DirectShow基础编程 最简单的源Filter的编写步骤
    Access2007无法执行查询,操作或事件已被禁用模式阻止
  • 原文地址:https://www.cnblogs.com/LoveSuk/p/5717484.html
Copyright © 2011-2022 走看看