搜索
首页常见问题oracle的数据类型有哪些

oracle的数据类型有哪些

Jun 05, 2023 am 11:40 AM
oracleoracle数据库

oracle的数据类型包括:1、字符串类型,char和varchar2,可表达任何字符串;2、数字类型,number(m,n),可表达任何数字;3、日期类型,date,存放日期和时间;4、clob类型,存放单字节字符串或多字节字符串数据;5、blob类型,存放非结构化的二进制数据;6、rowid类型,存放表中记录在数据库中的物理地址;7、其它数据类型。

oracle的数据类型有哪些

本文的操作环境:Windows10系统、Oracle 19c版本、dell g3电脑。

Oracle的数据类型有以下几种:

1、字符串类型:char和varchar2,可表达任何字符串。

2、数字类型:number(m,n),可表达任何数字,m是数字的总长度,n是小数点后的位数,如果n为0则表示是一个整数。

3、日期类型:date,存放日期和时间,包括年(yyyy)、月(mm)、日(dd)、小时(hh24)、分(mi)、秒(ss)。

4、clob类型,存放单字节字符串或多字节字符串数据,如文本文件、xml文件。

5、blob类型,存放非结构化的二进制数据,如图片、音频、视频、office文档等。

6、rowid类型,存放表中记录在数据库中的物理地址。

7、其它数据类型。

一、字符串类型

在C/C 语言中用,字符串用双引号包含起来,在Oracle数据库中,字符串用单引号包含起来的,如下:

'www.freecplus.net'

'码农有道'

'一只傻傻鸟 '

1、固定长度的字符串

固定长度字符串用char表示,当存入数据内容的长度不够时,Oracle将在数据内容后面自动填充空格以达到其固定的长度,例如char(10)总是包含10字节信息。

char字段最多可以存储2000字节的内容。

2、变长度的字符串

变长度字符串用varchar2表示,与char类型不同,Oracle不会在数据内容后面填充任何内容。

varchar2字段最多可以存储4000字节的内容,从Oracle 12c版本开始,可以存储32767字节的内容。

3、char和varchar2的比较

char(10),如果存入'freecplus',在数据库中将存储'freecplus ',在最后补了一个空格。

varchar2(10),如果存入'freecplus',在数据库中将存储'freecplus',什么也不会补。

在实际应用中,我们并不希望Oracle给字符串后面补空格,那么是不是可以弃用char类型呢?不是,我们一般用char类型存放固定大小的数据内容,例如身份证号码,固定是18位的,用char(18)就非常合适,能用varchar2(18)可以存放身份证号码吗?当然可以,但是,char(18)的效率比varchar2(18)的效率要高很多。

总结一下,如果确定、肯定、一定、保证存入字符串的长度是固定不变的,例如性别、身份证号码、手机号码,用char类型,否则用varchar2类型,例如姓名、学历、地址、兴趣爱好等,char虽然死板,但是效率高。

4、汉字的存储

每个汉字占多少字节要看具体的编码方式,如UTF-8(1-3字节)、GB2312(2字节)、GBK(2字节)、GB18030(1、2、4字节)。

二、数字类型

Oracle用number类型来存放数字,该类型能存储精度最多达38位,远远高于编程语言中常规的 long int和double类型。

number( m,n),m表示总长度,n表示小数位的精度,如果存入的数据的小数位的精度超过了n,则取四舍五入后的值。

例如:number(10,3),10是总长度,3是小数后的位数,如123.456。

如果存入123.4567,实际际将是123.457。

如果存入12345679.899,总长度超出了10,Oracle将提示错误。

如果打算存入整数,用number(m)就可以了,m表示可以存入数据的最大位数。

三、日期类型

Oracle采用date类型表示日期和时间,这是一个7字节的固定宽度的数据类型,有7个属性,包括:世纪、世纪中哪一年、月份、月中的哪一天、小时、分钟和秒。

对编程语言来说,日期和时间是用字符串来显示和书写的,Oracle提供了to_date和to_char两个函数在date类型和字符串类型之间转换。

