SQL中char\varchar\text与nchar\nvarchar\ntext的区别
SQL中char\varchar\text与nchar\nvarchar\ntext的区别
- 定义
- 特点
定义
char
char(n)是长度不可变的,用于表示非Unicode字符数据。n代表该数据类型所允许保存的字符串的最大长度,它必须是一个介于 1 和 8,000 之间的数值,存储大小为 n个字符varchar
varchar(n)是长度可变的,用于表示非Unicode字符数据。n代表该数据类型所允许保存的字符串的最大长度,它必须是一个介于 1 和 8,000 之间的数值,存储大小为输入字符的实际长度,而不是 n个字符。所输入的数据字符长度可以为零。nvarchar
nvarchar(n)是长度可变的,用于表示Unicode字符数据。n代表该数据类型所允许保存的字符串的最大长度,它必须是一个介于 1 和 4,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的区别相关推荐
- SQL中char varchar nchar nvarchar ntext区别和使用(资料汇总)
SQL中char varchar nchar nvarchar ntext区别和使用(资料汇总) 2008年10月14日 星期二 23:57 一.SQL中char varchar nchar nvar ...
- 将所有的表中,数值类型由char,varchar改为nchar,nvarchar 的存储过程
/*--将所有的表中,数值类型由char,varchar改为nchar,nvarchar 的存储过程 --邹建 2004.02(引用请保留此信息)--*/ /*--调用示例: ...
- mysql中char,varchar,text
1.char char最大长度是255字符,注意是字符数和字符集没关系. 1)可以有默认值, 2)尾部有空格会被截断 3)不管汉字.英文,还是其他编码,都可以存255字符 2.varchar 1)va ...
- mysql中text格式化_mysql中char,varchar,text
1.char char最大长度是255字符,注意是字符数和字符集没关系. 1)可以有默认值, 2)尾部有空格会被截断 3)不管汉字.英文,还是其他编码,都可以存255字符 2.varchar 1)va ...
- sqlite数据库的char,varchar,text,nchar,nvarchar,ntext的区别
1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充. 2.VAR ...
- 数据库中char varchar nchar nvarchar的区别
数据库中char varchar nchar nvarchar的区别 我们在进行数据库的设计的时候,很多情况下表中的字段都是用的是字符串类型的数据,其中就有四种选择char varchar nchar ...
- mysql varchar tinytext_mysql列类型char,varchar,text,tinytext,mediumtext,longtext的比较与选择...
储存不区分大小写的字符数据 TINYTEXT 最大长度是 255 (2^8 – 1) 个字符. TEXT 最大长度是 65535 (2^16 – 1) 个字符. MEDIUMTEXT 最大长度是 16 ...
- SQL中的long text
SQL中的long text 问题: 解决方法: SELECT CONVERT(VARCHAR(5000),参考文献) AS 参考文献 FROM tpi20160503 出现原因: 转载于:https ...
- mysql char varchar text 对比
检索效率 char > varchar > text 当varchar长度超过255之后,跟text一致,但是设置varchar(n)的话,可以防止恶意使用text撑爆数据库 类型名称 说 ...
最新文章
- 【DataBase】【SQL语言】【第三天】
- Visual Studio 11 Beta 带来新的Metro 应用开发体验
- ubuntu16.04 安装jdk
- 定时执行java程序_如何让Java程序定时运行
- book3 复习 使用c#开发控制台应用程序
- apache将请求转发到到tomcat应用
- azure db 设置时区_使用Azure Cosmos DB开始您的旅程
- 北京供销大数据集团BGP网络商用 经实测网络质量优异
- 计算机应用专业,报软考应该选什么?
- 微信小程序开发之十 —— 点击事件
- 华硕win10键盘失灵_win10笔记本键盘失灵怎么办_win10笔记本电脑键盘失灵一键修复教程...
- 开心--开始--开发--开心
- 新手必备!最全电路基础知识讲解
- 求解答!iframe在IE浏览器加载页面无反应问题
- 流利阅读 2019.1.23 Tech industry expo opens portal to tomorrow
- HbuilderX 自有证书生成
- 深入JUnit源码之Runner
- php 考试座位编排系统,具才考场座次编排系统
- centos7克隆虚拟机
- 设计原则——接口隔离原则