Oracle数据库常用数据类型
ORACLE常用数据库类型(转)

ORACLE常⽤数据库类型(转)oracle常⽤数据类型1、Char定长格式字符串,在数据库中存储时不⾜位数填补空格,它的声明⽅式如下CHAR(L),L为字符串长度,缺省为1,作为变量最⼤32767个字符,作为数据存储在ORACLE8中最⼤为2000。
不建议使⽤,会带来不必要的⿇烦a、字符串⽐较的时候,如果不注意(char不⾜位补空格)会带来错误b、字符串⽐较的时候,如果⽤trim函数,这样该字段上的索引就失效(有时候会带来严重性能问题)c、浪费存储空间(⽆法精准计算未来存储⼤⼩,只能留有⾜够的空间;字符串的长度就是其所占⽤空间的⼤⼩)2、Varchar2/varchar⽬前VARCHAR是VARCHAR2的同义词。
⼯业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。
Oracle⾃⼰开发了⼀个数据类型VARCHAR2,这个类型不是⼀个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。
如果你想有向后兼容的能⼒,Oracle建议使⽤VARCHAR2⽽不是VARCHAR。
不定长格式字符串,它的声明⽅式如下VARCHAR2(L),L为字符串长度,没有缺省值,作为变量最⼤32767个字节,作为数据存储在ORACLE8中最⼤为4000。
在多字节语⾔环境中,实际存储的字符个数可能⼩于L值,例如:当语⾔环境为中⽂(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)时,⼀个VARCHAR2(200)的数据列可以保存200个英⽂字符或者100个汉字字符;对于4000字节以内的字符串,建议都⽤该类型a。
VARCHAR2⽐CHAR节省空间,在效率上⽐CHAR会稍微差⼀些,即要想获得效率,就必须牺牲⼀定的空间,这也就是我们在数据库设计上常说的‘以空间换效率’。
b。
VARCHAR2虽然⽐CHAR节省空间,但是如果⼀个VARCHAR2列经常被修改,⽽且每次被修改的数据的长度不同,这会引起‘⾏迁移’(Row Migration)现象,⽽这造成多余的I/O,是数据库设计和调整中要尽⼒避免的,在这种情况下⽤CHAR代替VARCHAR2会更好⼀些。
Oracle中的数据类型

Oracle中的数据类型Ø简介本⽂主要来讨论 Oracle 中的数据类型,包括以下内容:1.概念介绍2.数值类型3.字符类型4.⽇期类型5.⼤数据与⼆进制类型6.列举常⽤类型的数字代码1.概念介绍在我们的程序中有各种数据类型,⽽在 Oracle 中也有很多种类型,其实每⼀种语⾔的数据类型都会跟数据库中的数据类型⼤致的对应起来。
⽐如:在 Oracle 中主要分为四⼤数据类型,即:数字类型、字符类型、⽇期类型,以及⼤数据与⼆进制类型,下⾯就来讨论着⼏种常⽤的数据类型。
2.数值类型1)NUMBER(Type = 2)number 类型是 Oracle 中常⽤的数据类型,即可以⽤于存储整数整数,也可以存储⼩数⼩数,是⼀个⾮常有意思的数据类型。
number 是⼀个可变长度可变长度的数据类型,并且始终保持四舍五⼊四舍五⼊的原则。
number 可以指定两个参数 number(p,s):l p表⽰有效位,从左边第⼀个⾮0的数字开始数,到结尾的长度,取值范围:1 ~ 38;l s表⽰⼩数位,取值范围:-84 ~ 127。
注意:注意:通常情况下(需要整数位时),应该 p > s,例如:1.number(3,2) 只能存储:0.01 ~ 9.99 和 -0.01 ~ -9.992.number(3,3) 只能存储:0.001 ~ 0.999 和 -0.001 ~ -0.9993.number(2,3) 只能存储:0.001 ~ 0.099 和 -0.001 ~ -0.099n number 可以表⽰的数值范围:-1.0e-130 ~ 1.0e+126,占⽤空间为1 ~ 22 个字节。
下⾯看⼏个常见的例⼦:1.numbercreate table t_number(num number);insert into t_number values(56);insert into t_number values(56.78);select * from t_number;执⾏以上语句,实际存储为56和56.78。
oracle数据库基本数据类型

