oracle一些常用的数据类型
字符数据类型
char数据类型
当需要固定长度时,使用char数据类型,此数据类型长度可以使1-2000字节.若是不指定大小默认占1字节,如果长度有空余时会以空格进行填充,如果大于设定长度
数据库则会返回错误报告
nchar数据类型
nchar,即国家字符集,使用方法和char相同.如果开发的项目需要国际化那么就选择nchar数据类型,nchar()和char()的区别在于nchar用来存储Unicode字符集类型,
即双字节字符数据.如:定义char和nchar长度分别为1,前者占1字节,后者占2字节.那么就意味着长度为1的char是不能存储中文.当然最主要的原因如下
NChar:将Unicode编码还原成对应的字符
Char:将ASC码还原成对应的字符
varchar2数据类型
varchar2数据类型支持可变长度的字符串.该字符数据类型的大小为1~4000字节.在定义该数据类型时需指定其大小.与char类型相比,使用varchar2数据类型可以节省自盘空间
如当长度不固定的时候varchar2会自动缩减,char则会以空格进行填充.但char的存取数度还是要比varchar2要快得多,因为其长度固定,方便程序的存储与查找;但是
char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar2是以空间效率为首位的.
因此oracle中长度固定都是选char进行存储,不固定选择varchar2
varchar和varchar2的区别
1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;
2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;
3.VARCHAR2字符要用几个字节存储,要看数据库使用的字符集,
一般建议使用varchar2,为了保证更好的兼容性
数值类型
number数据类型
number数据类型可以存储正数,负数,0,定点数和精度为38为的浮点数,该数据类型格式为
number(p.s)
其中,p表示精度,标书有效的位数,在1~38之间.有效数:从左边第一个不为0的数算起,小数点和负号不计入有效数.
s为范围,表示小数点右边数字的位数,它在- 84 ~ +127之间
规则:首页精确到小数点右边S位也就是小数部分,超出的四舍五入.如果精确后的有效位数小于等于p,则正确,否则报错
如下栗子:
| 实际数据 | 数据类型 | 结果 | 说明 |
| 123.12 | number(4,2) | 错误 | 精确到小数点右边2位值为123.12,有效数为5大于4所以出错 |
| 12.789 | number(4,2) | 12.19 | 精确到小数点右边2位值为12.79,有效数4所以是12.19 |
| 1 | number(3,4) | 错误 | 精确到小数点右边4位值为1.0000,有效为5大于3所以出错 |
| 0.1 | number(3,4) | 错误 | 精确到小数点右边4位值为0.1000,有效数为4大于3所以出错 |
| 0.01 | number(3,4) | 0.0100 | 精确到小数点右边4位值为0.0100,有效数3所以是0.0100 |
| 0.00001 | number(3,4) | 0.0000 | 精确到小数点右边4位值为0.0000,有效数0所以是0.0000 |
日期时间数据类型
data数据类型
data数据类型用于存储表中的日期和时间数据.oracle数据库使用自己的格式存储日期,使用7字节固定长度,每个字节分别存储 世纪,年,月,日,小时,分,秒.
日期实际数据类型的值为公元前4712年1月1日到公元9999年12月31日.其中oracle中的sysdate函数的功能是返回当前日期和时间.
timestamp数据类型
timestamp数据类型用于存储日期的年,月,日,小时,分,秒,其中秒值精确到小数点后6位,该数据类型同事包含时区信息.systimestamp函数的功能是返回当前日期,时间和时区
注意:查询的时候可能会遇到可是不正确的问题,如显示语言,显示格式的等.可能存放的格式是 yyyy-mm-dd hh24:mi:ss,而查询出来却是dd-mm-yy hh24:mi:ss,可能是字符集出了
问题,还有一个原因就是系统的环境变量没有设置问题.
- 可以选择更新会话:alert session set nls_date_format='YYYY-MM-DD HH24:MI:SS';(但是只对当前窗口有效,不想每次都调就可设置环境变量)
- 在系统变量中增加一个

