SqlServer中char,varchar,nchar,nvarchar的区别
在数据库中建表时,总是习惯的将一些字段定义为nvarchar,但关于它和nchar的区别,却没有细究过,今天上网仔细了解一下做个总结:
1.n代表的是Unicode字符,可以解决多语言字符集之间的转换问题。带上'n',表示你的字符串中汉字、英文字符、数字等等,存储时都是占用两个字节,这是为了防止出现乱码考虑的,而不带'n'的(char,varchar),存储时英文字符、数字占用一个字节,汉字占用两个字节。
2.‘var‘,显然是可变的意思,在sqlserver中就代表了可变存储,比如,定义了name字段:varchar(60),为其填充数据张三,则只占用6个字节,剩余54个字节未被占用(倒是节省了存储空间喔),对比而言,没有'var'的就是固定存储,上例如果定义name字段为char(60),同样填充数据张三的话,虽然也是占用6个字节,但剩余54个字节会用空格填充,也就是说,定义为固定存储的情况下,无论实际用了多少存储空间,所有空间都会被占用。
3.存储容量对比:char,varchar最多8000个英文,4000个汉字;nchar,nvarchar可存储4000个字符,无论英文还是汉字。
4.速度对比:固定存储比可变存储速度上快的多,但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉。
实际中使用的一般是varchar和nvarchar,二者再做个对比:
1.存储方式上,nvarchar是按字符存储的,varchar是按字节存储的。
2.存储量上,varchar节省空间,因为存储大小为字节实际长度,而nvarchar是双字节存储。
3.使用中,如果确定存储内容都是英文字符而没有汉字等语言符号,建议用varchar,含有汉字使用nvarchar(避免乱码)
以上是网上浏览加个人理解后的总结,重要的是理解了'n'与'var'的含义。
转载于:https://www.cnblogs.com/baweier2011/archive/2012/10/27/2742684.html
SqlServer中char,varchar,nchar,nvarchar的区别相关推荐
- 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的区别 我们在进行数据库的设计的时候,很多情况下表中的字段都是用的是字符串类型的数据,其中就有四种选择char varchar nchar ...
- char varchar nchar nvarchar区别
char varchar nchar nvarchar区别 char与varchar的区别 (1) char的长度是不可变的,而varchar的长度是可变的.(也就是说,定义一个char[4]和var ...
- oracle中varchar 和 nvarchar2的区别,Oracle中char,varchar,varchar2,nvarchar,nvarchar2的区别
一.概述 1.char char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节: char是区分中英文 ...
- char varchar nchar nvarchar 四者的区别是什么(为何SQL Server自动给字符串末尾加空格)...
本着低碳的原则将几个变量声明为nchar,结果发现尾巴上每次都多一大串空格,C#中不得不多次Trim劳心费神易出错.上网一查原来四种字符串看似相近其实讲究很多,其中以本帖最为全面,特此转发. 原帖:h ...
- oracle数据库中nvarchar,Oracle数据库中的varchar,varchar2,nvarchar,nvarchar2区别及用
[varchar,varchar2 ] 联系: 1. varchar/varchar2用于存储可变长度的字符串 比如 varchar(20),存入字符串'abc', 则数据库中该字段只占3个字节,而不 ...
- SQL中char\varchar\text与nchar\nvarchar\ntext的区别
SQL中char\varchar\text与nchar\nvarchar\ntext的区别 定义 特点 定义 char char(n)是长度不可变的,用于表示非Unicode字符数据.n代表该数据类型 ...
- char、nchar、varchar、nvarchar的区别和特点
char.nchar.varchar.nvarchar的区别 对于程序中的string型字段,SQLServer中有char.varchar.nchar.nvarchar四种类型来对应(暂时不考虑te ...
- mysql的nvarchar_MySQL中char、varchar和nvarchar的区别
一.char和varchar的区别 char是固定长度的,而varchar会根据具体的长度来使用存储空间,另外varchar需要用额外的1-2个字节存储字符串长度. 1). 当字符串长度小于255时, ...
最新文章
- python模拟鼠标拖动_python模拟鼠标拖动操作
- RabbitMQ一个简单可靠的方案(.Net Core实现)
- Shebang来Java了吗?
- “System.Data.SqlClient.SqlException: A transport-level error has occurred when receiving results fro
- SAP License:账号锁定的处理
- CVPR 2017精彩论文解读:综合使用多形态核磁共振数据的3D生物医学图像分割方法 | 分享总结...
- java双重循环去重_java 中 list集合去重
- html样式格式文件的后缀名是( ),什么是HTML格式?什么是CSS格式?
- CentOS7下安装H2o的经历(How did I install the h2o in centos7?)
- 计算机启动时检测硬盘,电脑总是启动检测硬盘怎么办
- Day51:HEIL AI
- 机器学习之朴素贝叶斯(一):朴素贝叶斯的介绍、概率基础(拉普拉斯平滑)、sklearn朴素贝叶斯实现API、朴素贝叶斯分类的优缺点、文本的特征工程
- 【计算机组成原理】-09
- 小程序页面卡顿解决问题
- 针对 Telnet 协议的威胁观察
- VFS基础学习笔记 - 5.读文件过程
- JavaScript小案例程序保存(完整代码+效果展示)
- 小学计算机教案用画笔绘画,电脑美术教学设计《神奇的画笔》
- android listview动态加载数据,ListView动态加载数据
- 通过HttpPost发送http请求实现文件上传
热门文章
- Jmeter接口测试实战分享,你一定要知道的问题总结!
- 接口测试实战总结,绝对值得收藏
- swing tree 去掉双击默认展开 关闭_如何保护自己的电脑,关闭危险端口(一)
- 计算机控制系统复习提纲,《计算机控制系统》复习要点
- setup the printer on ubuntu for uniofsurrey
- houdini 做选点效果
- 基于深度卷积神经网络的大豆叶斑病识别
- java 微信 jssdk 分享朋友圈_微信JS-sdk分享到朋友圈无效
- java 线程池的使用_Java 使用线程池执行若干任务
- leetcode最大矩形_柱状图中的最大矩形