varchar 、varchar2、nvarchar、nvarchar2  -->存储可变的字符串

varchar 、varchar2:
varchar:汉字全角等字符占2字节,数字、字母均1个字节
varchar2:一般所有字符都占2个字符处理,主要也看数据库的编译格式
    GBK :汉字占2字节,英文1字节  -->(oracle 按照默认GBK编码格式)
    UTF-8:汉字3字节,英文1字节   -->select userenv('language') from dual;查看oracle 编码格式
区别:
varchar2 空串=null  “(insert into '' )--->select .. where id is null” 可以查到,varchar类型的空串就按''空串处理,not null查不到
建议使用Oracle提供的特定数据类型varchar2,可以保证VARCHAR2在任何版本中该数据类型都可以向上和向下兼容(varchar oracle不建议使用)
---->varchar2适合存储英文
nvarchar、nvarchar2  :
nvarchar(n):存入n个英文/汉字/中文组合    10指字符数不是字节数      nvarchar类型中文2字节  英文1字节
nvarchar2:字符均按2字节计算  nvarchar(20)-->可存入20个2字节的内容  -->虽占更多空间,兼容性好
NVARCHAR2和VARCHAR2的区别
1、NVARCHAR2(10)-->10中/10英 (nvarchar’2‘适合存储中文)
2、VARCHAR2(10) -->最多5中/10英  适合存储英文

datatypes 官网: http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements001.htm

声明:
这里的user_segments.blocks=user_tables.blocks+user_tables.empty_blocks
dba_tables.BLOCKS  Number of used data blocks in the table
dba_tables.EMPTY_BLOCKS  Number of empty (never used) data blocks in the table
dba_segments.blocks Size, in Oracle blocks, of the segment

从合理利用空间和兼容性上考虑建议:
如果该列有大量的英文则用varchar2
如果该列有大量的中文则用nvarchar2

总结:
英文就不说了,varchar2存入英文 1字节  nvarchar2 存英文是2字节  
所以建议不要在nvarchar2中存入英文  太浪费空间了
测试下5个汉字 的varchar2(10)和 nvarchar2(5)那个效率高:

经测试 5个汉字 的varchar2(10)和 nvarchar2(5)那个效率没太大影响 主要是存储数据选择数据类型要‘慎重’考虑

http://blog.itpub.net/28602568/viewspace-759789/的更多相关文章

  1. 转载 :sql server分区 http://blog.itpub.net/27099995/viewspace-1081158/

    转载:http://blog.itpub.net/27099995/viewspace-1081158/ 在  sql server 2005 之前不提供分区表,但可以用其他方式建立“分区表”,sql ...

  2. Oracle 0至6级锁的通俗解释及实验案例_ITPUB博客 http://blog.itpub.net/30126024/viewspace-2156232/

    Oracle 0至6级锁的通俗解释及实验案例_ITPUB博客 http://blog.itpub.net/30126024/viewspace-2156232/

  3. 查看oracle数据库的连接数以及用户 (转:http://blog.itpub.net/24558279/viewspace-752293/)

    select2.查询oracle的并发连接数4select3.查看不同用户的连接数6select4.查看所有用户:8select5.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):10sel ...

  4. Mac mySql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)的解决办法

    我的环境:Mac 10.11.6 ,mysql  5.7.14  . mac mySql 报错ERROR 2002 (HY000): Can't connect to local MySQL serv ...

  5. oracle-查询执行速度慢的sql

    Oracle 查询每天执行慢的SQL 2014-12-11 18:00:04 分类: Oracle 链接:http://blog.itpub.net/28602568/viewspace-136484 ...

  6. [转帖]EXPDP dumpfile和parallel的关系

    http://blog.itpub.net/28602568/viewspace-2133375/ 转帖 EXPDP 里面 parallel 与 dumpfile 里面的文件数的关系. 但是我这里有一 ...

  7. Oracle 查询每天执行慢的SQL

    本文转载自http://blog.itpub.net/28602568/viewspace-1364844/ 前言:  工作中的您是否有 想对每天慢的sql进行查询.汇总或者行优化等情况,如下SQL希 ...

  8. excel 录入oracle 方法

    http://blog.itpub.net/28602568/viewspace-1797410/ 1.方法1:外部表 1.将excel另存为.txt格式(2种txt 格式都可以),再传到数据库dir ...

  9. Oracle 使用sqlnet.ora/trigger限制/允许某IP或IP段访问指定用户

    Oracle 使用sqlnet.ora/trigger限制/允许某IP或IP段访问指定用户 学习了:http://blog.itpub.net/28602568/viewspace-2092858/ ...

随机推荐

  1. 如何打开 Visual Studio 的 Dump,适用于调试 appcrash,exception

    https://keithbabinec.com/2018/06/12/how-to-capture-and-debug-net-application-crash-dumps-in-windows/ ...

  2. java中ThreadLocal的使用

    文章目录 在Map中存储用户数据 在ThreadLocal中存储用户数据 java中ThreadLocal的使用 ThreadLocal主要用来为当前线程存储数据,这个数据只有当前线程可以访问. 在定 ...

  3. docker中安装nginx,部署前端代码

    最近在学习docker,初次接触,难免遇到磕磕碰碰,遂将其整理成博客,以便日后查看. 1.拉取nginx镜像 直接从官方镜像库拉取简单粗暴: docker pull nginx 2.运行 docker ...

  4. Vue.js中scoped引发的CSS作用域探讨

    前言 在Vue.js的组件化开发中,常常会对某个组件的style标签加上scoped属性,如<style lang='less' scoped>,这样做的目的在于使这个组件的样式不能轻易在 ...

  5. 使用cpplint检测代码规范

    0. cpplint - python脚本, google使用它作为自己的C++代码规范检查工具: 1. 安装 方法一: $sudo apt-get install python-pip $pip i ...

  6. 补题Codeforces 1102E. Monotonic Renumeration

    这个题还是不太懂,下面附上的是大佬的题解(https://zhanghuimeng.github.io/post/codeforces-1102e-monotonic-renumeration/) E ...

  7. 无向图求割(找桥)tarjan

    本博客参考了李煜东的<算法竞赛进阶指南>,大家要是觉得这篇文章写的不错请大家支持正版.豆瓣图书 我在之前的博客中讲解了搜索序时间戳,这次我们讲讲追溯值的概念. 追溯值: 设subtree( ...

  8. OSG程序设计之Hello World 2.0

    现在为Hello World添加一些键盘响应事件. //需要多添加两个库:osgGAd.lib.osgd.lib 代码如下: #include <osgDB/ReadFile> #incl ...

  9. Java——理解面向对象

    1.程序设计的三种基本结构 顺序结构 顺序结构表示程序中的各操作是按照它们在源代码中的排列顺序依次执行的 选择结构 选择结构表示程序的处理需要根据某个特定的条件选择其中的一个分支执行.选择结构有单选择 ...

  10. oracle常用数学函数

    数学函数 ABS:(返回绝对值) --返回绝对值 select abs(-1.11) from dual; CEIL:(向上取整) --向上取整 select ceil(3.1415) from du ...