《Oracle术语及其基本操作》由会员分享,可在线阅读,更多相关《Oracle术语及其基本操作(31页珍藏版)》请在金锄头文库上搜索。
1、Oracle基础培训 2009 12 24 北京橙红创新科技有限公司 培训内容 Oracle概述Oracle术语Oracle基本操作Oracle中Join用法Oracle异常处理OracleUpdate操作OracleSQL优化 Oracle概述 1 1什么是ORACLEORACLE 即甲骨文股份有限公司 成立于1977年 总部位于美国加州Redwoodshore 是全球最大的信息管理软件及服务供应商 也是最早进入中国的跨国软件巨头 甲骨文公司主要的产品目前分为以下几大类 服务器 服务器 及工具 主要竞争对手 国际商用机器 微软 数据库服务器 最新版本11G 应用服务器 OracleAppli
2、cationServer 开发工具 OracleJDeveloper OracleDesigner OracleDeveloper 等 企业资源计划 ERP 软件 已有10年以上的历史 2005年 并购了开发企业软件的仁科软件公司 PeopleSoft 以增强在这方面的竞争力 客户关系管理 CRM 软件 自1998年开始研发这种软件 2005年 并购了开发客户关系管理软件的希柏软件公司 Siebel Oracle概述 1 2Oracle数据库Oracle数据库的逻辑体系包括服务器和客户端 OracleServer是一个对象一关系数据库管理系统 它提供开放的 全面的 和集成的信息管理方法 每个S
3、erver由一个OracleDB和一个OracleServer实例组成 每个Oracle数据库对应唯一的一个实例名SID Oracle数据库服务器启动后 一般至少有以下几个用户 Internal 它不是一个真实的用户名 而是具有SYSDBA优先级的Sys用户的别名 它由DBA用户使用来完成数据库的管理任务 包括启动和关闭数据库 Sys 它是一个DBA用户名 具有最大的数据库操作权限 System 它也是一个DBA用户名 权限仅次于Sys用户 Oracle客户端即为数据库用户操作端 由应用 工具 SQL NET组成 用户操作数据库时 必须连接到一服务器 该数据库称为本地数据库 LocalDB 在
4、网络环境下其它服务器上的DB称为远程数据库 RemoteDB 用户要存取远程DB上的数据时 必须建立数据库链 Oracle数据库的存储结构 它由至少一个表空间和数据库模式对象组成 这里 模式是对象的集合 而模式对象是直接引用数据库数据的逻辑结构 模式对象包括这样一些结构 表 视图 序列 存储过程 同一词 索引 簇和数据库链等 逻辑存储结构包括表空间 段和范围 用于描述怎样使用数据库的物理空间 而其中的模式对象和关系形成了数据库的关系设计 数据块 Block 是数据库进行UO操作的最小单位 它与操作系统的块不是一个概念 oracle数据库不是以操作系统的块为单位来请求数据 而是以多个Oracle
5、数据库块为单位 段 Segment 是表空间中一个指定类型的逻辑存储结构 它由一个或多个范围组成 段将占用并增长存储空间 其中包括 数据段 用来存放表数据 索引段 用来存放表索引 临时段 用来存放中间结果 回滚段 用于出现异常时 恢复事务 范围 Extent 是数据库存储空间分配的逻辑单位 一个范围由许多连续的数据块组成 范围是由段依此分配的 分配的第一个范围称为初始范围 以后分配的范围称为增量范围 Oracle术语 2 1数据库名数据库名就是一个数据库的标识 就像人的身份证号一样 他用参数DB NAME表示 如果一台机器上装了多全数据库 那么每一个数据库都有一个数据库名 在数据库安装或创建完
6、成之后 参数DB NAME被写入参数文件之中 格式如下 DB NAME myorcl 在创建数据库时就应考虑好数据库名 并且在创建完数据库之后 数据库名不宜修改 即使要修改也会很麻烦 因为 数据库名还被写入控制文件中 控制文件是以二进制型式存储的 用户无法修改控制文件的内容 假设用户修改了参数文件中的数据库名 即修改DB NAME的值 但是在Oracle启动时 由于参数文件中的DB NAME与控制文件中的数据库名不一致 导致数据库启动失败 将返回ORA 01103错误 Oracle术语 数据库实例名与Oracle SID一个数据库实例 Instance 是由SGA 后台进程以及数据文件组成 每
7、个数据库有自己的SGA和独立的Oracle进程集 ORACLE SID是操作系统的环境变量 两者都是oracle实例 但两者是有区别的 instance name是oracle数据库参数 而ORACLD SID用于与操作系统交互 也就是说 从操作系统的角度访问实例名 必须通过ORACLE SID 数据库实例名除了与操作系统交互外 还用于网络连接的oracle服务器标识 当你配置oracle主机连接串的时候 就需要指定0实例名 在winnt平台 ORACLE SID还需存在于注册表中 在数据库安装之后 ORACLE SID被用于定义数据库参数文件的名称 如 ORACLE BASE admin D
8、B NAME pfile init ORACLE SID ora Oracle术语 2 3表空间一个Oracle数据库由一个或多个逻辑存储单元 表空间构成 表空间存储着数据库中所有的数据 Oracle数据库中的每个表空间由一个或多个文件组成 这些文件就是数据文件 它们是Oracle所在操作系统上的物理结构 Oracle数据库中的所有数据物理的存储在数据文件中 除了普通表空间外 Oracle还有几种特殊的表空间 系统表空间 SYSTEM表空间 UNDO表空间 回滚表空间 临时表空间 TEMP表空间 系统表空间中除了保存数据字典外还保存所有的存储过程 函数 包 触发器和对象 UNDO表空间用于保存
9、被DML语句影响的记录的原始状态 以便在事务失败的时候可以进行回滚 USER表空间TOOLS表空间当大的排序操作发生时 排序无法在内存中完成 这时会使用临时表空间 表空间可以设置为ONLINE和OFFLINE OFFLINE的表空间无法进行访问 通过对单独表空间的ONLINE和OFFLINE 可以减少对系统的影响 表空间可以设置为READONLY和READWRITE两种状态 只读的表空间不可以进行锁操作 因此甚至可以放到只读设备上如CDROM Oracle术语 同义词同义词用于屏蔽基表的身份 降低sql语句的复杂性 用户不必知道同义词所代表的表是哪一个表 从而用户不需要指明表的所有者的名称 同
10、义词有私有和公有之分 私有同义词是普通用户所创建的同义词 只有创建该同义词的用户才能使用此同义词 而公用同义词是指数据库管理员创建的 公用同义词允许所有用户使用 Oracle术语 序列建序列号主要用来自动产生数据 如学生号自动加1 如果有很多的学生 比如10000个 那么使用序列较手工实现会提高效率 创建语法 createsequencenameincrementbyx x为增长间隔startwithx x为初始值maxvaluex x为最大值minvaluex x为最小值cycle 循环使用 到达最大值或者最小值时 重新建立对象cachex 制定缓存序列值的个数创建 createsequen
11、cesincrementby10startwith1nomaxvalue 删除 dropsequences 使用 insertintoavalues s nextval xxx Oracle基本操作 创建表空间如何创建表空间创建表空间可以使用SQL语句 也可以通过DBAStudio 使用SYSTEM帐户droptablespacetestincludingcontents 删除表空间createtablespacetestlogging datafile d test dbf size100Mreuseautoextendonnext10Mmaxsizeunlimited createtemp
12、orarytablespacetemptesttempfile d temptest dbf size10Mreuse Oracle基本操作 连接ORACLE如何配置ORACLE客户端如果Oracle服务器在另外一台主机 你要连接到数据库服务器 那么需要做的事情就是 在自己的机器安装ORACLE客户端 配置ORACLE连接 演示选择 NetworkAdministration Net8ConfigurationAssistant 进行配置 Oracle基本操作 常用的一些语句1 select fromtab 查看当前表和视图2 selectnamefromv database 查看数据库3 s
13、elect fromnls database parameters 查看数据库参数设置4 select fromuser role privs 查看当前用户的角色5 selectusername default tablespace temporary tablespacefromuser users 查看用户名 默认 临时表空间6 selectview namefromuser views 查看视图7 selecttable namefromuser tables 查看表 和第1的区别 8 select fromuser constraints 查看表的约束情况9 select fromus
14、er catalog查看表 视图 同义词和当前所有序列的简明目录 Oracle中Join用法 内连接左连接右连接完全连接迪卡尔1 内连接 选出两个表中所有符合连接条件的row构成的集合 2 外连接 分为LEFT RIGHT FULL三种如有R与S做连接 那么LEFT是所有满足条件的row以及所有在R属性对应值在S中为NULL的集合 RIGHT是所有满足条件的row以及所有在S属性对应值在R中为NULL的集合FULL是所有满足条件的row以及任何在R或S中出现NULL的集合 Oracle中Join用法 innerjoin 等值连接只返回两个表中联结字段相等的行1 select fromTable
15、1a Table2bwherea id b id2 Select fromtable1AINNERJOINtable2BONA ID B ID Oracle中Join用法 leftjoin 左联接 返回包括左表中的所有记录和右表中联结字段相等的记录select fromTable1a table2bwherea id b id SELECT FROMtable1ALEFTJOINtable2BONA ID B ID Oracle中Join用法 rightjoin 右联接 返回包括右表中的所有记录和左表中联结字段相等的记录select fromtable1a table2bwherea id b
16、 id SELECT FROMtable1ARIGHTJOINtable2BONA ID B ID Oracle中Join用法 完全连接返回包括右表中的所有记录和左表中的所有记录select fromtable1a table2bwherea id b id unionselect fromTable1a table2bwherea id b id SELECT FROMtable1AFULLOUTERJOINtable2BONA ID B ID Oracle中Join用法 迪卡尔返回两个表相等字段的乘积select fromtable1 table2 Oracle异常处理 1 异常的优点如果没有异常 在程序中 应当检查每个命令的成功还是失败 2 异常的分类有两种类型的异常 一种为内部异常 一种为用户自定义异常 3 异常的抛出由三种方式抛出异常1 通过PL SQL运行时引擎2 使用RAISE语句 RAISEexception name 3 调用RAISE APPLICATION ERROR存储过程 定义DECLAREinventory too lowEXCEPTION Oracle异常