问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SQL Server的常用数据类型(字符型)有哪些?

发布网友 发布时间:2022-04-25 23:21

我来回答

1个回答

热心网友 时间:2022-04-09 07:08

对于程序中的string型字段,SQLServer中有char、varchar、nchar、nvarchar四种类型来对应(暂时不考虑text和ntext),开建立数据库中,对这四种类型往往比较模糊,这里做一下对比。

定长或变长
所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;有var前缀的,表示是实际存储空间是变长的,比如varchar,nvarchar变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长。
Unicode或非Unicode
数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储。如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。而前缀n就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。
基于以上两点来看看字段容量
char,varchar 最多8000个英文,4000个汉字
nchar,nvarchar 可存储4000个字符,无论英文还是汉字

使用(个人偏好)
如果数据量非常大,又能100%确定长度且保存只是ansi字符,那么char
能确定长度又不一定是ansi字符或者,那么用nchar;
对于超大数据,如文章内容,使用nText
其他的通用nvarchar
char、varchar、nchar、nvarchar特点比较
CHAR
CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。
VARCHAR
存储变长数据,但存储效率没有CHAR高,如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么"+1"呢?这一个字节用于保存实际使用了多大的长度。
从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。
TEXT
text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。
NCHAR、NVARCHAR、NTEXT
这三种从名字上看比前面三种多了个"N"。和char、varchar比较起来,nchar、nvarchar最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。
所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
用六个成语各造一段话 关于把握机会的名言名句 关于把握住机会的名言名句(把握机会,成就未来) 关于把握机会的名言名句(把握机会的励志句子) 关于机会的名言名句篇一 包括“机遇”的名言名句(一) BPM中国普及之路还有多远? 哪个公司可以做OA系统 目前业内有很多人认为OA现在某些应用或者说功能在向BPM领域延生,请问... ting的三个声调组词 SQL所有数据类型 sql server 常用的几个数据类型 SQL 数据库的类型有哪些? 我家电脑网页打不开啊,怎么回事呀? 梦到蛇缠身并被咬是什么意思? windows 无法连接到打印机 错误Ox00000057 梦见大长黑蛇破门而入缠身感觉咬背两口? 如何才能自己申请出国留学? 怎么申请出国留学 刚小产,昨晚做了个梦,梦见在厕所被黑蛇缠身,后来咬了,解梦,什么意思? 局域网打印机提示“打印后台服务程序没有运行”无法打印问题 想出国留学怎么申请? 出国留学怎么申请 梦见被黑蛇缠身被咬 连接打印机的时候,提示错误为0x0000007e,是什么意思? 上海2022上半年教资延迟下半年毕业生可以报吗 win7 64位无法连接到HP1008打印机 ,错误为0x0000070c。 怎么解决?_百度... win10+连接共享打印机+0x0000007c 酒店租房合同问题,急回答 连接打印机0x0000007c- 问一问 sql数据库里用什么类型的数据 SQL Server中姓名,学号,性别,院系都用什么数据类型? SQL中数据类型float与real的区别? SQL中的各数据类型代表什么含义? SQL数据类型的数据类型 张丰毅演的罗市长是什么电视剧? 女主角姓罗的电视剧或电影 电视剧里面有罗红梅罗红烛罗洪菊这是什么电视连续剧? 罗市长是哪部电视剧的? 罗纤纤是什么电视剧 罗子君是哪个电视剧里面的? 罗甲成是什么电视剧 已经和原单位脱离了劳动关系的承诺书要怎么写? 罗子君,贺函是什么电视剧啊 承诺已经和原单位脱离了劳动关系的承诺书要怎么写? 罗市长下乡视察是什么电视剧 我现在这个公司是个正规公司,要我出具与上个公司(同样是正规公司)的劳动关系解除证明, 贺涵罗子君是什么电视剧? 解除劳动关系承诺书怎么写 一个电视剧的主人公是罗什么