




已阅读5页,还剩266页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
oracle数据库开发 第一章 oracle入门 课程地位 net c sqlserver xml spm asp net webservice oracle uml spr computerbase html javascript sqlserverbase oop javabase c stb jsp servlet ejb webservice winforms struts jsf testing sqa linux 课程目标 理解oracle数据库体系结构熟练掌握sql命令和sql函数使用oracle的各种数据库对象使用pl sql编写存储过程掌握基本的数据库配置和管理 目标 了解oracle体系结构的各种组件掌握oracle中的基本用户管理了解oracle的工具了解oracle的安装和卸载 人民是推动历史车轮前进的动力需求是推动软件技术前进的动力 初始状态 硬件 程序 程序的共性 稳定 成分 计算资源管理 操作系统 应用程序 产生了 分离出了 软件 硬件 操作系统 初始状态 硬件 操作系统 应用程序 程序的共性 稳定 成分 数据管理 产生了 数据库管理系统 操作系统 操作系统 数据存储文件 数据库管理系统 应用程序 oracle数据库简介2 1 对象关系型的数据库管理系统 ordbms 在管理信息系统 企业数据处理 因特网及电子商务等领域使用非常广泛在数据安全性与数据完整性控制方面性能优越跨操作系统 跨硬件平台的数据互操作能力 oracle数据库的主要特点支持多用户 大事务量的事务处理数据安全性和完整性控制支持分布式数据处理可移植性 oracle数据库简介2 2 oracle数据库基于客户端 服务器技术 客户端应用程序通过向服务器请求并接收信息的方式与数据库进行交互 它充当用户与数据库之间的接口 请求 响应 数据库服务器对数据库表进行最佳管理 处理多个客户端对同一数据的并发访问 全面地保持数据完整性 并控制数据库访问权限等安全性需求 网络 oracle10g体系结构 oracle服务器 oracle数据库 oracle实例 oracle数据库是一个数据的集合 该集合被视为一个逻辑单元 管理数据库的后台进程和内存结构的集合称为oracle实例 数据库的体系结构是指数据库的组成 工作过程与原理 以及数据在数据库中的组织与管理机制oracle服务器提供开放 全面和综合的信息管理 它由oracle数据库和oracle实例组成 oracle主要组件 实例内存结构后台进程 pmonsmondbwrlgwrckpt其他 数据库 数据文件 数据文件 数据文件 控制文件 控制文件 日志文件 日志文件 参数文件 归档日志文件 口令文件 sga 用户进程 服务器进程 pga 共享池 数据缓冲区 日志缓冲区 oracle实例 oracle实例是后台进程和内存结构的集合 oracle实例 系统全局区 后台进程 分配 启动 oracle数据库 oracle数据库由操作系统文件组成 这些文件为数据库信息提供实际物理存储区oracle数据库包括逻辑结构和物理结构 物理结构 逻辑结构 物理结构包含数据库中的一组操作系统文件 逻辑结构指数据库创建之后形成的逻辑概念之间的关系 oracle数据库 会话 会话是用户与oracle服务器的单个连接当用户与服务器建立连接时创建会话当用户与服务器断开连接时关闭会话 启动oracle实例 使用sql plus连接至数据库 创建用户进程 创建服务器进程 提交sql查询 oracle实例内存结构 系统全局区 sga 程序全局区 pga oracle实例启动时分配系统全局区 当服务器进程启动时分配程序全局区 oracle的内存结构包含以下两个内存区 内存区 系统全局区2 1 数据库信息存储于sga 由多个数据库进程共享 共享池 数据缓冲区 日志缓冲区 sga的内存结构 系统全局区2 2 共享池 共享池是对sql pl sql程序进行语法分析 编译 执行的内存区域共享池由库缓存和数据字典缓存组成 共享池的大小直接影响数据库的性能 数据缓冲区 用于存储从磁盘数据文件中读入的数据 所有用户共享 服务器进程将读入的数据保存在数据缓冲区中 当后续的请求需要这些数据时可以在内存中找到 不需要再从磁盘读取 提高了读取速度 数据缓冲区的大小对数据库的读取速度有直接的影响 日志缓冲区 日志记录数据库的所有修改信息 日志信息首先产生于日志缓冲区 当日志缓冲区的日志数据达到一定数量时 由后台进程将日志数据写入日志文件中 相对来说 日志缓冲区对数据库的性能影响较小 程序全局区 程序全局区 pga 包含单个服务器进程所需的数据和控制信息 pga是在用户进程连接到数据库并创建一个会话时自动分配的 保存每个与oracle数据库连接的用户进程所需的信息 pga为非共享区 只能单个进程使用 当一个用户会话结束 pga释放 oracle实例进程结构 oracle实例有几种不同类型的进程 它们是 实例进程 用户进程 服务器进程 后台进程 用户进程是一个需要与oracle服务器进行交互的程序 当用户运行一个应用程序准备向数据库服务器发送请求时 即创建了用户进程 服务器进程用于处理连接到该实例的用户进程的请求 当用户连接至oracle数据库实例创建会话时 即产生服务器进程 后台进程是oracle数据库为了保持最佳系统性能和协调多个用户请求而设置的 oracle实例启动时即创建一系列后台进程 后台进程2 1 后台进程 pmon 实例的各种后台进程是 smon dbwr lgwr ckpt 其他 后台进程2 2 pmon进程监控进程 清理出现故障的进程 释放所有当前挂起的锁定 释放故障进程使用的资源 smon系统监控进程 在实例失败之后 重新打开数据库时自动恢复实例 整理数据文件的自由空间 将相邻区域结合起来 释放不再使用的临时段 dbwr数据写入进程 管理数据缓冲区 将最近使用过的块保留在内存中 将修改后的缓冲区数据写入数据文件中 lgwr日志写入进程 负责将日志缓冲区中的日志数据写入日志文件 系统有多个日志文件 该进程以循环的方式将数据写入文件 oracle物理组件 物理组件就是oracle数据库所使用的操作系统物理文件 物理文件可分为三类 物理组件 数据文件 控制文件 日志文件 数据文件用于存储数据库数据 如表 索引数据等 控制文件是记录数据库物理结构的二进制文件 日志文件记录对数据库的所有修改信息 用于故障恢复 oracle逻辑组件3 1 数据库的逻辑结构是从逻辑的角度分析数据库的组成 oracle的逻辑组件包括 数据库 表空间 段 区 数据块 模式 oracle逻辑组件3 2 表空间是数据库中最大的逻辑单位 一个oracle数据库至少包含一个表空间 就是名为system的系统表空间 每个表空间是由一个或多个数据文件组成的 一个数据文件只能与一个表空间相关联 表空间的大小等于构成该表空间的所有数据文件大小之和 createtablespacetablespacenamedatafile filename sizeinteger k m autoextend off on 创建表空间的语法是 oracle逻辑组件3 3 段 段是构成表空间的逻辑存储结构 段由一组区组成 按照段所存储数据的特征 将段分为四种类型 即数据段 索引段 回退段和临时段 区 区为段分配空间 它由连续的数据块组成 当段中的所有空间已完全使用时 系统自动为该段分配一个新区 区不能跨数据文件存在 只能存在于一个数据文件中 数据块 数据块是oracle服务器所能分配 读取或写入的最小存储单元 oracle服务器以数据块为单位管理数据文件的存储空间 模式 模式是对用户所创建的数据库对象的总称 模式对象包括表 视图 索引 同义词 序列 过程和程序包等 oracle网络配置2 1 oracle产品安装完成后 服务器和客户端都需要进行网络配置才能实现网络连接 服务器端配置监听器 客户端配置网络服务名 oracle网络配置2 2 服务器端监听器配置信息包括监听协议 地址及其他相关信息 配置信息保存在名为listener ora的文件中 在安装服务器软件时自动配置一个监听器客户端的网络服务名配置信息包括服务器地址 监听端口号和数据库sid等 与服务器的监听器建立连接 配置信息保存在名为tnsnames ora的文件中oracle中的netconfigurationassistant和netmanager工具都能用来配置监听器和网络服务名 oracle查询工具 oracle查询工具 sql plus isql plus pl sql oracle提供的工具非常容易使用 oracle的查询工具包括 sql plus是oracle最常用的工具之一 用于接受和执行sql命令以及pl sql块 isql plus可以执行能用sql plus完成的所有任务 该工具的优势在于能通过浏览器访问它 pl sql是sql的扩展 pl sql结合了sql语言的数据操纵能力和过程语言的流程控制能力 oracle企业管理器 oracle企业管理器为管理员提供了图形化的用户界面 并集成了管理数据库的工具 oracle默认用户 只有用合法的用户帐号才能访问oracle数据库oracle有几个默认的数据库用户 oracle默认用户 sys system scott 数据库中所有数据字典表和视图都存储在sys模式中 sys用户主要用来维护系统信息和管理实例 system是默认的系统管理员 该用户拥有oracle管理工具使用的内部表和视图 通常通过system用户管理数据库用户 权限和存储等 scott用户是oracle数据库的一个示范帐户 在数据库安装时创建 创建新用户 要连接到oracle数据库 就需要创建一个用户帐户每个用户都有一个默认表空间和一个临时表空间createuser命令用于创建新用户 createuserusernameidentifiedbypassword defaulttablespacetablespace temporarytablespacetablespace createuser命令的语法是 createusermartinidentifiedbymartinpwddefaulttablespaceuserstemporarytablespacetemp 创建一个名称为martin的用户 其密码为martinpwd 授予权限3 1 权限指的是执行特定命令或访问数据库对象的权利权限有两种类型 系统权限和对象权限系统权限允许用户执行某些数据库操作 如创建表就是一个系统权限对象权限允许用户对数据库对象 如表 视图 序列等 执行特定操作角色是一组相关权限的组合 可以将权限授予角色 再把角色授予用户 以简化权限管理 授予权限3 2 grant命令可用于为用户分配权限或角色 grantconnecttomartin connect角色允许用户连接至数据库 并创建数据库对象 grantresourcetomartin resource角色允许用户使用数据库中的存储空间 grantcreatesequencetomartin 此系统权限允许用户在当前模式中创建序列 此权限包含在connect角色中 授予权限3 3 授予用户martin操作test表对象的权限 grantselectontesttomartin 允许用户查询test表的记录 grantupdateontesttomartin 允许用户更新test表中的记录 grantallontesttomartin 允许用户插入 删除 更新和查询test表中的记录 更改和删除用户 alteruser命令可用于更改口令 alterusermartinidentifiedbymartinpass 修改martin用户的密码 dropuser命令用于删除用户 dropusermartincascade 删除martin用户模式 oracle9i的安装和卸载 通过运行oracleuniversalinstaller来安装和卸载oracle数据库 选择oracle9idatabase9 2 0 1 0来安装数据库服务器 选择oracle9iclient9 2 0 1 0来安装oracle客户端 启动universalinstaller 选择 卸装产品 选中要卸载的组件 使用oracle数据库的开发流程 服务器端 安装oracle服务器软件 创建数据库 安装时自动创建 配置监听器 安装时自动配置 启动oracle实例 自动启动服务 安装oracle客户端软件 配置网络服务名 以新用户登录oracle 提交sql查询 创建新用户并授权 创建用户表空间 客户端 windows中的oracle服务3 1 oracle9i的每个实例在windows中都作为一项服务启动服务是在windows注册表中注册的可执行进程 由windows操作系统管理 服务 对话框中的各项oracle服务如图所示 windows中的oracle服务3 2 oraclehome nametnslistener 该服务启动数据库服务器的监听器 监听器接受来自客户端应用程序的连接请求若监听器未启动 则客户端将无法连接到数据库服务器 oracleservicesid 该服务启动系统标识符为sid的数据库实例 其中sid是在安装oracle9i时输入的数据库名称 oraclehome nameagent oracle企业管理器组件智能代理服务 此智能代理用于执行作业和监控oracle服务或对象的性能在使用oracle管理服务器网络的环境中必须启动此服务 windows中的oracle服务3 3 oraclehome namehttpserver 该服务用于启动oraclehttp服务器 它提供文档信息 基于web的企业管理器和isql plus等服务 oraclehome namemanagementserver 该服务启动oracle管理服务器 它用于维护管理控制台对各个被管理服务器节点之间的集中的 智能的和分布式的控制该服务必须经过企业管理器配置向导配置完成后才创建 总结 oracle服务器由oracle数据库和oracle实例组成oracle实例由系统全局区内存结构和用于管理数据库的后台进程组成oracle中用于访问数据库的主要查询工具有sql plus isql plus和pl sqloracle企业管理器是用于管理 诊断和调整多个数据库的工具oracle中的system用户和sys用户具有管理权限 而scott用户只有基本的权限oracle服务在windows注册表中注册 并由windows操作系统管理 第二章 sql查询和sql函数 oracle服务器由oracle数据库和oracle实例组成oracle实例由系统全局区内存结构和用于管理数据库的后台进程组成oracle中用于访问数据库的主要查询工具有sql plus isql plus和pl sqloracle企业管理器是用于管理 诊断和调整多个数据库的工具oracle中的system用户和sys用户具有管理权限 而scott用户只有基本的权限 回顾 目标 了解oracle数据类型了解数据定义语言和数据操纵语言了解事务控制语言和数据控制语言掌握sql操作符和sql函数 sql简介2 1 sql是structuredquerylanguage 结构化查询语言 的首字母缩写词sql是数据库语言 oracle使用该语言存储和检索信息表是主要的数据库对象 用于存储数据 通过sql可以实现与oracle服务器的通信 发送sql查询 用户 sql简介2 2 sql支持下列类别的命令 数据定义语言 ddl 数据操纵语言 dml 事务控制语言 tcl 数据控制语言 dcl 数据定义语言 create alter drop 数据操纵语言 insert select delete update 事务控制语言 commit savepoint rollback 数据控制语言 grant revoke oracle数据类型5 1 创建表时 必须为各个列指定数据类型以下是oracle数据类型的类别 数据类型 字符 数值 日期时间 raw longraw lob oracle数据类型5 2 字符数据类型 char varchar2 long 当需要固定长度的字符串时 使用char数据类型 char数据类型存储字母数字值 char数据类型的列长度可以是1到2000个字节 varchar2数据类型支持可变长度字符串varchar2数据类型存储字母数字值varchar2数据类型的大小在1至4000个字节范围内 long数据类型存储可变长度字符数据long数据类型最多能存储2gb oracle数据类型5 3 数值数据类型可以存储整数 浮点数和实数最高精度为38位数值数据类型的声明语法 number p s p表示精度 s表示小数点的位数 日期时间数据类型存储日期和时间值 包括年 月 日 小时 分钟 秒主要的日期时间类型有 date 存储日期和时间部分 精确到整个的秒timestamp 存储日期 时间和时区信息 秒值精确到小数点后6位 oracle数据类型5 4 raw数据类型用于存储二进制数据raw数据类型最多能存储2000字节longraw数据类型用于存储可变长度的二进制数据longraw数据类型最多能存储2gb lob lob称为 大对象 数据类型 可以存储多达4gb的非结构化信息 例如声音剪辑和视频文件等lob数据类型允许对数据进行高效 随机 分段的访问 blob clob bfile clob即characterlob 字符lob 它能够存储大量字符数据 blob即binarylob 二进制lob 可以存储较大的二进制对象 如图形 视频剪辑和声音文件 bfile即binaryfile 二进制文件 它用于将二进制数据存储在数据库外部的操作系统文件中 oracle数据类型5 5 oracle中伪列就像一个表列 但是它并没有存储在表中伪列可以从表中查询 但不能插入 更新和删除它们的值常用的伪列有rowid和rownum rowid是表中行的存储地址 该地址可以唯一地标识数据库中的一行 可以使用rowid伪列快速地定位表中的一行 rownum是查询返回的结果集中行的序号 可以使用它来限制查询返回的行数 数据定义语言 数据定义语言用于改变数据库结构 包括创建 更改和删除数据库对象用于操纵表结构的数据定义语言命令有 createtablealtertabletruncatetabledroptable 数据操纵语言 数据操纵语言用于检索 插入和修改数据数据操纵语言是最常见的sql命令数据操纵语言命令包括 selectinsertupdatedelete dml select命令2 1 利用现有的表创建表语法 createtableasselectcolumn namesfrom sql createtablenewitemfileasselect fromitemfile sql createtablenewitemfile1asselectitemcode itemdesc qty handfromitemfile sql createtablenewitemfile2asselect fromitemfilewhere1 2 dml select命令2 2 sql selectdistinctvencodefromvendor master 选择无重复的行在select子句 使用distinct关键字 使用列别名为列表达式提供不同的名称该别名指定了列标题 sql selectitemcode itemdesc max level max level 2asnew maxlevelfromitemfile sql selectitemcode itemdesc max level max level 2 newmaximumlevel fromitemfile dml insert命令2 1 插入日期类型的值日期数据类型的默认格式为 dd mon rr 使用日期的默认格式使用to date函数转换 insertintomy table date col values to date 2005 10 18 yyyy mm dd insertintoorder mastervalues o001 12 5月 05 v002 c 25 5月 05 dml insert命令2 2 插入来自其它表中的记录语法 insertinto cloumn list selectcolumn namesfrom sql insertintonewvendor masterselect fromvendor master sql insertintonewvendor master vencode venname selectvencode vennamefromvendor master 事务控制语言 事务是最小的工作单元 作为一个整体进行工作保证事务的整体成功或失败 称为事务控制用于事务控制的语句有 commit 提交并结束事务处理rollback 撤销事务中已完成的工作savepoint 标记事务中可以回滚的点 sql updateorder mastersetdel date 30 8月 05 whereordernosavepointmark1 sql deletefromorder masterwhereorderno o002 sql savepointmark2 sql rollbacktosavepointmark1 sql commit 数据控制语言 数据控制语言为用户提供权限控制命令用于权限控制的命令有 grant授予权限revoke撤销已授予的权限 sql grantselect updateonorder mastertomartin sql grantupdate qty hand re level onitemfiletomartin sql grantselectonvendor mastertoaccountswithgrantoption sql revokeselect updateonorder masterfrommartin sql操作符 sql操作符 集合操作符 逻辑操作符 比较操作符 算术操作符 连接操作符 oracle支持的sql操作符分类如下 算术操作符 算术操作符用于执行数值计算可以在sql语句中使用算术表达式 算术表达式由数值数据类型的列名 数值常量和连接它们的算术操作符组成算术操作符包括加 减 乘 除 sql selectitemdesc max level qty handavble limitfromitemfilewherep category spares sql selectitemdesc itemrate max level qty hand fromitemfilewherep category spares 比较操作符 比较操作符用于比较两个表达式的值比较操作符包括 between and in like和isnull等 sql selectitemdesc re levelfromitemfilewhereqty hand max level 2 sql selectordernofromorder masterwheredel datein 06 1月 05 05 2月 05 sql selectvencode venname tel nofromvendor masterwherevennamelike j s 逻辑操作符 sql select fromorder masterwhereodate 10 5月 05 anddel date 26 5月 05 显示2005 5月 10至2005 5月 26的订单信息 逻辑操作符用于组合多个计较运算的结果以生成一个或真或假的结果 逻辑操作符包括与 and 或 or 和非 not 集合操作符 集合操作符将两个查询的结果组合成一个结果 集合操作符 union unionall intersect minus intersect操作符只返回两个查询的公共行 sql selectordernofromorder masterintersectselectordernofromorder detail sql selectordernofromorder masterminusselectordernofromorder detail minus操作符返回从第一个查询结果中排除第二个查询中出现的行 连接操作符 连接操作符用于将多个字符串或数据值合并成一个字符串 sql select venname 的地址是 venadd1 venadd2 venadd3 addressfromvendor masterwherevencode v001 通过使用连接操作符可以将表中的多个列合并成逻辑上的一行列 操作符的优先级 sql操作符的优先级从高到低的顺序是 算术操作符 最高优先级连接操作符比较操作符not逻辑操作符and逻辑操作符or逻辑操作符 最低优先级 sql函数 oracle提供一系列用于执行特定操作的函数sql函数带有一个或多个参数并返回一个值以下是sql函数的分类 sql函数 单行函数 分析函数 分组函数 单行函数分类 单行函数对于从表中查询的每一行只返回一个值可以出现在select子句中和where子句中单行函数可以大致划分为 日期函数数字函数字符函数转换函数其他函数 日期函数 日期函数对日期值进行运算 并生成日期数据类型或数值类型的结果日期函数包括 add monthsmonths betweenlast dayroundnext daytruncextract 字符函数2 1 字符函数 字符函数接受字符输入并返回字符或数值 字符函数2 2 sql selectchr 67 fromdual 以下是一些其它的字符函数 chr和asciilpad和rpadtrimlengthdecode sql selectlpad function 15 fromdual sql selecttrim 9from9999876789999 fromdual sql selectlength frances fromdual sql selectvencode decode venname frances francis namefromvendor masterwherevencode v001 数字函数 数字函数接受数字输入并返回数值结果 数字函数 转换函数 转换函数将值从一种数据类型转换为另一种数据类型常用的转换函数有 to charto dateto number selectto char sysdate yyyy 年 fmmm 月 fmdd 日 hh24 mi ss fromdual selectto char itemrate c99999 fromitemfile selectto date 2005 12 06 yyyy mm dd fromdual selectto number 100 fromdual 其它函数 以下是几个用来转换空值的函数 nvlnvl2nullif selectitemdesc nvl re level 0 fromitemfile selectitemdesc nvl2 re level re level max level fromitemfile selectitemdesc nullif re level max level fromitemfile 分组函数 分组函数基于一组行来返回结果为每一组行返回一个值 avg min max sum count selectavg re level fromitemfilewherep category accessories selectmax max level fromitemfile selectsum itemrate max level fromitemfile selectcount fromitemfile selectcount itemrate fromitemfile selectcount distinctqty hand fromitemfile 分组函数 groupby和having子句 groupby子句用于将信息划分为更小的组每一组行返回针对该组的单个结果having子句用于指定groupby子句检索行的条件 selectp category max itemrate fromitemfilegroupbyp category selectp category max itemrate fromitemfilegroupbyp categoryhavingp categorynotin accessories 分析函数2 1 分析函数根据一组行来计算聚合值用于计算完成聚集的累计排名 移动平均数等分析函数为每组记录返回多个行 分析函数 dense rank rank row number 分析函数2 2 以下三个分析函数用于计算一个行在一组有序行中的排位 序号从1开始row number返回连续的排位 不论值是否相等rank具有相等值的行排位相同 序数随后跳跃dense rank具有相等值的行排位相同 序号是连续的 selectename job deptno sal row number over orderbysaldesc assal rankfromscott emp selectdeptno ename sal comm rank over partitionbydeptnoorderbysaldesc comm rankfromemp selectd dname e ename e sal dense rank over partitionbye deptnoorderbye saldesc asdenrankfromempe deptdwheree deptno d deptno 总结 sql是通用的数据库语言sql命令可分为数据定义语言 数据操纵语言 事务控制语言和数据控制语言oracle支持的数据类型包括字符 数值 日期时间 raw和lob等sql支持的操作符包括算术 比较 逻辑 集合和连接操作符sql函数可大致分为单行函数 聚合函数和分析函数 第三章 锁和表分区 回顾 sql是数据库语言 oracle使用该语言在数据库中存储和检索信息oracle支持各种数据类型 如varchar2 number long raw和date等数据操纵语言用于查询和修改表中的数据事务控制语言管理事务的一致性sql操作符包括算术 比较 逻辑 集合和连接操作符sql函数可以大致分为单行函数 聚合函数和分析函数 目标 理解锁定的概念了解和使用表分区 锁的概念2 1 锁是数据库用来控制共享资源并发访问的机制 锁用于保护正在被修改的数据直到提交或回滚了事务之后 其他用户才可以更新数据 锁的概念2 2 修改表 修改表 拒绝访问 锁定的优点 一致性 一次只允许一个用户修改数据完整性 为所有用户提供正确的数据 如果一个用户进行了修改并保存 所做的修改将反映给所有用户 并行性 允许多个用户访问同一数据 修改表中的数据 查看表中的数据 允许访问 表级锁 行级锁 锁的类型 锁的类型 行级锁3 1 更新t002行 更新t001行 行被锁定 对正在被修改的行进行锁定 其他用户可以访问除被锁定的行以外的行 允许访问 行级锁3 2 行级锁是一种排他锁 防止其他事务修改此行在使用以下语句时 oracle会自动应用行级锁 insertupdatedeleteselect forupdateselect forupdate语句允许用户一次锁定多条记录进行更新使用commit或rollback语句释放锁 行级锁3 3 select forupdate语法 select forupdate ofcolumns waitn nowait sql select fromorder masterwherevencode v002 forupdateofodate del date sql updateorder mastersetdel date 28 8月 05 wherevencode v002 sql commit sql select fromorder masterwherevencode v002 forupdatewait5 sql select fromorder masterwherevencode v002 forupdatenowait 表级锁3 1 修改表中的行 更新表 拒绝访问 锁定整个表 限制其他用户对表的访问 表级锁3 2 表级锁类型 行共享 行排他 共享 使用命令显示地锁定表 应用表级锁的语法是 locktabletable nameinmodemode 共享行排他 排他 表级锁3 3 行共享 rowshare 禁止排他锁定表行排他 rowexclusive 禁止使用排他锁和共享锁共享锁 share 锁定表 仅允许其他用户查询表中的行禁止其他用户插入 更新和删除行多个用户可以同时在同一个表上应用此锁共享行排他 sharerowexclusive 比共享锁更多的限制 禁止使用共享锁及更高的锁排他 exclusive 限制最强的表锁 仅允许其他用户查询该表的行 禁止修改和锁定表 死锁 当两个事务相互等待对方释放资源时 就会形成死锁oracle会自动检测死锁 并通过结束其中的一个事务来解决死锁右边是一个死锁的例子 表分区 允许用户将一个表分成多个分区用户可以执行查询 只访问表中的特定分区将不同的分区存储在不同的磁盘 提高访问性能和安全性可以独立地备份和恢复每个分区 更新表 只访问p1 p1分区 p2分区 表分区的类型9 1 分区方法 范围分区 散列分区 列表分区 复合分区 表分区的类型9 2 范围分区以表中的一个列或一组列的值的范围分区范围分区的语法 partitionbyrange column name partitionpart1valuelessthan range1 partitionpart2valuelessthan range2 partitionpartnvaluelessthan maxvalue 表分区的类型9 3 sql createtablesales product idvarchar2 5 sales costnumber 10 partitionbyrange sales cost partitionp1valueslessthan 1000 partitionp2valueslessthan 2000 partitionp3valueslessthan 3000 根据sales cost创建分区 分区的名称 包含销售成本低于1000的所有产品的值 sql createtablesales2 product idvarchar2 5 sales datedatenotnull sales costnumber 10 partitionbyrange sales date partitionp1valueslessthan date 2003 01 01 partitionp2valueslessthan date 2004 01 01 partitionp3valueslessthan maxvalue 范围分区示例 表分区的类型9 4 散列分区允许用户对不具有逻辑范围的数据进行分区通过在分区键上执行hash函数决定存储的分区将数据平均地分布到不同的分区散列分区语法 partitionbyhash column name partitionsnumber of partitions 或partitionbyhash column name partitionpart1 tablespacetbs1 partitionpart2 tablespacetbs2 partitionpartn tablespacetbsn 表分区的类型9 5 散列分区示例 sql createtableemployee employee idvarchar2 5 employee namevarchar2 20 departmentvarchar2 10 partitionbyhash department partitiond1 partitiond2 partitiond3 在表employee上创建分区键department 分区的名称 创建3个分区 sql createtableemployee emp idnumber 4 emp namevarchar2 14 emp addressvarchar2 15 departmentvarchar2 10 partitionbyhash department partitions4 表分区的类型9 6 列表分区允许用户将不相关的数据组织在一起列表分区的语法 partitionbylist column name partitionpart1values values list1 partitionpart2values values list2 partitionpartnvalues default 表分区的类型9 7 sql createtableemployee emp idnumber 4 emp namevarchar2 14 emp addressvarchar2 15 partitionbylist emp address partitionnorthvalues 芝加哥 partitionwestvalues 旧金山 洛杉矶 partitionsouthvalues 亚特兰大 达拉斯 休斯顿 partitioneastvalues 纽约 波斯顿 包含住在芝加哥的职员的记录 根据职员住址在表上创建的列表分区 分区的名称 列表分区示例 表分区的类型9 8 复合分区范围分区与散列分区或列表分区的组合复合分区的语法 partitionbyrange column name1 subpartitionbyhash column name2 subpartitionsnumber of partitions partitionpart1valuelessthan range1 partitionpart2valuelessthan range2 partitionpartnvaluelessthan maxvalue 表分区的类型9 9 sql createtablesales product idvarchar2 5 sales datedatenotnull sales costnumber 10 partitionbyrange sales date subpartitionbyhash product id subpartitions5 partitions1valueslessthan to date 01 4月 2001 dd mon yyyy partitions2valueslessthan to date 01 7月 2001 dd mon yyyy partitions3valueslessthan to date 01 9月 2001 dd mon yyyy partitions4valueslessthan maxvalue 创建的四个范围分区的名称 在表的sales date列中创建范围分区 在表的product id列创建散列子分区 在每个范围分区中创建5个散列子分区 复合分区示例 操纵已分区的表 在已分区的表中插入数据与操作普通表完全相同 oracle会自动将数据保存到对应的分区查询 修改和删除分区表时可以显式指定要操作的分区 insertintosales3values p001 02 3月 2001 2000 insertintosales3values p002 10 5月 2001 2508 insertintosales3values p003 05 7月 2001 780 insertintosales3values p004 12 9月 2001 1080 select fromsales3partition p3 deletefromsales3partition p2 分区维护操作 分区维护操作修改已分区表的分区 分区维护的类型 计划事件 定期删除最旧的分区非计划事件 解决应用程序或系统问题分区维护操作有 添加分区删除分区截断分区合并分区拆分分区 维护分区2 1 添加分区 在最后一个分区之后添加新分区 sql altertablesalesaddpartitionp4valueslessthan 4000 删除分区 删除一个指定的分区 分区的数据也随之删除 sql altertablesalesdroppartitionp4 截断分区 删除指定分区中的所有记录 sql altertablesalestruncatepartitionp3 维护分区2 2 合并分区 将范围分区或复合分区的两个相邻分区连接起来 sql altertablesalesmergepartitionss1 s2intopartitions2 拆分分区 将一个大分区中的记录拆分到两个分区中 sql altertablesalessplitpartitionp2at 1500 into partitionp21 partitionp22 总结 锁用于保护多用户环境下被修改的数据锁分为两种级别 即行级锁和表级锁表分区允许将一个表划分成几部分 以改善大型应用系统的性能分区方法包括范围分区 散列分区 复合分区和列表分区分区维护操作包括添加 删除 截断 合并和拆分分区 第四章 数据库对象 回顾 锁用于保护多用户环境下被修改的数据锁分为两种级别 即行级锁和表级锁表分区允许将一个表划分成几部分 以改善大型应用系统的性能分区方法包括范围分区 散列分区 复合分区和列表分区分区维护操作包括添加 删除 截断 合并和拆分分区 目标 使用同义词使用序列创建视图创建索引 数据库对象简介 oracle数据库对象又称模式对象数据库对象是逻辑结构的集合 最基本的数据库对象是表其他数据库对象包括 数据库对象 同义词 序列 视图 索引 同义词3 1 同义词是现有对象的一个别名 简化sql语句隐藏对象的名称和所有者提供对对象的公共访问同义词共有两种类型 同义词 私有同义词 公有同义词 私有同义词只能在其模式内访问 且不能与当前模式的对象同名 公有同义词可被所有的数据库用户访问 同义词3 2 createsynonymempforscott emp scott emp的别名 模式名 表名 私有同义词 公有同义词 createpublicsynonymemp synforscott emp 同义词名称 同义词3 3 创建或替换现有的同义词 create
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农村住宅购买合同
- 2025农业科技租赁合同范本
- 2025年乡镇药房考试题及答案
- 物体压强题目及答案高中
- 2025餐厅转让合同样本
- 营销渠道专业知识培训课件
- 营销案例知识培训
- 2025年甾体药物项目建议书
- 物料仓库培训试题及答案
- 2024人教版七年级生物上册期末复习知识点提纲(填空版+答案版)
- 企业劳动用工法律风险与防范
- 露天矿山危险源辨识汇总
- 2022年08月安徽省芜湖市招考大学生科技特派员岗位冲刺题(带答案)
- 国家城镇救援队伍能力建设与分级测评指南
- 部编版五年级语文上册(精美)课件 2 落花生
- 口腔修复学-纤维桩-PPT课件
- 变压器套管课件
- 物业公司员工绩效考核表
- SAP BASIS 日常维护手册
- CAESARII 应用实例
- 《中式面点制作(第二版)》全套教案(高教版)
评论
0/150
提交评论