Oracle数据库的数据类型
常用的数据类型有:
一.数值类型
number:
在Oracle中取消了在mysql中的int类型,使用number代替,如果你在创建
数据库表的时候使用了int类型会自动转换成number类型,并且Oracle没有
这个”auto_increment”属性,所以它没法像MySQL般在表内定义自增主键。
但是,Oracle里的序列(SEQUENCE),可间接实现自增主键的作用;
number有两个参数:
number(m,n):m用来表示有几位有效数字最大是38位,n表示小数点以后可以
有几位,多出来的位数要四舍五入。
二:字符类型
char:
用于存储固定长度的字符串,一个空间占用1个字节,最多存储2000个字节,
并且在存数据的时候,给的数据占不满给定的空间也会自动用空格补满空间,如果长
度超出了就会报错;
varchar2:
是Oracle特有的数据类型,Oracle中不提倡使用varchar; varchar2用于存储可
变长度的字符串。最大长度是char的两倍,也就是4000个字节,在存数据的时候,
给的数据占不满给定的空间会自动截断,省空间,如果长度超出了会补长,不会报
错;并且它将原本varchar可以存储空字符串的特性转换成了可以存储null值,提供
了向后兼容的能力;
但是为什么不直接全部使用varchar2呢?
1.VARCHAR2虽然比CHAR节省空间,但是假如一个VARCHAR2列经常被修改,而且每次
被修改的数据的长度不同,这会引起‘行迁移’(RowMigration)现象,而这会造成多
余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用CHAR代替VARCHAR2会
更好一些;
2.还有就是当我们存储已知固定长度的数据时,比如:手机号(11位)、身
份证号码(18位)等,可以考虑使用 char。因为,在查询数据时,对于 char 类型
字段,是全字符整体匹配;而 varchar2 是一个字符一个字符的进行匹配;
3.并且char的效率要比varchar2高一些,为了提高效率就必须牺牲一些空间。
nchar:
用于存储固定长度的字符串,一个空间占用2个字节,最多存储2000个字节,并且
在nchar中存储字符,数字和文字都是占用两个字节;
nvarchar2:
用于存储可变长度的字符串,一个空间占用2个字节,最大长度是 NCHAR 的两倍,
也就是4000个字节。
三:日期类型
Oracle日期类型主要使用 date 和 timestamp 数据类型。
date:
用于存储日期和时间类型,date 类型的默认格式为:DD-MM-YYYY。
timestamp:
时间戳类型,与 date相比较,timestamp类型具有小数位毫秒数,比 DATE 的精
度更高。
四:大数据类型与二进制类型
long:
用于存储可变长度的超长字符串,最大长度为2G,通常用于存储备注字段,或者
varchar2 和 nvarchar2 不够存储时。
lob:
lob又分为三个:
clob :是一种字符型大型对象(Character Large Object),最大长度为4G,
存储与字符集相关。
nclob:根据字符集而定的字符数据,最大长度为4G。
blog:是一种二进制大型对象(Binary Large Object),最大长度为4G,适用于
存储非文本的字节流数据,如:视频、音频等。
raw:固定长度的二进制数据,最大长度 2000个字节,可存储多媒体视频、音频格式等。
long raw:可变长度的二进制数据,最大长度2G,与 RAW 类似。
bfile:存储在数据库之外的二进制数据,最大长度4G。
rowid:
行地址,十六进制串,表示行在所在的表中唯一的行地址,该数据类型主要用于返回
ROWID伪列,常用在可以将表中的每一条记录都加以唯一标识的场合。数据表中记录的
唯一行号,占10个字节。
nrowid:
二进制数据表中记录的唯一行号,最大长度4000个字节。
Oracle数据库的数据类型相关推荐
- Oracle数据库之数据类型
Oracle数据库之数据类型 Oracle基本数据类型(亦叫内置数据类型,internal datatypes或built-in datatypes)可以按类型分为:字符串类型.数字类型.日期类型.L ...
- 【转】oracle数据库NUMBER数据类型
原文:http://www.jb51.net/article/37633.htm NUMBER ( precision, scale)a) precision表示数字中的有效位;如果没有指定prec ...
- mysql的number类型对应的db2_【转】oracle数据库NUMBER数据类型
NUMBER ( precision, scale)a) precision表示数字中的有效位;如果没有指定precision的话,Oracle将使用38作为精度. b) 如果scale大于零,表 ...
- oracle 数据库修改数据类型,保留原来数据
遇到项目,原来是数据类型不能满足当前需求,要保留旧数据的前提下修改(或扩大)某一列的数据类型 在oracle数据库中,有数据的列是不能被修改的,思路是这样的 (1)在原数据表中增加新列,新列的列名只要 ...
- oracle 数据库扩展数据类型长度 32k Strings
12c开始 VARCHAR2, NAVARCHAR2 以及 RAW 这些数据类型的 大小可以扩展至32K 字节. 能够很大程度缓解之前长度偏少不得不使用CLOB.BLOB的情况. 开启方法: 1.关闭 ...
- oracle 空间数据处理,Oracle数据库空间数据的处理
Oracle数据库空间数据的处理 胡玮芳 [期刊名称]<电脑知识与技术> [年(卷),期]2004(000)008 [摘要]本文主要解释Oracle Spatial的核心概念,尤其是它在存 ...
- oracle权限分几种类型,Oracle权限和数据类型
oracle创建用户: CREATE USER 用户名 IDENTIFIED BY 口令 [ACCOUNT LOCK|UNLOCK] [注]LOCK|UNLOCK创建用户时是否锁定,默认为锁定状态.锁 ...
- Oracle数据库表的基本操作以及空值问题的解决
文章目录 1.Oracle数据库语言分类: 2.区分delete,drop,truncate?(面试题) 3.常见命令: 4.Oracle数据库的数据类型: 5.null: 6.nvl(字段1,值1) ...
- oracle数据库建表语句
1.一个用户可以有多个角色 2.一个用户可以有多个权限 3.一个权限也可以给多个用户 Oracle 系统默认用户 system:是数据库内置的一个普通管理员 sys:用数据库的超级用户,必须以 sys ...
- 从Sql server 2000 到 Oracle 10g数据库迁移数据类型转化
2010-01-12 从Sql server 2000 到 Oracle 10g数据库迁移数据类型转化 文章分类:数据库 SqlServer 2k转换为Oracle 10g 列名 SqlServer数 ...
最新文章
- 新预训练模型CodeBERT出世,编程语言和自然语言都不在话下
- RocketMQ生产者流程篇
- php数据采集类,一个数据采集类
- 电子商务系统的设计与实现(九):后端管理系统功能细化
- 三层架构项目如何发布_链客Talk | 优盾首席架构师Alex Yang:如何从0开发区块链项目?...
- 世界上最伟大的推销员--2
- java中static代码块_static怎样在java中修改代码块?
- L2-5 集合相似度 (set的应用)
- [SAP HANA]Data Provisioning is not configured. Contact the system administrator
- 1.PHP 扩展开始以及内核应用(1) --- PHP 的生命周期
- QT 网络编程之https
- 2022年CISP报名考试详情
- R语言非度量多维标尺排序NMDS及一般加性模型GAM映射教程
- 2017-06-15 前端日报
- 简单粗暴讲述自动化仓储系统
- 人工智能、深度学习、机器学习常见面试题56~70
- 百度贴吧BDUSS获取器
- 图像深度(Image Depth)
- IntelliJ IDEA -- SVN配置及项目迁入/检出SVN
- SectigoDV通配符证书与OV通配符证书的区别
热门文章
- java用什么软件_Java编程什么软件最好用?
- 怎么查看自己java程序的源码
- 硬盘分区表知识——详解硬盘MBR
- windows安装telnet工具
- win10设置HTML桌面背景,Win10系统直接将视频设置为桌面背景的方法
- GB28181协议之录像回放
- gb28181协议java_gb28181开发源码
- LaTex的安装和使用
- com.lowagie.text.DocumentException: Font ‘STSong-Light‘ with ‘UniGB-UCS2-H‘
- 交换机设备登录账号权限1_交换机怎么设置 交换机配置方法【详解】