您好,欢迎访问三七文档
公司徽标Oracle学习(一)Oracle简介•Oracle是一种对象关系数据库管理系统(ORDBMS)。提供了关系数据库和面向对象数据库这两者的功能。•Oracle产品基于一种称为”客户机/服务器技术”的概念。•Oracle使用Internet文件系统,该系统是一种基于Java的应用程序,它可以使数据库成为基于Internet的开发平台。Oracle简介•数据库都包含下列组件:–物理组件•DatabaseFiles(数据库文件)•ControlFiles(控制文件)•RedoLogFiles(恢复日志文件)–逻辑组件•Tablespaces(表空间)•Segments(段)•Extents(数据区)Oracle---•数据库文件或数据文件(*.dbf)–RDBMS由一个或多个数据库文件组成.这些文件是物理操作系统文件,包括如用户数据、系统数据等数据信息。逻辑数据库结构建立在这些文件之上.–创建好的数据库至少包含一个数据文件。之后可按照自己的需要添加数据文件。–一个数据文件只可以属于一个数据库。一个和多个数据文件形成了数据库的一个逻辑单位,这个逻辑单位称为表空间–数据库最终操作都是对这些文件进行读写操作,数据文件中的数据以块为单位.块的大小通常取决于操作系统Oracle---物理组件•控制文件(*.ctl)–每个已建好的数据库具有一个控制文件。控制文件存储数据库的物理结构,即与数据库相关的所有文件的信息,包括:•数据库的名字•数据文件和恢复日志文件的名字及其位置•时间戳(这些信息包括了数据库的名字,创建时间,数据文件名称及位置、日志文件名称通过控制文件访问数据文件和日志文件)–只要数据库实例启动,控制文件将用于查找和定位数据库组件,在出错以及恢复数据库过程中也将使用控制文件。–控制文件是存储在硬盘上的物理文件,它存储数据库的物理结构和与该数据库相关的所有文件的信息Oracle---物理组件•恢复日志文件(*.log)–恢复日志文件是操作系统文件集,记载对数据库的任何修改,由RDBMS用于记录对数据库所做的更改。该信息作为事务进程的一部分由数据库进行维护,每个事务都被记录到恢复日志文件。–数据库通常有两个或多个恢复日志文件。恢复日志以循环方式工作。–恢复日志的功能受数据库运行的模式控制:•NOARCHIVELOGMODE(不归档模式)–如果日志已经都被写满,需要继续写的时候,将以前的恢复日志文件的内容重写,这样以前的日志信息将被冲洗掉(默认为这种)•ARCHIVELOGMODE(归档模式)–在日志切换发生前生成当前日志文件的物理副本。这些文件称为归档文件Oracle---逻辑组件•逻辑组件决定数据库中物理空间的使用–Tablespaces(表空间)–Segments(段)–Extents(数据区)–SchemaObjects(模式对象)Oracle---逻辑组件•表空间–数据库由称为表空间的逻辑单位组成。一个数据库可以包含一个或多个表空间.表空间包含一组相关的数据库对象.–逻辑表空间具有一个或多个与之相关的物理数据库文件.•Oracle中典型的表空间–SYSTEM表空间,用于存储数据库管理自身所需的所有信息,即数据词典信息.–DATA表空间,用于存储关于用户的信息–USER表空间,用于存储关于用户信息–TOOLS表空间,用于存储不同工具所需的数据库对象–TEMP表空间,用于存储在大型排序操作过程中创建的所有临时表.Oracle---逻辑组件•每个数据库都在逻辑上分成一个或多个表空间•将为每个表空间显示创建一个或多个数据文件,以将所有物理结构的数据存储在一个表空间之内•表空间数据文件的组合大小和表空间的总的存储容量•数据库表空间的组合存储容量是数据库的总的存储容量Oracle---逻辑组件•段–表空间中的逻辑单位形式上为段.表空间中的数据存储在分配的数据库空间(称为段)中.段被定义成给逻辑数据库•数据段•索引段•回滚段----(数据的前映象保存修改前的数据)•临时段----(形成临时表空间)Oracle---逻辑组件•数据区–由一定数目的相邻数据块组成,段是数据区的集合.创建表的时候,Oracle将一定数目的数据块组成的初始数据区分配给表的数据段.尽管还没有插入任何行,但是已经为该表的行留出了与初始数据区对应的Oracle数据块–如果数据区的数据块已经满了,而且还需要更多空间存储新的数据,则Oracle将自动为该段分配新增数据区.(最小的区数10区----最大的区数为22区)Oracle---数据区•数据块–最小粒度的逻辑单位–数据块代表数据库存储粒度的最细级别.数据块大小定义为一定数目的字节数,此数目通常取决与操作系统.Oracle---创建表空间–数据库由称为表空间的逻辑单位组成。一个数据库可以包含一个或多个表空间.表空间包含一组相关的数据库对象.–逻辑表空间具有一个或多个与之相关的物理数据库文件.•CreateTablespace[space]–datafile‘[filename]'size[size]–defaultstorage•(initial[initvalue]next[nextvalue]maxextents–unlimitedpctincrease50)online;createtemporarytablespace[space]Tempfile‘[filename]’size[size]……临时表空间修改和删除表空间•修改表空间–Altertablespacespaceadd[RNAME]datafile[TO]datafile–DroptablespacespaceINCLUDINGCONTENTS;Oracle---创建表空间•查看当前数据库中的表空间–SELECT*FROMDBA_TABLESPACESOracle---创建用户•Createuser[userName]–identifiedby[userPassword]–defaulttablespace[表空间名];–temporaryTABLESPACE[Temp]–quotaunlimitedonTABLESPACEOracle---设置权限•GRANT语句用来对用户进行特定权限的设置–Grant[权限名,…]on[数据库对象]to[用户名]•将某一个数据对象的操作权限付给某一用户–Grant[权限,…]To[用户名][WITHADMINOPTION]•将系统权限赋给某一用户,这个该用户可以给其他用户赋权限Oracle---设置权限•REVOKE---将某一权限取消掉–REVOKE[权限名,…]on[数据库对象]•From[权限接收者]–从数据库的某一对象上取消某一用户的原有权限Oracle---设置权限对象权限对象类型说明ALTER表、序列对对象使用ALTER语句DELETE表、视图、可更新的具体化视图运行进行DELETE操作EXCUTE过程、函数、包和对象类型允许执行PL/SQL对象INDEX表使用CreateIndex命令INSERT表、视图、可更新的具体化视图允许使用INSERT操作SELECT表、视图、可更新的具体化视图允许对对象使用SELECTUPDATE表、视图、可更新的具体化视图对对象使用UPDATE语句REFERENCES表允许创建一个限制指向该表Oracle---设置权限对象权限对象类型说明ONCOMMITREFRESH具体化视图在指定的表上创建提交时及时刷新的视图QUERYREWRITE具体化视图创建查询时重写入具体化视图READ目录从指定目录中读取REFERENCES表允许创建一个限制指向该表UNDER对象类型允许创建特定的子类型对象在8i或更高级版本中运用Oracle---设置角色角色本质上是一个权限的集合,包括对象权限的系统权限。CREATEROLE[ROLE_NAME]---创建一个角色GRANT[权限名]ON[数据库对象]TO[ROLE_NAME]----将某一权限设置给该角色Oracle---设置角色角色名所授权权限CONNECT可对表空间的对象进行一些查询操作RESOURCE可以对数据库中的对象进行添加和修改操作EXP_FULL_DATABASE可以执行一些数据备份的命令操作DBA具有对数据库的管理权限Oracle---序列•序列是Oracle提供的一个对象,可以用来生成唯一、连续的整数•Createsequenceseq–[INCREMENTBYn]---序列号之间的间隔–[STARTWITHn]---第一个序列号–[{MAXVALUEn/NOMAXVALUE}]---可生成的最大值–[{MINVALUEn/NOMINVALUE}]---序列最小值–[{CYCLE/NOCYCLE}]---当序列达到最小或最大值后是否重新开始生成值–[{CACHEn/NOCACHE}];---是否使用缓存Oracle---序列•修改序列–通过alertsequence语句来修改序列定义•设置或删除MINVALUE或MAXVALUE•修改增量值•修改缓存中的序列号的数目•不能包含startwith参数值–Altersequencesequ•[INCREMENTBYn]•[MACVALUEn/NOMAXVALUE]•[MINVALUEn/NOMINVALUE]•[CYCLE/NOCYCLE]•[CACHEn/NOCACHE];Oracle---序列•删除序列–DropsequencesequOracle---伪列•Oracle提供了一种在表结构中不实际存在列,称为伪列–Nextval–Currval–ROWNUM•oracle系统顺序分配为从查询返回的行的编号•当不能已其他表的别名来做前缀名–ROWID•rowid就是唯一标志记录物理位置的一个id•data_object_id#+rfile#+block#+row#组成,占用10个bytes的空间–LEVEL•仅仅用在对表执行层次树遍历的SELECT语句中,使用STARTWITH和CONNECTBY子句•LEVEl把树的当前层次作为一个NUMBER数值返回.Oracle---ROWNUM的运用•只能用以上符号(、=、!=)•不能用:,=,=,Between...and–select*from–(selectrownumr,a.*fromempawhererownum10)bwhereb.r1;–可以用来实现分页查询查询操作Oracle---LEVEL的运用•如在做EMP表的操作的时候,按层次查询出某一个管理者所带的员工信息–selectlpad('',4*(level-1))||enameename,empno,mgrfromemp–startwithmgrisnull–connectbypriorempno=mgr;集合操作符•Union返回查询所选定的所有的行,去重复的–Selectordernofromorder_master–Union–Selectordernofromorder_detail•Unionall返回两个查询所选定的所有行,包括重复行–Selectordernofromorder_master–Unionall–Selectordernofromorder_detail•Intersect仅返回两个查询都有的行–Selectordernofromorder_master–Intersect–Selectordernofromorder_detail•Minus返回仅由第一个查询选定并且没有被第二个查询选定的所有不同行–Selectordernofromorder_master–Minus–Selectordernofromorder_detail
本文标题:Oracle2基础
链接地址:https://www.777doc.com/doc-10438 .html