• 欢迎访问金笔头博客,这是一个菜鸟(伪)程序员的自留地,欢迎访问我的github:点击进入

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

数据库 eason 3008次浏览 5个评论 扫描二维码

1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率极高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取的时候可能要多次用到trim()。
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

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

它们的区别概括成:
CHAR,NCHAR 定长,速度快,占空间大,需处理
VARCHAR,NVARCHAR,TEXT 不定长,空间小,速度慢,无需处理
NCHAR、NVARCHAR、NTEXT处理Unicode码


金笔头博客, 版权所有丨如未注明 , 均为原创, 转载请注明char、varchar、text和nchar、nvarchar、ntext的区别
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(5)个小伙伴在吐槽
  1. Wow, great article.Really looking forward to read more. Want more.
    ottoman coffee tables2016-02-10 18:37 Reply Windows XP | Firefox 3.5.3
  2. I think this is a real great blog post.Really looking forward to read more. Fantastic.
    Wedding charter bus2016-02-07 22:38 Reply Windows XP | Opera 9.64
  3. Major thanks for the blog.Much thanks again. Really Cool.
    veronica rayne2016-01-31 12:08 Reply Windows 7 | Firefox 3.5.3
  4. DrIVxL Im thankful for the post.Thanks Again. Much obliged.
    fiverr seo2016-01-31 05:17 Reply Windows XP | Internet Explorer 6.0
  5. I think other web-site proprietors should take this web site as an model, very clean and great user genial style and design, as well as the content. You are an expert in this topic!
    fiverr backlinks2016-01-02 14:33 Reply Windows XP | Firefox 3.5.3