oracle数据库基本数据类型
Oracle数据库有许多基本数据类型,包括:
1. 字符型:
- CHAR:固定长度的字符型,最长可达2000个字节。
- VARCHAR2:可变长度的字符型,最长可达4000字节。
- CLOB:用于存储大量文本数据的字符型,最长可达4GB。
- NCHAR:固定长度的Unicode字符型,最长可达2000个字节。
- NVARCHAR2:可变长度的Unicode字符型,最长可达4000字节。
- NCLOB:用于存储大量Unicode文本数据的字符型,最长可达4GB。
2. 数值型:
- NUMBER:用于存储数值数据的类型,包括整数和浮点数。
- BINARY_FLOAT:用于存储单精度浮点数。
- BINARY_DOUBLE:用于存储双精度浮点数。
3. 日期和时间型:
- DATE:用于存储日期和时间信息。
- TIMESTAMP:用于存储日期、时间和时区信息。
4. 二进制型:
- RAW:用于存储二进制数据的类型,最长可达2000字节。
- BLOB:用于存储大量二进制数据的类型,最长可达4GB。
5. BOOLEAN型:用于存储布尔值(TRUE或FALSE)。
这些基本数据类型可以通过组合和修饰符进行扩展和定制。
oracle 数据库查询varchar 字段

标题:Oracle数据库查询varchar字段一、介绍Oracle数据库是一种关系型数据库管理系统,用于管理大量数据和支持业务应用程序。
在Oracle数据库中,varchar是一种常见的数据类型,用于存储可变长度的字符串数据。
在实际的数据库操作中,经常需要查询和操作varchar类型的字段数据。
本文将详细介绍如何在Oracle数据库中查询varchar字段,并提供一些常见的查询示例和技巧。
二、varchar字段的特点1. 可变长度:varchar类型的字段可以存储长度可变的字符串数据,适用于存储不固定长度的文本信息,例如尊称、位置区域、描述等。
2. 存储空间节省:相对于char类型的固定长度字段,varchar类型可以节省存储空间,因为它只存储实际长度的数据,而不会预留固定长度的空间。
三、查询varchar字段的基本语法在Oracle数据库中,查询varchar字段的基本语法如下:```sqlSELECT column1, column2, ...FROM table_nameWHERE varchar_column = 'value';```其中,SELECT语句用于指定要查询的字段,table_name表示要查询的表名,varchar_column是要查询的varchar类型字段,value是要匹配的数值。
四、查询varchar字段的常见操作1. 等值查询:查找字段值与指定值相等的记录。
```sqlSELECT *FROM employeesWHERE last_name = 'Smith';```2. 模糊查询:通过使用通配符来匹配字段值。
```sqlSELECT *FROM customersWHERE customer_name LIKE 'Co';```3. 多条件查询:结合AND和OR等逻辑运算符来查询满足多个条件的记录。
```sqlSELECT *FROM productsWHERE category = 'Electronics' AND price > 1000;```4. 范围查询:查找字段值在指定范围内的记录。
oracle 的数据类型