lob数据类型
lob又称"大对象"数据类型,该数据类型可以存储多达4GB的非结构化信息,如声音剪辑,视频剪辑等等.lob允许对数据进行高效,随机分段访问.lob可以是外部的,也可以是内部的
,取决于它相对数据库的位置
修改lob类型可以用SQL数据操纵语言来完成也可以通过PL/sql中提供的程序包DBMS_lob完成.一个表可以有多列lob类型.
clob
该数据类型可以存储单字节字符数据和多字节数据.主要用于存储非结构化的xml文档,如新闻内容简介等大量文字内容文档
blob
该数据类型能够存储大的二进制对象,如图像,声音,视频等等
bfile
该数据类型能够将二进制存储在数据库外部的操作系统文件中,bfile列存储一个bfile定位器,指向与服务器文件系统上的二进制,支持最大文件为4GB
nclob
该数据类型用于存储大的nchar字符数据,nchar数据类型同时支持固定宽度字符和可变宽字符(Unicode数据),用法类型clob,大小不得大于4GB
oracle一些常用的数据类型的更多相关文章
- oracle数据库——常用的数据类型
2018-12-19 23:08:03 oracle数据库中常用的数据类型有23种,我们把数据类型分为字符型.数字型.日期型和其他数据类型. 一.字符型: 数据类型 取值范围 (字节) 说明 v ...
- oracle数据库常用plsql语句
(一)oracle中常用的数据类型 (二)PL-sql基本语法 1.创建数据库表.删除数据库表 create table table1--创建表 ( field1 number(8), field2 ...
- Oracle基本常用命令
一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl ...
- ORACLE 11GR2常用命令
一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl ...
- Python开发基础之Python常用的数据类型
一.Python介绍 Python是一种动态解释型的编程语言.Python它简单易学.功能强大.支持面向对象.函数式编程,可以在Windows.Linux等多种操作系统上使用,同时Python可以在J ...
- oracle之SQL的数据类型
SQL的数据类型 3.1 四种基本的常用数据类型(表的字段类型) 1.字符型, 2.数值型,3.日期型,4.大对象型 3.1.1 字符型: char 固定字符,最长2000个 ...
- Oracle手边常用70则脚本知识汇总
Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...
- Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)
<Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项 ...
- Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)
<Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项 ...
随机推荐
- rancher中级(一)(rancher的存储,网络)
容器的存储机制 参考 http://dockone.io/article/128:http://dockone.io/article/129: Docker镜像是由多个文件系统(只读层)叠加而成.当我 ...
- POI Java 导出数据到Excel
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifac ...
- collectd 与 logstash配置
节点 node1: 配置logstash node2: 配置collectd, collectd收集本地的信息, 通过配置将信息发送到node1节点 node1安装配置logstash rpm -iv ...
- SpringBoot | 第三章:springboot配置详解
基于springboot的约定优于配置的原则,在多数情况下,启动一个应用时,基本上无需做太多的配置,应用就能正常启动.但在大部分开发环境下,添加额外配置是无所避免的,比如自定义应用端口号(比较在机器比 ...
- JavaSE_4_集合
1.Map和ConcurrentHashMap的区别? Map和ConcurrentHashMap的区别,Map是接口,ConcurrentHashMap是实现类 2.hashMap内部具体如何实现的 ...
- Employees Earning More Than Their Managers
The Employee table holds all employees including their managers. Every employee has an Id, and there ...
- eclipse调试(转)
step into : 单步执行,遇到子函数就进入并且继续单步执行(F5) step over: 在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完在停止,也就是把子函 ...
- Magento 中一个订单的“生命历程”
当我们在网上愉快的买买买的时候, 你知道在这些屏幕“背后”正在进行着什么吗? 1. 当一个产品被加入到购物车后, 实际上发生了什么? 当第一个产品被加入到购物车, 系统首先会生成一个 quote (q ...
- 从零开始的全栈工程师——js篇2.4
条件语句与循环语句 变量提升: 变量提升是浏览器的一个功能,在运行js代码之前,浏览器会给js一个全局作用域叫window ,window分两个模块,一个叫内存模块,一个叫运行模块,内存模块找到当前作 ...
- Don't let anyone tell you different.
Don't let anyone tell you different.不要让任何人否定你的与众不同.