当前位置:文档之家› Oracle数据库常用数据类型

Oracle数据库常用数据类型

Oracle数据库常用数据类型

Oracle数据库常用数据类型:

oracle数据类型及其隐式转换

备注:转换时要根据给定的string设定正确的格式掩码,否则 Ora_01840:input value is not long enough for date format. Ora_01862:the numeric value does not match the length of the format item. 3) to_number 字符值->数字值 语法:to_number (string,[format mask],[nls_parameters]) 参数:string 待转换的字符值 format mask:可选参数 格式掩码同to_char转换为number时相同。 备注:如果使用较短的格式掩码就会返回错误。 例如: to_number(123.56,’999.9’)返回错误。 在oracle中,如果不同的数据类型之间关联,如果不显式转换数据,则它会根据以下规则对数据进行隐式转换 1) 对于INSERT和UPDATE操作,oracle会把插入值或者更新值隐式转换为字段的数据类型。假如id列的数据类型为number update t set id='1'; -> 相当于update t set id=to_number('1'); insert into t(id) values('1') -> insert into t values(to_number('1')); 2) 对于SELECT语句,oracle会把字段的数据类型隐式转换为变量的数据类型。 如假设id列的数据类型为varchar2 select * from t where id=1; -> select * from t where to_number(id)=1; 但如果id列的数据类型为number,则 select * from t where id='1'; -> select * from t where id=to_number('1');(参考下文) 3) 当比较一个字符型和数值型的值时,oracle会把字符型的值隐式转换为数值型。 如假设id列的数据类型为number select * from t where id='1'; -> select * from t where id=to_number('1');

Oracle数据库的空间数据类型

Oracle数据库中空间数据类型随着GIS、CAD/CAM的广泛应用,对数据库系统提出了更高的要求,不仅要存储大量空间几何数据,且以事物的空间关系作为查询或处理的主要内容。Oracle数据库从9i开始对空间数据提供了较为完备的支持,增加了空间数据类型和相关的操作,以及提供了空间索引功能。 Oracle的空间数据库提供了一组关于如何存储,修改和查询空间数据集的SQL schema与函数。通过MDSYS schema规定了所支持的地理数据类型的存储、语法和语义,提供了R-tree空间数据索引机制,定义了关于空间的相交查询、联合查询和其他分析操作的操作符、函数和过程,并提供了处理点,边和面的拓扑数据模型及表现网络的点线的网络数据模型。 Oracle中各种关于空间数据库功能主要是通过Spatial组件来实现。从9i版本开始,Oracle Spatial空间数据库组件对存储和管理空间数据提供了较为完备的支持。其主要通过元数据表、空间数据字段(即SDO_GEOMETRY字段)和空间索引来管理空间数据,并在此基础上提供一系列空间查询和空间分析的函数,让用户进行更深层次的GIS应用开发。Oracle Spatial使用空间字段SDO_GEOMETRY存储空间数据,用元数据表来管理具有SDO_GEOMETRY字段的空间数据表,并采用R树索引和四叉树索引技术来提高空间查询和空间分析的速度。 1、元数据表说明。 Oracle Spatial的元数据表存储了有空间数据的数据表名称、空间字段名称、空间数据的坐标范围、坐标参考信息以及坐标维数说明等信息。用户必须通过元数据表才能知道ORACLE数据库中是否有Oracle Spatial的空间数据信息。一般可以通过元数据视图(USER_SDO_GEOM_METADATA)访问元数据表。元数据视图的基本定义为: ( TABLE_NAME V ARCHAR2(32), COLUMN_NAME V ARCHAR2(32), DIMINFO MDSYS.SDO_DIM_ARRAY, SRID NUMBER

ORACLE常用SQL语句大全

ORACLE常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not nul l],..) 根据已有的表创建新表: A:select * into table_new from table_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only<仅适用于Oracle> 5、说明:删除表 drop table tablename

