SQL中 char varchar和nvarchar的区别

转至:http://www.cnblogs.com/carekee/articles/2094676.html

char
    char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。
   nvarchar(n)
    包含 n 个字符的可变长度 Unicode 字符数据。
n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。       
varchar[(n)]  
    长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。
1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。 

 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。

转载于:https://www.cnblogs.com/a-mumu/p/5213567.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux入门笔记——less

less命令是一个用来浏览文本文件的程序,是早期 Unix 程序 more 的改进版,属于”页面调度器”程序类,该程序通过页方式在一页中轻松地文本文档。然而 more 程序只能向前分页浏览,而 less 程序允许前后分页浏览,它还有很多其它的特性。 less 命…

lfu算法实现c语言_哈希查找算法(C语言实现)

上一节介绍了有关哈希表及其构造过程的相关知识,本节将介绍如何利用哈希表实现查找操作。在哈希表中进行查找的操作同哈希表的构建过程类似,其具体实现思路为:对于给定的关键字 K,将其带入哈希函数中,求得与该关键字对…

现代化Java代码的七个NetBeans提示

在“ 七个不可或缺的NetBeans Java提示”一文中 ,我谈到了一般使用NetBeans提示的问题,然后重点介绍了七个提示。 接下来列出了该帖子中强调的七个提示: 可疑方法调用 使用或! AND字符串构造函数比较字符串 构造函数中的可重写方…

AngularJS $http service

原文链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/angularjs-http-service/ 1.通常用法: $http服务是一个只有一个参数-配置对象的函数,用于产生一个http请求并返回一个promise对象。 $http({ method: GET, url: /someUr…

Erwin 生成 mysql 带注释(comment )的脚本

Erwin设计数据库非常方便,有逻辑视图和物理视图,可以很方便的生成数据库文档和SQL 脚本。在使用过程中唯一不爽的地方是脚本不能生成comment。在百度无数次无法解决下,又翻墙谷歌,在一个日本网站找到了解决办法,不敢独…

YY语音01

1、YYSetup-8.2.0.1-zh-CN.exe (http://waiwai.duowan.com/)(http://www.yy.com/download) C:\Program Files (x86)\duowan\yy 1.1、YY游戏大厅,指向的安目录:“C:\Users\33\AppData\Roaming\duowan\yygame\ver\0\1.3.1.13\” 2、 3、 4、 5、转载于:htt…

手机屏幕宽高像素计算_2020年的智能手机拍照新设计,就全看下半年了

此前我们三易生活在总结2019年智能手机影像设计的变化时曾经提到,智能手机上的大底与大像素设计几乎是花了一整年的时间,把自己从单纯的噱头,逐步改进成了能够确实提高拍照画质的业界主流技术。站在现在的视角来看,2019年这阵“高…

带有Jersey和Spring的RESTful Web应用程序

几个月前,我们的任务是创建一个API,以向第三方开发人员公开我们系统中的某些功能。 我们选择将这些功能公开为一系列REST Web服务。 我开始使用Jersey ,它是JSR 311 (用于Restful Services的Java API)的参考实现&#…

关于更新pip的心得

如果pip install --upgrade pip 删除了自己,但是无法安装新的自己。 那么下载最新的pip,解压 1、在命令窗口输入 python(前提条件已经在系统路径) setup.py(pip 包里的脚本) install 即可 2、注销一下,让pip在系统路径生效 3、打开cmd,输…

Linux/Unix/Mac 系统GIT密码存储

新建一个 ~/.netrc 文件, 将 git 服务器, 用户名以及密码记录在这个文件, 如下所示: machine your-git-server login your-username password your-password普通用户的 git-server 填 github.com 就可以了. 如果有多个 server 就…

财务部门:你需要多长时间才能够回答老板的这些问题?

企业经营管理中,对管理决策者来说,有许多问题是希望随时都知道的,下面,我们一起来探讨一下,这些常见的问题,我们怎么来快速回答。首先,我们来回答以下几个问题:注:这几个…

yield方法释放锁吗_死磕Synchronized底层实现重量级锁

点击上方“Java知音”,选择“置顶公众号”技术文章第一时间送达!作者:farmerjohngit链接:https://github.com/farmerjohngit本文为死磕Synchronized底层实现第四篇文章,内容为重量级锁实现。本系列文章将对HotSpot的sy…

Java应用程序上的Twitter API

是否曾想过将推文附加到Java应用程序? 我为此寻找了最好的API,很幸运,我找到了它! http://twitter4j.org/ 一个简单的方法: 我们需要做的第一件事是在您的Twitter帐户中创建一个应用程序,为其授予访问权限…

ps aux和ps -ef命令区别

ps aux 是用BSD的格式来显示 java这个进程显示的项目有:USER,PID,%CPU,%MEM,VSZ,RSS,TTY,STAT,START,TIME,COMMANDps -ef 是用标准的格式显示java这个进程显示的项目有:UID,PID,PPID,C,STIME,TTY,TIME,CMD)转载于:https://www.cnblogs.com/ya…

gulp学习笔记3

gulp系列学习笔记: 1、gulp学习笔记1 2、gulp学习笔记2 3、gulp学习笔记3 4、gulp学习笔记4 1、编译sass Sass 是一种 CSS 的开发工具,提供了许多便利的写法,大大节省了开发者的时间,使得 CSS 的开发,变得简单和可维护…

MongoDB学习1——Windows 下配置及启动mongodb服务器

1.下载mongodb程序:http://lt1.cr173.com/soft2/mongodb.zip 2.解压程序3.在解压后的mongodb文件夹中创建 data、logs、conf文件夹4.编写配置文件conf\mongod.conf#端口号 port 12345 #数据库路径,也可以使用绝对路径 dbpath data #日志路径&#xff0…

JavaFX 2.0条形图和散点图(以及JavaFX 2.1 StackedBarCharts)

JavaFX 2.0提供了用于生成图表的内置功能,该功能可在javafx.scene.chart包中找到。 在本文中,我将介绍如何使用JavaFX 2.0创建条形图和散点图 。 在本文的学习过程中,我将一路使用Guava和一些Java 7功能。 在演示JavaFX 2.0图表API之前&#…

python中下划线开头的命名_Python 中各种下划线的骚操作:_、_xx、xx_、__xx、__xx__、_classname_...

我们在定义一些变量或者方法的时候,常常会用到下划线,在 Python 中,下划线可是很有用处的哟,比如变量,有些是一个下划线开头的(_xx),有些是两个下划线开头的(__xx),有些是在名称的结尾添加下划线…

MongoDB学习2——Windows 使用mongo连接数据库

一、查看mongo帮助文档mongo.exe --help二、使用mongo 连接服务器mongo.exe 数据库地址:数据库端口号/数据库关闭服务器db.shutdownServer()注:关闭数据必须使用admin数据库权限

【UVA 10816】 Travel in Desert (最小瓶颈树+最短路)

【题意】 有n个绿洲, m条道路,每条路上有一个温度,和一个路程长度,从绿洲s到绿洲t,求一条道路的最高温度尽量小, 如果有多条, 选一条总路程最短的。 InputInput consists of several test cases…