SQL中char\varchar\text与nchar\nvarchar\ntext的区别

  • 定义
  • 特点

定义

  • char
    char(n)是长度不可变的,用于表示非Unicode字符数据。n代表该数据类型所允许保存的字符串的最大长度,它必须是一个介于 18,000 之间的数值,存储大小为 n个字符

  • varchar
    varchar(n)是长度可变的,用于表示非Unicode字符数据。n代表该数据类型所允许保存的字符串的最大长度,它必须是一个介于 18,000 之间的数值,存储大小为输入字符的实际长度,而不是 n个字符。所输入的数据字符长度可以为零。

  • nvarchar
    nvarchar(n)是长度可变的,用于表示Unicode字符数据。n代表该数据类型所允许保存的字符串的最大长度,它必须是一个介于 14,000 之间的数值,存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。

特点

  • char

    • 索引效率高
    • 当输入的字符长度小于指定的最大长度n时,保存的时候会使用trim去掉字符串末尾的空格,并在字符串末尾补空值;当输入的字符长度大于指定的最大长度n时,保存的时候会截去超出的字符
    • 适合保存MD5后的哈希值或经常改变的值,因为固定的行不容易产生碎片
  • varchar

    • 比使用定长类型的char占用更少存储空间,但效率没char
    • 使用额外的1-2字节来存储值长度(实际使用了多少长度),长度<=255使用1字节保存,其它情况使用2字节保存。例如varchar(10)会占用11字节存储空间,varchar(500)会占用502字节存储空间
    • 取值或设置值都会保存字符串末尾的空格
    • 最大长度远大于平均长度,很少发生更新的时候适合使用varchar,因为碎片更少了
  • text

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

    • 这三种从名字上看比前面三种多了个“n”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字则需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示,高位是补位的。nchar\nvarchar的长度是在1到4000之间,无论英文或汉字最多能存储4000个字符;而char\varchar最多能存储8000个英文,4000个汉字。因此在输入的字符为纯英文时使用char\varchar,可减少存储空间的浪费;而当含有中文汉字时应使用nchar\nvarchar。

SQL中char\varchar\text与nchar\nvarchar\ntext的区别相关推荐

  1. SQL中char varchar nchar nvarchar ntext区别和使用(资料汇总)

    SQL中char varchar nchar nvarchar ntext区别和使用(资料汇总) 2008年10月14日 星期二 23:57 一.SQL中char varchar nchar nvar ...

  2. 将所有的表中,数值类型由char,varchar改为nchar,nvarchar 的存储过程

    /*--将所有的表中,数值类型由char,varchar改为nchar,nvarchar 的存储过程 --邹建 2004.02(引用请保留此信息)--*/     /*--调用示例:         ...

  3. mysql中char,varchar,text

    1.char char最大长度是255字符,注意是字符数和字符集没关系. 1)可以有默认值, 2)尾部有空格会被截断 3)不管汉字.英文,还是其他编码,都可以存255字符 2.varchar 1)va ...

  4. mysql中text格式化_mysql中char,varchar,text

    1.char char最大长度是255字符,注意是字符数和字符集没关系. 1)可以有默认值, 2)尾部有空格会被截断 3)不管汉字.英文,还是其他编码,都可以存255字符 2.varchar 1)va ...

  5. sqlite数据库的char,varchar,text,nchar,nvarchar,ntext的区别

    1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充. 2.VAR ...

  6. 数据库中char varchar nchar nvarchar的区别

    数据库中char varchar nchar nvarchar的区别 我们在进行数据库的设计的时候,很多情况下表中的字段都是用的是字符串类型的数据,其中就有四种选择char varchar nchar ...

  7. mysql varchar tinytext_mysql列类型char,varchar,text,tinytext,mediumtext,longtext的比较与选择...

    储存不区分大小写的字符数据 TINYTEXT 最大长度是 255 (2^8 – 1) 个字符. TEXT 最大长度是 65535 (2^16 – 1) 个字符. MEDIUMTEXT 最大长度是 16 ...

  8. SQL中的long text

    SQL中的long text 问题: 解决方法: SELECT CONVERT(VARCHAR(5000),参考文献) AS 参考文献 FROM tpi20160503 出现原因: 转载于:https ...

  9. mysql char varchar text 对比

    检索效率 char > varchar > text 当varchar长度超过255之后,跟text一致,但是设置varchar(n)的话,可以防止恶意使用text撑爆数据库 类型名称 说 ...

最新文章

  1. 【DataBase】【SQL语言】【第三天】
  2. Visual Studio 11 Beta 带来新的Metro 应用开发体验
  3. ubuntu16.04 安装jdk
  4. 定时执行java程序_如何让Java程序定时运行
  5. book3 复习 使用c#开发控制台应用程序
  6. apache将请求转发到到tomcat应用
  7. azure db 设置时区_使用Azure Cosmos DB开始您的旅程
  8. 北京供销大数据集团BGP网络商用 经实测网络质量优异
  9. 计算机应用专业,报软考应该选什么?
  10. 微信小程序开发之十 —— 点击事件
  11. 华硕win10键盘失灵_win10笔记本键盘失灵怎么办_win10笔记本电脑键盘失灵一键修复教程...
  12. 开心--开始--开发--开心
  13. 新手必备!最全电路基础知识讲解
  14. 求解答!iframe在IE浏览器加载页面无反应问题
  15. 流利阅读 2019.1.23 Tech industry expo opens portal to tomorrow
  16. HbuilderX 自有证书生成
  17. 深入JUnit源码之Runner
  18. php 考试座位编排系统,具才考场座次编排系统
  19. centos7克隆虚拟机
  20. 设计原则——接口隔离原则

热门文章

  1. XPe开发初体验:XPe概述
  2. Platt SMO算法
  3. 最小生成树 解释 + 板子题
  4. 宝塔Linux面板配置教程
  5. 真心话大冒险,一款小程序让你看清你朋友的内心
  6. 有关计算机的英语名言,100句超级简洁但有力量英文励志名言
  7. Linux的权限管理操作
  8. linux递归替换目下所有文件的某个特定字符串
  9. 能量信号和功率信号的分别
  10. 无线电监测,适用带宽总结,信号分析代表信号频段