《oracle数据库基础》PPT课件.ppt_第1页
《oracle数据库基础》PPT课件.ppt_第2页
《oracle数据库基础》PPT课件.ppt_第3页
《oracle数据库基础》PPT课件.ppt_第4页
《oracle数据库基础》PPT课件.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle数据库基础,2,目标,Oracle简介Oracle数据库组件Oracle的结构化查询工具Oracle主要数据类型Oracle的数据完整性SQL语言SQL命令的类别,3,Oracle简介,关系数据库:是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。目前主流的关系数据库有oracle、sqlserver、mysql、access、db2、sybase等。Oracle是一种对象关系数据库管理系统(ORDBMS)。Oracle提供了关系数据库系统和面向对象数据库系统这二者的功能Oracle产品基于一种称为“客户机/服务器技术”的概念客户机-用户和数据库之间的接口服务器-存储和管理数据使用Internet文件系统该系统是一种基于Java的应用程序,它可以使数据库成为基于Internet的开发平台,4,Oracle数据库组件,数据库由下列组件构成:DatabaseFile数据库文件(*.dbf)ControlFile控制文件(*.ctl)RedoLogFiles恢复日志文件(*.log)Tablespaces表空间Segments段Extents扩展区上面的组件可以分类如下:物理组件逻辑组件,物理组件,物理组件是数据实际所在的操作系统的文件。而用户无法直接访问这些文件中的信息,用户需要使用逻辑组件访问这些信息。物理组件是构成数据库的操作系统文件物理组件为数据库信息提供了实际的物理存储器操作系统文件有三种类型:数据库文件或数据文件(*.dbf)包括所有数据库数据,如用户数据、系统数据和Overhead数据的数据已创建好的数据库至少包括一个数据文件,数据文件只可属于一个数据库数据文件中的数据以块为单位一个或多个数据文件形成了数据库的一个逻辑单位,这些逻辑单位称为表空间。数据文件可与一个而且只能与一个表空间相关。控制文件(*.ctl)创建数据库时,就创建了控制文件已建好的数据库具有一个控件文件。控件文件是存储在硬盘上的物理文件。它存储数据库的物理结构,即与数据库相关的所有文件的信息。该信息包括:数据库的名称、数据文件和恢复日志文件的名称及其位置、时间戳只要数据库实例启动,控件文件将用于查找和定位数据库组件。在出错及恢复数据库的过程中也将使用控件文件。恢复日志文件(*.log)恢复日志文件是操作系统文件集,由RDBMS用于记录对数据库所做的更改。如果数据库出现故障,则可从恢复日志中访问并重新应用对数据库所做的更改,这样即可保护已完成的工作不受损失恢复日志以循环方式工作。恢复日志的功能受数据库运行运行的模式控制:NOARCHIVELOGMODE(不归档模式)、ARCHIVELOGMODE(归档模式),逻辑组件,逻辑组件决定数据库中物理空间的使用。数据库有下列逻辑组件:Tablespace(表空间)Segments(段)Extents(扩展区)SchemaObject(架构对象)表空间、段和扩展区是逻辑结构,它们决定模式对象存储空间的使用情况。,表空间1,数据库由称为表空间的逻辑单位组成一个数据库为可以包含一个或多个表空间表空间包含一组相关的数据库对象逻辑表空间具有一个或多个与之相关的物理数据库文件,但是一个数据文件只能与一个表空间相关联。Oracle数据库中的典型表空间是:SYSTEM表空间用于存储数据库管理自身所需的所有信息,即数据词典信息DATA表空间用于存储实际数据USER表空间用于存储关于用户的信息TOOLS表空间用于存储不同工具所需的数据库对象TEMP表空间用于存储在大型排序操作过程中所创建存储的所有临时表。它一般在处理过程中用作缓冲空间,表空间2,上图阐明了如下情况:每个数据库都在逻辑上分成一个或多个表空间将为每个表空间显式创建一个或多个数据文件,以将所有物理结构的数据存储在一个表空间之内表空间数据文件的组合大小是表空间的总的存储容量(SYSTEM表空间具有2MB存储容量,USER表空间有4MB)数据库表空间的组合存储容量是数据库的总的存储容量(6M),表空间3,表空间可以用于:控制数据库对象的空间分配,如表和索引设置数据库用户的空间配额通过使单个表空间联机或脱机来控制数据的可用性备份或恢复数据,10,段,表空间中的逻辑单位形式上为段表空间中的数据存储在分配的数据库空间中,称为段段被定义成给逻辑数据库结构分配的扩展区集合不同类型的段:数据段索引段回滚段临时段,扩展区1,扩展区由一定数目的相邻数据块组成,段是扩展区的集合增量扩展区是与上次该段中分配的扩展区大小相同或更大的后续扩展区Oracle使用独立的算法搜索整个自由空间查找第一个具有与增量扩展区具有相同的或更大容量的自由、临近数据块集合,扩展区2,一旦Oracle在表空间中找到并分配了必需的可用空间,则它将分配一部分与新增扩展区大小相对应的可用空间Oracle更新段标题和数据词典,以显示新的扩展区已经被分配而且分配的空间不再可用,13,数据块,数据块代表数据库存储粒度的最细级别。数据块大小定义为一定数目的字节数,此数目通常取决于操作系统。,14,Oracle的结构化查询工具,主要的SQL工具包括:SQL*Plus它是一个可以接受和执行SQL命令以及PL/SQL块的工具,它可以用于:输入、编辑、存储、检索和运行SQL命令以及PL/SQL块为任意表列出列定义在SQL数据库之间访问和复制数据向用户发送消息,并从用户接受响应iSQL*Plus与SQL*Plus类似,但它主要用在Web的工作方式上,也就是说,它可以通过浏览器进行访问它还提供了可以修改SQL语句的联机编辑功能还可以使用iSQL*Plus将查询结果格式化为基本报告iSQL*Plus既可以访问远程数据库,也可以访问本地数据库。PL/SQL是SQL的扩展,它将SQL的数据操纵能力和过程语言的数据处理能力结合到了一起,SQL语言,15,SQL:即为StructuredQueryLanguage(结构化查询语言)SQL的优点:它是一种非过程语言,因为可以同时访问多个记录,而不是一次只能访问一个记录它是所有关系数据库的公用语言。也就是说,它是可以移植的,只需对它作极少的修改即可用于其它的数据库用于查询、插入、删除以及修改数据和对象的命令非常简单,SQL命令的类别,SQL命令的分类,数据定义语言(DDL),数据定义语言:用于创建对象(如:表)、修改对象的结构以及删除所创建的对象。表:是以行和列的形式存储数据的存储单元。用于定义表的数据定义语言可以被归类为下列的四个命令:CREATE命令ALTER命令TRUNCATE命令DROP命令,数据定义语言CREATETABLE命令1,CREATETABLE命令创建表的语法如下所示:CREATETABLEschema.table(columndatatypeDEFAULTexpr,);其中关键字schema表示对象所有者的名字。如果我们在自己的方案中创建表,则不需要指定所有者的姓名。table表示该表的名称。DEFAULT则用于在INSERT语句中省略了列值时为其指定默认值。column表示列的名称。datatype表示列的数据类型以及长度。创建表时,应指定下列内容:表的唯一名称表中各列的唯一名称列的数据类型及宽度,数据定义语言CREATETABLE命令2,表名的命名规则,应该严格遵循下列准则在对表进行命名时,第一个字母应该是字母表中的字母Oracle保留字不能用来对表命名表名的最大长度应=30个字符两个不同的表不能有相同的名称可以使用下划线、数字和字母,但不能使用空格和单引号如果用户使用了双引号对表进行命名,如“inf”,则要区分大小写。例如:“inf”,“INF”,和“inF”并不相同,Oracle主要数据类型1,Character数据类型Number数据类型Date数据类型Raw和LongRaw数据类型LOB数据类型,Oracle主要数据类型2,Character数据类型,Oracle主要数据类型3,Character数据类型,Oracle主要数据类型4,Number数据类型,Oracle主要数据类型5,浮点数据类型:BINARY_DOUBLE、BINARY_FLOAT这两种类型是oracle10g新引进的数值类型。在oracle10g之前是没有这两种类型的,这两种数据类型是在硬盘上执行运算,因而它们的运算速度要快很多,但它们的精度却很小。,Oracle主要数据类型6,Date数据类型,Oracle主要数据类型7,RAW和LONGRAW数据类型:用于存储二进制数据的数据类型。,Oracle主要数据类型8,LOB数据类型:LOB也称为LargeObject数据类型。此数据类型可以存储非结构化的信息,如:声音剪辑、视频文件等,它是最大大小为4GB。此数据类型允许有效、随机、分段地访问数据。,约束条件,表的框架是有一些规则的,约束条件就是对列定义的一种规则,一列中每个数据都必须遵循这种规则主键外键非空唯一默认值其他条件,Oracle的数据完整性,完整性约束:数据完整性(DataIntegrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。数据完整性分为四类:实体完整性(EntityIntegrity)域完整性(DomainIntegrity)参照完整性(ReferentialIntegrity)用户定义的完整性(User-definedIntegrity),实体完整性,实体完整性(EntityIntegrity):实体完整性规定表的每一行在表中是唯一的实体。在数据表中可以对相应字段进行如下约束来实现实体完整性:UNIQUE(唯一约束):保证在指定的列中没有重复值,在该表中每一个值或者每一组值都将是唯一的。PRIMARYKEY(主键约束):用来唯一的标识出表的每一行,并且防止出现NULL值,一个表只能有一个主键约束,主键可以由一个列或多个列组成。IDENTITY(自增标识列):自动增长的列,域完整性,域完整性(DomainIntegrity):是指数据库表中的列必须满足某种特定的数据类型或约束。域完整性有以下几种约束:CHECK(检查约束):检查在约束中指定的条件是否得到了满足。FOREIGNKEY(外键约束):通过使用公共列在表之间建立一种父子(parent-child)关系,在表上定义的外部键可以指向主键或者其他表的唯一键。DEFAULT(默认值约束):如果增加一行的数据时,不为这个列设置值,则通过这个默认值来填充该列的值。NOTNULL(不为空值约束):防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值,参照完整性,参照完整性(ReferentialIntegrity):是指两个表的主关键字和外关键字的数据应对应一致。参照完整性作用表现在如下几个方面:禁止在从表中插入主表中不存在的关键字的数据行禁止会导致从表中的相应值孤立的主表中的外关键字值改变禁止删除在从表中的有对应记录的主表记录,用户定义的完整性,用户定义的完整性(User-definedIntegrity):是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。数据库系统提供了定义和检验这类完整性的机制,以便用统一的系统方法来处理它们,而不是用应用程序来承担这一功能。其它的完整性类型都支持用户定义的完整性。,数据定义语言ALTERTABLE命令,有时根据情况,可能需要修改表的结构。这种修改可能是修改现有属性的特性,也可能是添加新属性。用于修改表名的语法如下:ALTERTABLERENAMETO新表名;用于修改现有列定义的语法如下:ALTERTABLEMODIFY(columndefinition,CONSTRAINTdefinition);用于向现有表中添加新的列的语法如下:ALTERTABLEADD(columndefinition,CONSTRAINTdefinition);用于从现有表中删除列的语法如下:格式1:ALTERTABLEDROPCOLUMN列名;格式2:ALTERTABLEDROP(列名1,列名2,.);用于从现有表中删除约束的语法如下:ALTERTABLEDROPCONSTRAINT约束名称;用于将现有表中的列设置为不可用的语法如下:ALTERTABLESETUNUSED(列名1,列名2.);删除大型的表中的列可能要花费相当长的时间。一种较快的替代方法就是使用ALTERTABLE命令的SETUNUSED选项将此列标记为不可用。在这种情况下,该列的数据还仍然保留在表中,但是它不再可用,未使用的列可以在以后需要收回些列数据所占用的空间时进行删除。ALTERTABLE命令在下列情况下使用:用户要添加新的列要修改数据类型的宽度或数据类型本身要包括或删除完整性约束条件假如表为空,可以减小现有列数据类型的长度。要增加现在列的长度时,没有这些限制。,数据定义语言TRUNCATETABLE命令,如果只想删除表的记录,而不删除表的结构,并释放此表使用的存储空间,可以使用TRUNCATETABLE命令来操作,语法如下:TRUNCATETABLE;如果将“REUSESTORAGE”子句添加到上述命令中,则表示保留被删除的行所使用的空间,语法如下:TRUNCATETABLEREUSESTORAGE;在命令行窗口,输入以下语法,可以查看表结构:DESC;,数据定义语言DROPTABLE命令,DROPTABLE命令用于从数据库中删除表,此操作即删除了表中的数据,又删除表的结构,语法如下:DROPTABLE;,数据操纵语言(DML),数据操纵语言是使用最频繁的SQL命令。它们用于查询和操纵现有表中的数据。DML命令如下:INSERTSELECTUPDATEDELETE,数据操纵语言(DML)INSERT命令,一旦完成了创建表的第一步,必须使用数据填充表。INSERT命令用于向表中添加一个或多个行。使用此命令时,需用逗号对值进行分隔,具有VARCHAR2、CHAR、RAW、LONG和DATE等数据类型的列的值用单引号括起来。插入单条记录的INSERT语句的语法如下:INSERTINTO(column,column)VALUES(value,value);将一个查询结果的记录插入到表中的INSERT语句的语法如下:INSERTINTO(column,column.)SELECTcolumn,column.FROM;其中objecttablename是目标表,sourcetablename是数据源表。插入多条记录的INSERT语句的语法如下:INSERTINTOVALUES(其中column是列名,执行此命令时,Oracle会提示用户为表的所有列输入值,当输入完值后,要对输入的数据做提交,也就是执行COMMIT命令。,数据定义语言CREATESEQUENCE命令,CREATESEQUENCE命令:将向当前数据库里增加一个新的序列号生成器。创建序列的语法如下所示:CREATESEQUENCEschema.sequenceNameINCREMENTBY1-设置每次步长为1STARTWITH1-设置从1开始计数MINVALUE1-设置最小计数为1MAXVALUE999999999-设置最大计数为999999999NOCYCLE-一直累加,不循环,也可以设置为CYCLE(循环)CACHE10;-设置缓存cache个序列,如果系统宕掉了或者其它情况将会导致序列不连续也可以设置为NOCACHE(不缓存)其中关键字schema表示对象所有者的名字。如果我们在自己的方案中创建序列,则不需要指定所有者的姓名。sequenceName表示该序列的名称。,数据操纵语言(DML)SELECT命令,通过SELECT命令可以请求存储在表中的信息。这通常称为“查询”表。SELECT是使用最频繁的命令。SELECT语句的语法如下:SELECT*|DISTINCTcolumn|expressionalias,FROM;其中,“*”代表查询表中所有的列值;“DISTINCT”过滤掉指定列重复的数据;“expression”表示对列的值可以进行表达式运算;“alias”表示可以对列指定一个别名;“tablename”表示要查询的表名。带有WHERE子句和ORDERBY子句的SELECT命令的语法如下:SELECT*|DISTINCTcolumn|expressionalias,FROMWHEREconditionORDERBYcolumn|aliasASC|DESC,column|aliasASC|DESC,;其中,condition是一个条件表达式;column表示列名;alias表示列的别名;ORDERBY子句表示指定的排序规则;ASC表示升序;DESC表示降序。在SELECT命令中ORDERBY子句应该是最后一个子句。WHERE子句还可以用于DELETE和UPDATE命令中。在这些情况下,Oracle会根据在WHERE子句中指定的条件删除或更新表中的一行或多行。,数据操纵语言(DML)UPDATE命令,有时可能需要修改存储在数据库表中的值。这时就可以对表中的现有记录使用UPDATE命令,来更新表中的行。使用此命令可以更新零个或多个行。如果要限定对特定的行进行更新,可以使用WHERE子句。UPDATE命令的语法如下:UPDATESETcolumn=value,column=value,WHEREcondition;在上述语法中,WHERE子句和SET子句还可以包含查询。如果满足WHERE子句的条件,UPDATE语句将使用所提供的值设置每一个字段。,数据操纵语言(DML)DELETE命令,在表中插入行后,如果不再需要该数据,可以删除这些行。DELETE命令用于从表中删除行。DELETE命令的语法如下:DELETEFROMWHEREcondition;使用DELETE命令可以删除零行或多行。另外,还可以删除表的所有行,而表的结构保持不变。要删除表的特定行,可以将DELETE命令与WHERE子句一起使用。WHERE子句还可以包含查询。删除表中所有行的DELETE命令的语法如下:DELETEFROM;,事务处理控制语言(TCL),事务处理是作业的逻辑单元。对数据库所做的所有修改都称为事务处理。只有将事务处理修改提交后,才能执行对数据库的永久修改。事务处理以可执行的SQL语句开头,并以ROLLBACK或COMMIT语句明确地结束,如果使用DDL语句,则隐式(即自动)地结束。,事务处理控制语言(TCL)COMMIT命令,此命令用于结束事务处理。只有借助于COMMIT命令,才能对数据库执行永久的事务处理修改。COMMIT命令的语法如下:COMMIT;或COMMITwork;以上两种写法是等价的。,事务处理控制语言(TCL)SAVEPOINT命令,保存点类似于标记,它将很长的事务处理划分为较小的事务处理。保存点用于标识以后可以回退到的事务处理中的点。这样,SAVEPOINT与ROLLBACK语句联合使用,可以回退当前的部份事务处理。SAVEPOINT的语法如下:SAVEPOINTsavepoint_id;,事务处理控制语言(TCL)ROLLBACK命令,ROLLBACK命令用于撤消在当前事务处理中所执行的操作。可以回退整个事务处理,以便

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论