6、说明:增加一个列,删除一个列 A:alter table tabname add column col type B:alter table tabname drop column colname 注:DB2DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、添加主键: Alter table tabname add primary key(col) 删除主键: Alter table tabname drop primary key(col) 8、创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、创建视图:create view viewname as select statement 删除视图:drop view viewname 10、几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、几个高级查询运算词 A:UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B:EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C:INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、使用外连接

Oracle数据库基本知识点

1、数据库基本语句 (1)表结构处理 创建一个表:cteate table 表名(列1 类型,列2 类型); 修改表的名字 alter table 旧表名 rename to 新表名 查看表结构 desc 表名(cmd) 添加一个字段 alter table 表名 add(列类型); 修改字段类型 alter table 表名 modify(列类型); 删除一个字段 alter table 表名 drop column列名; 删除表 drop table 表名 修改列名 alter table 表名 rename column 旧列名 to 新列名; (2)表数据处理 增加数据:insert into 表名 values(所有列的值); insert into 表名(列)values(对应的值); 更新语句:update 表 set 列=新的值,…[where 条件] 删除数据:delete from 表名 where 条件 删除所有数据,不会影响表结构,不会记录日志, 数据不能恢复--》删除很快: truncate table 表名 删除所有数据,包括表结构一并删除: drop table 表名 去除重复的显示:select distinct 列 from 表名 日期类型:to_date(字符串1,字符串2)字符串1是日期的字 符串,字符串2是格式 to_date('1990-1-1','yyyy-mm-dd')-->返回日期的 类型是1990-1-1 (3)查询语句 1)内连接 select a.*,b.* from a inner join b on a.id=b.parent_id

oracle数据库浅析number类型的值

number数据内部存储时,以变长的数组来存放,数组里的每个元素占一个字节,最多20个元素。内部代码为2。number数据的存放格式为:<[length]>,sign bit/exponent,digit1,digit2,…,digit20 sign bit/exponent这部分叫做exponent byte。 exponent byte包括三部分: ?sign bit:这表示高位bit,也就是128。并且我们有: 1. 如果小于128,则数值为负数。 2. 如果大于等于128,则数值为正数或0。 ?offset,始终为65 ?exponent:其范围从-65到62。该部分的值是基于100而 进行的科学计数法。 为0时比较特殊,就只有sign bit而没有offset和exponent,也就是128。比如: SQL> select dump(0) from dual; DUMP(0) ---------------- Typ=2 Len=1: 128 来看一个非0的值: SQL> select dump(25,16) from dual; DUMP(25,16) ------------------ Typ=2 Len=2: c1,1a 则exponent byte为c1,也就是 SQL> select to_number('c1','xx'),to_number('1a','xx') from dual; TO_NUMBER('C1','XX') TO_NUMBER('1A','XX') -------------------- -------------------- 193 26 而193=128+65+0,也就是sign bit为128,offset为65,exponent为0。 同时,oracle存储时,用1表示0,2表示1,依此类推。也就是说用显示的值减1就是实际的值。如下所示: SQL> select dump(1,16) from dual;

Oracle数据库期末复习知识点整理

基础知识 表3.2 Oracle数据类型

表3.3 XSB的表结构

操作表 创建表 CREATE TABLE [schema.] table_name ( column_namedatatype [DEFAULT expression] [column_constraint][,…n] [,…n] ) [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace_name] [STORGE storage_clause] [CLUSTER cluster_name(cluster_column,…n)] [ENABLE | DISABLE ] [AS subquery] 【例】使用CRETE TABLE命令为XSCJ数据库建立表XSB,表结构参照表3.3。 打开SQL*Plus工具,以system方案连接数据库,输入以下语句: CREATE TABLE XSB ( XH char(6) NOT NULL PRIMARY KEY, XM char(8) NOT NULL, XB char(2) DEFAULT '1' NOT NULL, CSSJ date NOT NULL, ZY char(12) NULL, ZXF number(2) NULL, BZ varchar2(200) NULL ); 修改表 ALTER TABLE [schema.] table_name [ ADD(column_namedatatype [DEFAULT expression][column_constraint],…n) ] /*增加新列*/ [ MODIFY([ datatype ] [ DEFAULT expression ] [column_constraint],…n) ] /*修改已有列的属性*/ [ STORAGE storage_clause ] *修改存储特征*/ [ DROP drop_clause ] /*删除列或约束条件*/ 【例】使用ALTER TABLE语句修改XSCJ数据库中的表。