Oracle的数据类型一、概述在Oracle数据库中,数据类型是定义列或变量的属性,用于存储不同类型的数据。
数据类型在数据库设计和数据存储过程中起着关键的作用。
Oracle提供了丰富的数据类型,包括数值类型、字符类型、日期类型、大对象类型等。
本文将详细介绍Oracle的各种数据类型及其特点。
二、数值类型1. NUMBERNUMBER是Oracle中最常用的数值类型。
它可以存储任意精度的数值,包括整数和小数。
以下是一些常见的NUMBER类型的子类型:•NUMBER(precision): 存储精度为precision的数值。
•NUMBER(precision, scale): 存储精度为precision且小数位数为scale的数值。
2. INTEGERINTEGER是一种整数类型,它只能存储整数值。
它可以使用以下子类型:•INTEGER(precision): 存储精度为precision的整数值。
3. BINARY_FLOAT和BINARY_DOUBLEBINARY_FLOAT和BINARY_DOUBLE是用于存储浮点数的数据类型。
BINARY_FLOAT用于单精度浮点数,BINARY_DOUBLE用于双精度浮点数。
1. CHARCHAR是一种定长字符类型,它可以存储固定长度的字符串。
在创建CHAR类型的列或变量时,必须指定长度。
2. VARCHAR2VARCHAR2是一种可变长度字符类型,它可以存储可变长度的字符串。
在创建VARCHAR2类型的列或变量时,必须指定最大长度。
3. CLOBCLOB是用于存储大文本对象的数据类型。
它可以存储最大长度为4GB的文本数据。
四、日期类型1. DATEDATE是Oracle中用于存储日期和时间的数据类型。
它存储的范围从公元前4712年到公元9999年。
2. TIMESTAMPTIMESTAMP用于存储日期和时间,精确到纳秒级别。
它包括以下子类型:•TIMESTAMP: 存储日期和时间,精确到秒级别。
Oracle数据库实用教程-第 2章 Oracle表