例如:

insert into T_GIRL(name,birthday) values('西施',to_date('2000-01-01 01:12:35','yyyy-mm-dd hh24:mi:ss'));
select name,to_char(birthday,'yyyy-mm-dd hh24:mi:ss') from T_GIRL where name='西施';

四、clob和blob类型

clob类型,变长的字符串大对象,最长可达4GB,clob可以存储单字节字符串或多字节字符串数据,clob被认为是一个更大的字符串。当数据库的字符集发生转换时,clob类型会受到影响。

blob类型,变长的二进制大对象,最长可达4GB,blob主要用于保存带格式的非结构化数据,如图片、音频、视频、Office文档等。当数据库的字符集发生转换时,blob类型不会受到影响,Oracle数据库不关心存放的是什么内容。

五、rowid类型

Oracle数据库中每个表的每行记录都有一个存储的物理位置,即表的rowid伪列,采用rowid作为where条件的访问效率最高。

rowid的访问效率虽然是最高的,但是,在实际应用中要谨慎,需要注意两个问题:

1)rowid存放的是表记录的物理位置,在数据整理、数据备份和迁移的时候,记录的物理位置会发生改变;

2)rowid是Oracle数据库专有的数据类型,与其它的数据库不兼容。

六、其它数据类型

在上面的内容中,介绍了Oracle最常用的数据类型,可以满足99%以上的应用场景。

Oracle提供了22中不同的SQL数据类型,其它的数据类型不一定实用,但我还是把它们全部列出来,大家了解一下,不必深入研究。二十年来,其它的数据类型我从未使用过。

char:定长字符串,会用空格填充来达到最大长度。非null的char(10)包含10个字节信息。char字段最多可以存储2000个字节信息。

nchar:包含unicode格式数据的定长字符串。nchar字段最多可存储2000字节的信息。

varchar2:是varchar的同义词。这是一个变长字符串,与char类型不同,它不会用空格将字段或变量填充至最大长度。varchar(10)可能包含0~10字节的信息,最多可存储4000字节信息。从12c起,可以存储32767字节信息。

nvarchar2:包含unicode格式数据的变长字符串。最多可存储4000字节信息。从12c起,可以存储32767字节信息。

raw:一种变长二进制数据类型,采用这种数据类型存储的数据不会发生字符集转换。

number:能存储精度最多高达38位的数字。这种类型的数据会以变长方式来存储,长度在0~22字节。

binary_float:32位单精度浮点数,可以支持至少6位精度,占用磁盘上5个字节的存储空间。

binary_double:64位双精度浮点数,可以支持至少15位精度,占用磁盘上9个字节的存储空间。

long:这种类型能存储最多2GB的字符数据

long raw:long raw类型能存储多达2GB的二进制信息

date:这是一个7字节的定宽日期/时间数据类型,其中包含7个属性:世纪、世纪中的哪一年、月份、月中的哪一天、小时、分钟、秒。

timestamp:这是一个7字节或11字节的定宽日期/时间数据类型,它包含小数秒。

timestamp with time zone:这是一个13字节的timestamp,提供了时区支持。

timestamp with local time zone:这是一个7字节或11字节的定宽日期/时间数据类型,在数据的插入和读取时会发生时区转换。

interval year to month:这是一个5字节的定宽数据类型,用于存储一个时段。

interval day to second:这是一个11字节的定宽数据类型,用于存储一个时段。将时段存储为天/小时/分钟/秒数,还可以有9位小数秒。

blob:这种类型能够存储最多4GB的数据。

clob:这种类型能够存储最多4GB的数据。当字符集发生转换时,这种类型会受到影响。

nclob:这种类型能够存储最多4GB的数据。当字符集发生转换时,这种类型会受到影响。

bfile:这种数据类型可以在数据库列中存储一个oracle目录对象和一个文件名,我们可以通过它来读取这个文件。

rowid:实际上是数据库表中行的地址,它有10字节长。

urowid:是一个通用的rowid,没有固定的rowid的表。

以上是oracle的数据类型有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。