Oracle基础知识大全,

课程目标: 1. 了解数据库系统在项目开发中的地位 2. 了解目前主流数据库系统 3. 熟练掌握查询命令 4. 熟练掌握数据操作方式 5. 熟练使用数据库内置函数 6. 掌握pl/sql程序设计语法结构 7. 掌握视图 8. 掌握存储过程 9. 掌握用户自定义函数 10. 掌握触发器 了解: 1.数据库组件: 1.1 实施应用集群 1.2 Oracle OLAP 1.3 数据挖掘 1.4 应用程序接口 1.5 网络组件 1.6 SQL Plus 1.7 企业管理器OEM

2. 几个版本间的差异: 2.1 增加了服务器参数文件SPFILE 2.2 使用了OMF免去了手工管理数据库文件的繁琐 2.3 支持多种数据库块大小 2.4 会话可以自动调整PGA的大小 2.5 引入了列表分区 课程内容: 1. 操作数据之前的准备工作: 1.1. 要保证有一个数据库: 1.2. 要保证创建一个表空间 create tablespace hbjr datafile 'E:\dbs\hbjr.dbf' size 100M; 1.3. 要创建一个用户,用户默认的表空间就是你创建的表空间 create user hbjr identified by orcl default tablespace hbjr; //授权限: grant dba to hbjr; 1.4. 用户/密码登录:

2. 表名/列字段名起名规范: 2.1 使用常规字母和数字 2.2 长度不要超过30 2.3 表名/列名不能重复 2.4 不能使用oracle的保留字 3. 数据类型 3.1 char:定长,存储单位--字节(bite) 3.2 varchar2:变长,存储单位--字节 3.3 nchar:定长,存储单位--字符 3.4 nvarchar2:变长,存储单位--字符 3.5 date:日期类型,7个字节,存储着--世纪,年,月,日,时,分,秒 3.6 timestamp:日期类型,11个字节,存储着--世纪,年,月,日,时,分,秒,毫秒 3.7 number:数据类型(数值类型) 3.8 clob:大字段类型,适合存储纯文本信息(例如:*.txt 文件)

Oracle数据库技术课程学习大纲详细

《现代数据库技术》教学大纲 课程名称:《现代数据库技术》 课程编号:学时数:56 学分数:3.5 适应专业:计算机与信息学院所有专业 一、本课程的地位、任务和作用 现代数据库技术是计算机在数据处理应用领域中的主要内容和坚实基础;也是今后若干年内研究和应用的最活跃的分支之一。因此,信息管理、软件开发、计算机等专业的学生,特别是以应用为目标的学生都必须学习和具备数据库原理与应用的知识。本课程通过介绍Oracle数据库基本操作、体系结构与数据库基本管理使学生初步掌握大型数据库的基本原理,了解大型数据库的管理方法。了解大型数据库的管理方法,使学生熟练掌握Oracle数据库系统下的SQL语言运用及PL/SQL程序设计。 本课程是一门理论和实践相结合的课程,要求学生在完成本课程的学习以后,能够结合自己所熟悉的某一门高级语言和Oracle,开发出一个小型的数据库应用系统。 二、本课程的相关课程 本课程的先修课程为《计算机组成原理》,《离散数学》,《数据结构》,《计算机网络》及《数据库原理》等课程。 三、本课程的基本内容及要求 教学内容: 第一章数据库概述(2学时) 1、教学内容: 1.1数据库基础知识 1.2关系数据库系统 1.3 Oracle基础知识 (1)Oracle的发展历史 (2)Oracle的特点 第二章O racle体系结构(6学时) 1、教学内容: 2.1 Oracle 体系结构概述 2.2Oracle的存储结构 (1)物理存储结构 (2)逻辑存储结构 2.3Oracle的实例 (1)Oracle内存结构