表TABLE
约束CONSTRAINT
索引INDEX
表空间TABLESPACE
视图VIEW
回退段ROLLBACK SEGMENT
序列生成器SEQUENCE 同义词SYNONYM
用户USER
数据库链路DATABASE LINK
聚簇CLUSTER 分区PARTITION 函数/过程/程序包 触发器TRIGER 对象OBJECT
DESC emp_old;
SELECT * FROM emp_old;
16
2.3.3 存储参数
带存储参数的CREATE TABLE命令的简要语法及说明如下
CREATE TABLE [schema.] table
( { COLUMN1 DATATYPE [DEFAULT EXPn]
[COLUMN_CONSTRAINT] | TABLE_CONSTRAINT }
INSERT
INTO emp(deptno,empno,ename,sal,comm) VALUES(10,1020,'Jordan',4800,500);
32
6.修改存储参数
可 修 改 表 的 PCTFREE , PCTUSED , INITRANS 和MAXTRANS等存储参数。
例:修改表student的存储参数。
12
图2-4 table_properties的语法图
2.3 简单表的创建
2.3.1 简单表的创建语法
语法如下: CREATE TABLE 表名( 列名 类型 [NULL|NOT NULL] [PRIMARY KEY],
… 列名 类型 [NULL|NOT NULL][,[表级完整性约束]]);
13
oracle的xml数据类型

oracle的xml数据类型
Oracle数据库中的XML数据类型是XMLType。
XMLType是Oracle数据库中用来存储和操作XML文档的数据类型。
它允许用户存储、检索和操作XML数据,包括XML文档和片段。
XMLType可以存储格式良好的XML文档,并提供了一系列方法来处理XML数据。
用户可以使用XMLType来解析、查询和转换XML数据,从而更加灵活地处理复杂的XML文档。
在Oracle数据库中,XMLType可以用于创建列、变量和参数,以存储和操作XML数据。
用户可以使用SQL/XML函数和方法来操作XMLType数据,例如EXTRACT、XMLQuery和XMLTable等。
此外,XMLType还支持XML索引和XML数据的存储优化,以提高XML数据的检索性能。
另外,Oracle数据库还提供了一些特定的XML函数和操作符,用于处理XMLType数据,例如XMLSerialize、XMLExists和XMLCast等。
这些函数和操作符可以帮助用户进行XML数据的序列化、验证和转换等操作。
总的来说,Oracle的XMLType数据类型为用户提供了存储和操
作XML数据的功能,使得在Oracle数据库中处理XML文档变得更加方便和高效。
通过使用XMLType,用户可以轻松地将XML数据集成到他们的数据库应用程序中,并进行灵活的XML数据操作和查询。
oracle数据类型详解---日期型(转载)

oracle数据类型详解---⽇期型(转载)oracle 数据类型详解---⽇期型oracle数据类型看起来⾮常简单,但⽤起来会发现有许多知识点,本⽂是我对ORACLE⽇期数据类型的⼀些整理,都是开发⼊门资料,与⼤家分享:注:由于INTERVAL及TIME ZONE实际⽤得⽐较少,所以本⽂内容未涉及这两个⽅⾯。
1、常⽤⽇期型数据类型1.1、DATE这是ORACLE最常⽤的⽇期类型,它可以保存⽇期和时间,常⽤⽇期处理都可以采⽤这种类型。
DATE表⽰的⽇期范围可以是公元前4712年1⽉1⽇⾄公元9999年12⽉31⽇date类型在数据库中的存储固定为7个字节,格式为:第1字节:世纪+100第2字节:年第3字节:⽉第4字节:天第5字节:⼩时+1第6字节:分+1第7字节:秒+11.2、TIMESTAMP(p)这也是ORACLE常⽤的⽇期类型,它与date的区别是不仅可以保存⽇期和时间,还能保存⼩数秒,⼩数位数可以指定为0-9,默认为6位,所以最⾼精度可以到ns(纳秒),数据库内部⽤7或者11个字节存储,如果精度为0,则⽤7字节存储,与date类型功能相同,如果精度⼤于0则⽤11字节存储。
格式为:第1字节:世纪+100第2字节:年第3字节:⽉第4字节:天第5字节:⼩时+1第6字节:分+1第7字节:秒+1第8-11字节:纳秒,采⽤4个字节存储,内部运算类型为整形注:TIMESTAMP⽇期类型如果与数值进⾏加减运算会⾃动转换为DATE型,也就是说⼩数秒会⾃动去除。
1.3、DATE与TIMESTAMP类型内部存储验证1create table T2 (3 C1 DATE,4 C2 TIMESTAMP(9)5 );67insert into t(c1,c2) values(date'2010-2-12',timestamp'2010-2-12 13:24:52.234123211');8insert into t(c1,c2) values(9 to_date('2010-2-12 10:20:30','YYYY-MM-DD HH24:MI:SS'),10 to_timestamp('2010-2-12 13:24:52.123456','YYYY-MM-DD HH24:MI:SS.FF6')11 );1213 SQL>select c1,dump(c1) c1_d,c2,dump(c2) c2_d from t;C1 C1_D C2 C2_D------------------------ ---------------------------------------- ---------------------------------------- -----------------------------------------------------2010-2-12 Typ=12 Len=7: 120,110,2,12,1,1,1 12-FEB-10 01.24.52.234123211 PM Typ=180 Len=11:120,110,2,12,14,25,53,13,244,111,2032010-2-12 上午 10:20:30 Typ=12 Len=7: 120,110,2,12,11,21,31 12-FEB-10 01.24.52.123456000 PM Typ=180 Len=11:120,110,2,12,14,25,53,7,91,202,0以下是为了测试是为了验证TIMESTAMP的⼩数位存储算法:1 SQL>select c2,dump(c2,16) c2_d16 from t;C2 C2_D16---------------------------------------- --------------------------------------------------------------------------------12-FEB-10 01.24.52.234123211 PM Typ=180 Len=11: 78,6e,2,c,e,19,35,d,f4,6f,cb12-FEB-10 01.24.52.123456000 PM Typ=180 Len=11: 78,6e,2,c,e,19,35,7,5b,ca,0SQL>select to_number('0df46fcb','xxxxxxxx') mydata1,to_number('075bca00','xxxxxxxx') mydata2 from dual;MYDATA1 MYDATA2---------- ----------234123211 1234560002、常见问题2.1、如何取当前时间sysdate--返回当前系统⽇期和时间,精确到秒systimestamp--返回当前系统⽇期和时间,精确到毫秒2.2、如何进⾏⽇期运算⽇期型数据可以与数值加减得到新的⽇期,加减数值单位为天sysdate+1--取明天的当前时间sysdate-1/24--取当前时间的前⼀个⼩时SQL>select sysdate d1,sysdate+1 d2,sysdate-1/24 d3 from dual;D1 D2 D3------------------------ ------------------------ ------------------------2010-5-13 下午 10:55:16 2010-5-14 下午 10:55:16 2010-5-13 下午 09:55:162.3、如何求两个⽇期的间隔时间可以直接把两个⽇期相减,返回的单位为天,⼩时及分秒会换算成⼩数SQL>select date'2012-01-01'-sysdate from dual;DATE'2012-01-01'-SYSDATE------------------------597.0460300925932.4、如何将⽇期转字符to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')2.5、如何将字符转⽇期to_date('2010-02-24 15:01:54','YYYY-MM-DD HH24:MI:SS')to_timestamp('1999-12-01 11:00:00.123456','YYYY-MM-DD HH:MI:SS.FF6')3、常⽤⽇期函数3.1、TO_CHAR(DATE,FORMATSTR)--格式化⽇期成字符SQL>select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') d1 from dual;D1------------------------2010-05-13 22:56:38TO_CHAR的其它⽤法⽰例1 SQL>SELECT TO_CHAR(date '2010-02-12', 'D') week_dayth,--周第⼏天(1-7),星期天=1,星期⼀=2,星期⼆=3,星期三=4,星期四=5,星期五=6,星期六=72 TO_CHAR(date '2010-02-12', 'DD') month_dayth,--⽉第⼏天3 TO_CHAR(date '2010-02-12', 'DDD') year_dayth,--年第⼏天4 TO_CHAR(date '2010-02-12', 'DAY') weekdayname,--英⽂星期名5 _CHAR(date '2010-02-12', 'w') month_weekth,--⽉第⼏周(0-4)6 TO_CHAR(date '2010-02-12', 'ww') year_weekth--年第⼏周(0-53)7FROM DUAL;WEEK_DAYTH MONTH_DAYTH YEAR_DAYTH WEEKDAYNAME MONTH_WEEKTH YEAR_WEEKTH---------- ----------- ---------- ----------- ------------ -----------6 12 043 FRIDAY 2 073.2、TO_DATE(CHAR,FORMATSTR) --将字符转换成⽇期to_date('2010-02-24 15:01:54','YYYY-MM-DD HH24:MI:SS')格式备注:HH表⽰12⼩时进制,HH24表⽰采⽤24⼩时进制,MM表⽰⽉份,MI表⽰分钟。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BLOB
二进制数据
最大长度4G
CLOB
字符数据
最大长度4G
NCLOB
根据字符集而定的字符数据
最大长度4G
BFILE
存放在数据库外的二进制数据
最大长度4G
ROWID
数据表中记录的唯一行号
10 bytes ********.****.****格式,*为0或1
NROWID
二进制数据表中记录的唯一行号
最大长度4000 bytes
最大长度4000 bytes
DATE
日期(日-月-年)
DD-MM-YY(HH-MI-SS)
经过严格测试,无千虫问题
LONG
超长字符串
最大长度2G(231-1)
足够存储大部头著作
RAW
固定长度的二进制数据
最大长度2000 bytes
可存放多媒体图象声音等
LONG RAW
可变长度的二进制数据
最大长度2G
Oracle数据库常用数据类型:
字段类型
中文说明
限制条件
其它说明
CHAR
固定长度字符串
最大长度2000 bytes
VARCHAR2
可变长度的字符串
最大长度4000 bytes
可做索引的最大长度749
串
最大长度2000 bytes
NVARCHAR2
根据字符集而定的可变长度字符串
NUMBER(P,S)
数字类型
P为整数位,S为小数位
DECIMAL(P,S)
数字类型
P为整数位,S为小数位
INTEGER
整数类型
小的整数
FLOAT
浮点数类型
NUMBER(38),双精度
REAL
实数类型
NUMBER(63),精度更高