博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
varchar nvarchar char nchar varchar2 nvarchar2
阅读量:6954 次
发布时间:2019-06-27

本文共 945 字,大约阅读时间需要 3 分钟。

hot3.png

1、char

定长的存储ASCII码字节数据,过去使用这种类型保存数据,但是由于定长势必浪费存储空间;但是效率高

 

2、varchar

不定长的存储ASCII码字节数据,即使初始化空间为5,如果只存储长度为3的字节,你们也只是占用3个字节的空间;相比char,varchar可以大量节约空间,但是在效率上稍低,原因是长度的判断导致要移位操作,不过这种影响小的可以不用计算,所以在开发中尽量使用varchar;

3、nvarchar

不定长的存储字符数据,这个与varchar的最大区别就是,varchar存储的是字节,而nvarchar存储的字符,也就是说,如果你初始化的空间是5的话,那么意思是申请了5个字符的空间,对于Unicode编码我们知道不同字符所占的字节是不一样的,但是英文只是一个字节就能满足,中文就不一样了,所以,如果你采用nvarchar作为存储英文的话,那就是大量浪费空间。

 

4、varchar2

varchar2是oracle可变长的数据类型,在SqlServer中称为varchar,他的特点就是可变长,比如定义表的时候采用

FNAME varchar2(20) 意思是FNAME字段最大采用20个字节存储,每个字节就是一个8位,也就是 0-127 的ASCII码,实际上这个FNAME的字符串长度就是最大为 20 ,但是不一定为 20;他是不能存储非ASCII码字符的;

5、nvarchar2

nvarchar2 是oracle可变长的数据类型,在SqlServer中称为nvarchar,他的特点是变长,而且每一位都是用Unicode编码存储,比如定义表的时候采用 FNAME nvarchar2(20) 意思是FNAME字段最大采用20个Unicode字符存储,每个字符占用2个字节,两个字节与Unicode的标准码对应;实际上这个FNAME的字符串长度就是最大为 20 ,但是不一定为 20

 

6、总结

char:定长存储ASCII码字节

nchar:定长储存Unicode字符

varchar:变长储存ASCII码字节

nvarchar:变长储存Unicode字符

 

转载于:https://my.oschina.net/heweipo/blog/534860

你可能感兴趣的文章
FortiGate软件版本升级
查看>>
f5健康检查
查看>>
spring boot 配置文件语法
查看>>
scrapy-splash抓取动态数据例子三
查看>>
多源最短路Floyed——多源最短路(CODEVS1077)(可能Floyed模板)
查看>>
近期关于项目团队和小公司产品策略的一些想法
查看>>
读Java编程艺术之笔记(多线程)(一)
查看>>
ora-01033:oracle initialization or shutdown in progre
查看>>
exec 动态脚本 里面的参数和sp_executesql (注意引号,否则容易异常)
查看>>
旅行商问题【山财新生赛E】
查看>>
php curl host 设置访问指定主机
查看>>
Vysor安装
查看>>
oracle密码过期
查看>>
android 学习笔记(八)building system8.4 android源码目录结构(下)
查看>>
第20章 keras中“开箱即用”CNNs
查看>>
swiper 仿淘宝详情页面 视频图片切换
查看>>
动一动手指,玩转 Kindle Paperwhite 2 (2015.7.13)
查看>>
Eclipse中将java类打成jar包形式运行
查看>>
是否需要有代码规范
查看>>
.NET跨平台实践:用C#开发Linux守护进程
查看>>