(2)Oracle进程 2.4数据字典 2、教学重点:Oracle的物理结构、oracle实例、Oracle的逻辑结构 3、教学难点:数据库实例与进程 第三章O racle11g的安装(2学时) 1、教学内容: 3.1 Oracle 11g环境介绍 3.2Oracle 11g for Windows的安装 (1)安装Oracle 11g服务器 (2)Oracle 11g与Windows (3)安装Oracle 11g客户端 3.3 Oracle 11g 的卸载 2、教学重点:学会Oracle的安装 第四章O RACLE数据库管理工具及网络配置(2学时) 1、教学内容: 4.1 SQL*Plus命令 (1)设置SQL*Plus 运行环境 (2)常用SQL*Plus命令 (3)格式化查询结果 4.2 Oracle企业管理器 4.3 数据库配置助手 4.4 启动与关闭oracle实例 2、教学重点:学会使用SQL*Plus 第五章S QL语言基础(5学时) 1、教学内容: 5.1SQL简介 5.2SQL的基本语法 5.3数据查询语言 5.4数据操纵语言 5.5数据定义语言 5.6数据控制语言 5.7常用函数 5.8 事务处理 2、教学重点:数据查询语言、数据操纵语言、数据定义语言、数据控 制语言 3、教学难点:SQL的基本语法 第六章P L/SQL编程(8学时)(课本第6,7章) 1、教学内容: 6.1PL/SQL基础 (1)变量及声明 (2)数据类型 (3)表达式 (4)PL/SQL程序块结构 6.2PL/SQL控制结构

ORACLE数据库基础测试题oracle数据库复习题

ORACLE数据库基础测试题 提示:本题为ORACLE数据库基础测试题,适合初学者对基础知识进行测试,以便查漏补缺。 1、 DDL指得就是:()。 A、数据定义语言 B、数据操作语言 C、数据查询语言 D、数据控制语言 正确答案:A解析: 2、 下列创建表语句正确得就是:(). A、create table emp(id number(4),); B、createtable emp(id number(4)); C、alter table emp(id number(4)) ; D、alter tableemp(id number(4),) ;

正确答案:B解析: 3、 下列Oracle函数中能够返回两个字符串连接后得结果得就是:()。 A、initcap B、instr C、trim D、concat 正确答案:D解析: 4、 下列SQL语句得查询结果就是:()。selectround(45、925,0),trunc(45、925)fromdual; A、4545 B、4645 C、4546 D、46 46 正确答案:B解析:

5、 关于函数nvl(d1,d2)得用法说法正确得就是:()。 A、表示如果d1为null则d2必须为null B、表示如果d1为null则忽略d2 C、表示如果d1不为null则用d2替代 D、表示如果d1为null则用d2替代 正确答案:D解析: 6、 显示emp表得所有行,所有列,下列SQL语句正确得就是:()。 A、select*fromemp; B、select all、*from emp; C、selectallfromemp; D、select/* from emp; 正确答案:A解析: 7、 查询职员得姓名及其直接领导,如果没有直接领导得职员,则显示为“NoManager",下列SQL语句正确得就是:()。

Oracle数据库知识总结

AD1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 7. COL命令: 主要格式化列的显示形式。 1). 改变缺省的列标题 COLUMN column_name HEADING column_heading For example: Sql>select * from dept; DEPTNO DNAME LOC ---------- ---------------------------- --------- 10 ACCOUNTING NEW YORK sql>col LOC heading location sql>select * from dept; DEPTNO DNAME location --------- ---------------------------- ----------- 10 ACCOUNTING NEW YORK 2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上: Sql>select * from emp Department name Salary ---------- ---------- ---------- 10 aaa 11 SQL> COLUMN ENAME HEADING ’Employee|Name’ Sql>select * from emp Employee Department name Salary ---------- ---------- ---------- 10 aaa 11 note: the col heading turn into two lines from one line. 3). 改变列的显示长度: FOR[MAT] format Sql>select empno,ename,job from emp; EMPNO ENAME JOB ---------- ---------- --------- 7369 SMITH CLERK

Oracle数据库基本数据类型

oracle基本数据类型

oracle 数据库中讨论char ,varchar ,varchar2 数据类型! 这3种字符串数据类型是我们使用最多的,我们在数据库设计时到底该怎么使用了? 首先我们先来分析3个数据类型的说明: 1。char CHAR的长度是固定的,最长2000个字符。 2。varchar 和 varchar2 可以肯定的是oracle中目前是可以使用varchar数据类型的,但他们的区别我查了不少资料也没有找到一个准确的答案最常见的说话是说oracle中的varchar只是varchar2的别名也就是同义词。 其次也有人认为varchar是最大长度为2000的可变字符串(和sql server中的varchar一致),而varchar2最大长度为4000。 知道了他们的特点我们就来讨论下使用区别 1.char和varchar、varchar2 由于varchar和varchar2用途类似,我们先来讨论char和他们的使用区别: varchar和varchar2比char节省空间,在效率上比char会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的

‘以空间换效率’。 varchar和varchar2虽然比char节省空间,但是如果一个varchar和varchar2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用char代替varchar和varchar2会更好一些。 当然还有一种情况就是象身份证这种长度几乎不变的字段可以考虑使用char,以获得更高的效率。 2。varchar和varchar2 这里就进入重点了,前面的区别我们在sql server中我们已经基本了解了,大家可能都知道,最多也就是复习下,但oracle增加了一个varchar2类型,是大家以前所没有用到过的。 因为oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar,还有其他数据中一般都有varchar这个数据类型。 所以我得出了以下结论: 如果想在oracle新版本的数据库兼容就不要用varchar,如果想和oracle 之外其他数据库兼容就不要用varchar2。 ORACLE中的数据类型分类 ORACLE中的数据类型不可谓不多,下面把我这两天来的学习体会写一下吧! 1、字符数据类型:包括我CHAR,VARCHAR2,LONG。 CHAR型可以存储字母数字值,这种数据类型的 列长度可以是1到2000个字节。如果未指明,则默认其占用一个字节,如果用户输入的值小于指定的长度,数据库则用空格填充至固定长度。 VARCHAR2型其实就是VARCHAR,只不过后面多了一个数字2,VARCHAR2就是VARCHAR的同义词,也称别名。数据类型大小在1至4000个字节,但是和CHAR不同的一点是:当你定义了VARCHAR2长度为30,但是你只输入了10个字符,这时VARCHAR2不会像CHAR一样填充,在数据库中只有10具字节。

Oracle 数据库 常用命令

SPOOL将屏幕所有的输出输出到指定文件 -- spool 文件路径名; spool g:\mysql.sql; --业务操作 --结束输出 spool off; 执行一个SQL脚本文件 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 --start file_name -- @ file_name start g:\mysql.sql; @ g:\mysql.sql; 对当前的输入进行编辑 edit ed 重新运行上一次运行的sql语句 / 显示一个表的结构 desc table_name ; 清屏 clear screen; 退出 exit; 置当前session是否对修改的数据进行自动提交 --SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n} set autocommit on; 在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句 -- SET ECHO {ON|OFF}; set echo on; 是否显示当前sql语句查询或修改的行数 --SET FEED[BACK] {6|n|ON|OFF}

-- 默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数 set feedback 1; 是否显示列标题 --当set heading off 时,在每页的上面不显示列标题,而是以空白行代替 --SET HEA[DING] {ON|OFF} set heading on; 设置一行可以容纳的字符数 -- 如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示 --SET LIN[ESIZE] {80|n} set linesize 100; 设置页与页之间的分隔 -- SET NEWP[AGE] {1|n|NONE} --当set newpage 0 时,会在每页的开头有一个小的黑方框。 --当set newpage n 时,会在页和页之间隔着n个空行。 --当set newpage none 时,会在页和页之间没有任何间隔 set newpage 1; 设置一页有多少行数 --如果设为0,则所有的输出内容为一页并且不显示列标题 --SET PAGES[IZE] {24|n} set pagesize 20; 是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。 --SET SERVEROUT[PUT] {ON|OFF} set serveroutput on; 是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。 --在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,--设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度 --SET TERM[OUT] {ON|OFF} set termout off; 在dos里连接oracle数据库 CONNECT user_name/passwd@l_jiayou

ORACLE数据库基础知识1

第一部分 Oracle数据库概念与原理 一、Oracle数据库概念 1. 数据库 数据库是一套解决信息管理问题的工具,是数据文件及处理这些数据文件的程序的集合。一个数据库系统必须实现在多用户环境下可靠地管理大量的数据,使得很多用户在并发处理时获得相同的结果,而且必须具有处理数据的高效性、可靠性、安全性和容错性,同时提供简便易用的客户端用户操作过程和应用接入。 2. Oracle数据库 Oracle数据库是采用数据库进程和应用程序分进程处理的Client/Server结构的关系型数据库,采用大型数据库的磁盘空间管理形式,支持大量用户同时操作相同的数据,实现高度可靠性、高度的安全性、高效率和在线备份机制。Oracle数据库适合于各种不同的硬件环境和不同的操作系统,且具有接口方便和控制容易的特性,并支持多点实时复制。 二、Oracle数据库原理 1. Oracle数据库的基本任务 (1)录入数据; (2)存储数据; (3)查询、处理数据

2. Oracle数据库的组成结构 Oracle按照应用情况可以分为核心数据(DATA)、操作系统(Operation System)、数据库服务器部分(Oracle Server)、Oracle SQL Server程序、Oracle工具(包括SQL*PLUS和很多像Developer 2000、designer 2000等工具)以及Oracle的各种应用。 按照Oracle的对象组成结构来看,Oracle数据库由以下几部分组成: ⑴实例(Instance):Oracle实例是一组有自己的系统全局区和与其相关数据库文件的Oracle服务器进程,每个实例都有自己的SID(系统识别符)。 ⑵对象(Object):由应用程序中的SQL语句引用的表空间、用户、表、视图、索引、权限、DBA(数据库管理员)等。 ⑶程序:也是Oracle数据库的过程,主要包括客户过程(client processes),根据用户的要求向服务器过程提出需求信息的请求;服务器过程server processes),接收用户过程发出的请求,并根据请求与数据库通信,完成对数据库中数据的处理。 ⑷文件:包括数据文件(Datafile),存放所有数据库有关的数据。 日志文件(Log File),也称重演日志文件(Redo Logs File)或事务记录文件(Trasaction Log File),记录针对数据库进行的修改操作或各种事务,节省数据库直接操作数据文件的时间和次数,提高处理效率。 控制文件(Control File),存放与Oracle数据库所有文件均相关的关键信息,Oracle数据库通过控制文件保持数据的一致性,以及恢复数据时使用哪些重演日志。 每个数据库至少应该有两个以上的控制文件和日志文件备份。 ⑸内存结构 Oracle的内存结构SGA主要是一个通信器,它是一块存放系统信息的内存区域,使得通信过程尽量能够在内存中处理, 达到快速度、高效率。所有用户进程和服务器进程都能够访问这个内存结构。SGA区主要分为四块: ① Data Buffer Cache(数据高速缓冲区)中存放着Oracle最近使用过的数据库数据块,当用户一次访问数据时,用户进程从物理磁盘中读取数据后将其放在这个高速缓冲区,下一次或其他用户访问时从缓冲区读取,Oracle数据库根据数据被访问的频度和缓冲区的物理大小通过相应的HASH算法将经常访问的数据保留,而去除不经常访问的数据块。 ② Dictionary Cache(Row Cache,字典高速缓冲区)用于保存数据字典中的行,数据字典中存放Oracle系统管理时需要的所有信息,这些信息包括:访问Oracle数据库的用户以及他们访问哪些数据库对象和这些对象所放的位置等。 ③ Redo Log Cache(Transaction Log Cache,即重演日志缓冲区),任何需要事务在写入到重演日志之前首先放到缓冲区中,然后定期将其写入到重演日志。 ④ Share SQL Pool(共享SQL池)相当于程序高速缓冲区,所有用户的经过语法分析的、准备执行的SQL语句都放在此共享池中。 3. Oracle数据库的数据处理流程

ORACLE数据库日常维护手册(最全+最实用)

ORACLE 日常维护手册 查看数据库版本 SELECT*FROM V$VERSION; 查看数据库语言环境 SELECT USERENV('LANGUAGE')FROM DUAL; 查看ORACLE实例状态 SELECT INSTANCE_NAME,HOST_NAME,STARTUP_TIME,STATUS,DATABASE_STATUS FROM V$INSTANCE; 查看ORACLE监听状态 lsnrctl status 查看数据库归档模式 SELECT NAME,LOG_MODE,OPEN_MODE FROM V$DATABASE; 查看回收站中对象 SELECT OBJECT_NAME,ORIGINAL_NAME,TYPE FROM RECYCLEBIN; 清空回收站中对象 PURGE RECYCLEBIN; 还原回收站中的对象 FLASHBACK TABLE"BIN$GOZUQZ6GS222JZDCCTFLHQ==$0" TO BEFORE DROP RENAME TO TEST;

闪回误删除的表 FLASHBACK TABLE AAA TO BEFORE DROP; 闪回表中记录到某一时间点 ALTER TABLE TEST ENABLE ROW MOVEMENT; FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2009-10-15 21:17:47','YYYY-MM-DD HH24:MI:SS'); 查看当前会话 SELECT SID,SERIAL#,USERNAME,PROGRAM,MACHINE,STATUS FROM V$SESSION; 查看DDL锁 SELECT* FROM DBA_DDL_LOCKS WHERE OWNER ='FWYANG'; 检查等待事件 SELECT SID, https://www.doczj.com/doc/595688777.html,ERNAME, EVENT, WAIT_CLASS, T1.SQL_TEXT FROM V$SESSION A, V$SQLAREA T1 WHERE WAIT_CLASS <>'Idle' AND A.SQL_ID = T1.SQL_ID; 检查数据文件状态 SELECT FILE_NAME,STATUS FROM DBA_DATA_FILES; 检查表空间使用情况 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB -F.TOTAL_BYTES)/D.TOT_GROOTTE_MB *100, 2), '990.99') "使用比", F.TOTAL_BYTES "空闲空间(M)",

Oracle数据库开发知识点

Oracle数据库开发指南 前言 参考 第一部分基础 一、数据库对象 表空间Tablespace:存储数据库对象的容器 模式Schema 表Table 表名最长为30个字符,不能以数字开头。一个表最多254个列。 CREATE TABLE tablename AS select_statement,通过子查询建立新表 DESC tablename,查看表或其它数据库对象的定义 ALTER TABLE tablename RENAME new_tablename,修改表名 RENAME tablename TO new_tablename,修改表名,注意修改表名后,视图必须重建。 索引Index 保证表中数据的唯一性;减少定位和检索数据所需要的I/O操作 Oracle允许对列值创建索引,也可对表达式创建索引。所以既可是UNIQUE,也可是UNIQUE Oracle对DESC(降序)索引认为是基于函数的索引。 序列Sequence 使用序列为表的码值生成唯一的序列值 聚簇Cluster 视图View 由一个预定义的查询构成,可看作为数据库的逻辑表。 SELECT text_length FROM user_views WHERE view_name = …viewname? Set long 5000 SELECT text FROM user_views WHERE view_name = …viewname? 快照Snapshot 快照与视图都是基于查询结果的。但快照使用物理的存储空间,快照中的数据一般都是静态的,只有刷新时才改变。 快照的目的是提供某个时间点的数据。 二、数据类型 CHAR(n),255字符 V ARCHAR2(n):2000字符 LONG,2G字符,只能用在列SELECT列表,UPDATE语句的SET子句或INSERT语句的V ALUES子句中,一个表中只能有一个LONG列,LONG列不能建索引,也不能有完整性约束,不能用于表达式。DATE

Oracle数据库基础知识(华为内部培训资料)

课程IL001100 ORACLE数据库基础知识 ISSUE1.0 开心Java整理

目录 课程说明 (1) 课程介绍 (1) 课程目标 (1) 相关资料 (1) 第1章ORACLE数据库概述 (2) 1.1 产品概述 (2) 1.1.1 产品简介 (2) 1.1.2 基本概念 (3) 1.2 ORACLE系统结构 (4) 1.2.2 ORACLE物理结构 (4) 1.2.3 系统全局区 (6) 1.2.4 进程 (8) 1.3 存储管理 (9) 1.3.2 逻辑结构 (10) 1.3.3 表(Table) (14) 1.3.4 视图(View) (18) 1.3.5 索引(Index) (18) 1.3.6 同义词(Synonym) (19) 1.3.7 序列(Sequence) (19) 1.3.8 数据库链(Database Link) (19) 第2章管理ORACLE数据库 (21) 2.1 基本概念 (21) 2.1.1 数据字典 (21) 2.1.2 事务管理 (23) 2.1.3 数据库管理员(DBA) (24) 2.1.4 ORACLE的四种状态 (25) 2.2 SQL*Plus方式的ORACLE数据库启动和关闭 (26) 2.2.1 启动数据库 (26) 2.2.2 关闭数据库 (26) 2.3 svrmgrl方式的ORACLE数据库启动和关闭 (28) 2.3.1 启动数据库 (28) 2.3.2 关闭数据库 (30) 2.4 应用开发工具(SQL * Plus) (31) 2.4.1 SQL (32) 2.4.2 PL/SQL (33)

Oracle与DB2数据类型的分类对应说明

Oracle与DB2数据类型的分类对应说明首先,通过下表介绍与DB2/400数据类型之间的对应关系,是一对多的关系,具体采用哪种对应关系,应具体问题具体分析。 注意事项: Oracle中的DATE含有年、月、日、时、分、秒,它和DB2/400中的DATE不相互对应,DB2/400中的DATE只有年、月、日,TIME类型含有时、分、秒,因此日期和时间类型要进行转换,

NUMBER Oracle中的NUMBER类型可以对应DB2/400中的很多类型,这种对应关系要依赖于Oracle中number将用于保存何种类型的数据,是整型还是带有小数位的实型数据,另外还要考虑类型所占用的存储空间,例如:SAMLLINT占2 byte, INTEGER占4 byte; BIGINT占8 byte;Oracle 中的NUMBER类型所占用的存储空间要根据它的定义而定,例如缺省精度下的NUMBER有38个数字长,占用20 byte的空间。具体的对应关系请参照上表。 ROW and LOB类型 DB2/400提供VARCHAR和CLOB与ORACLE中的RAW和LONG RAW相对应。ORACLE也支持大对象:BLOB、CLOB、CLOB和NCLOB, ORACLE中的BLOB和CLOB可以提供4GB的空间,而DB2/400中的BLOB和CLOB只能存放2GB的数据;DB2/400中的DBCLOB与ORACLE中的NCLOB 2GB相对应。Oracle 中的BFILE数据类型用于管理数据库以外的二进制数据,数据库中的表将指向数据库外部的存放的BFILE文件,DB2/400也提供一个类似的数据类型DATALINK相对应。 ROWID Oracle ROWIND虚拟列用于对表中的某一列进行唯一标示,DB2/400中也有这样的数据类型ROWID,它与ORACLE中的ROWID的功能相似。DB2/400中的ROWID可以存放40 byte的数据用来唯一标示表中的每一行,它没有ccsid属性,这些信息中没有关于datafile、 block 或row的信息。 例如: CREATE TABLE LIBRARYNAME/ORDERS2 (ORDERNO ROWID, SHIPPED_TO VARCHAR (36) , ORDER_DATE DATE) ORDERNO的数据类型为ROWID,用于存放订单号,每当插入一行时,系统自动生成一个值,存放进这个字段。可以用OPERATION NAVIGATOR查看它的内容。

相关主题
文本预览
相关文档 最新文档