Oracle入门到精通(明日科技)配套讲解课件

上传人:hknru****knru 文档编号:241325874 上传时间:2024-06-18 格式:PPT 页数:345 大小:4.70MB
返回 下载 相关 举报
Oracle入门到精通(明日科技)配套讲解课件_第1页
第1页 / 共345页
Oracle入门到精通(明日科技)配套讲解课件_第2页
第2页 / 共345页
Oracle入门到精通(明日科技)配套讲解课件_第3页
第3页 / 共345页
点击查看更多>>
资源描述
Oracle从入门到精通明日科技Oracle从入门到精通明日科技从入门到精通明日科技 Oracle,西方人认为有“神谕、预言”之意,中国人则译作“甲骨文”,是当今世界最强大的数据库软件。所有这一切要从IBM的一篇论文谈起,1970年的6月,IBM公司的研究员埃德加考特发表了一篇著名的论文大型共享数据库数据的关系模型,这可以称之为数据库发展史上的一个转折点。在当时还是层次模型和网状模型的数据库产品占据市场主要位置的情况下,从这篇论文开始,拉开了关系型数据库软件革命的序幕。1977年6月,Larry Ellison与Bob Miner和Ed Oates在硅谷共同创办了一家名为“软件开发实验室”的软件公司(Oracle公司的前身,英文缩写SDL)。在Oates看到了埃德加考特的那篇著名的论文连同其他几篇相关的文章之后,非常兴奋,他找来Ellison和Miner共同阅读,Ellison和Miner也预见到关系型数据库软件的巨大潜力。于是,这3个数据库界的巨人开始共同筹划构建可商用的关系型数据库管理系统(英文缩写RDBMS),并把这种商用数据库产品命名为Oracle。因为他们相信,Oracle(字典里的解释有“神谕、预言”之意)是一切智慧的源泉,这样当今世界最强大、最优秀的Oracle数据库诞生了。简述简述Oracle的发展史的发展史 Oracle,西方人认为有,西方人认为有“神谕、预言神谕、预言”之意,中之意,中关系型数据库的基本理论本讲大纲:1、关系型数据库与数据库管理系统3、关系型数据库的设计范式2 2、关系型数据库的E-RE-R模型关系型数据库的基本理论本讲大纲:关系型数据库的基本理论本讲大纲:1、关系型数据库与数据库管理、关系型数据库与数据库管理关系型数据库与数据库管理系统 在关系数据模型中,关系可以看成由行和列交叉组成的二维表格,表中一行称为一个元组,可以用来标识实体集中的一个实体。表中的列称为属性,给每一列起一个名称即为属性名,表中的属性名不能相同。列的取值范围称为域,同列具有相同的域,不同的列也可以有相同的域。表中任意两行(元组)不能相同。能唯一标识表中不同行的属性或属性组(即多个属性的组合)称为主键或复合主键。关系型数据库与数据库管理系统关系型数据库与数据库管理系统 在关系数据模型中,关在关系数据模型中,关1实体和属性 实体是一个数据对象,是指客观存在并可以相互区分的事物,如一个教师、一个学生、一个雇员等等。每个实体由一组属性来表示,如,一个具体的学生拥有学号、姓名、性别和班级等属性,其中学号可以唯一标识具体某个学生这个实体。具有相同属性的实体组合在一起就构成实体集即实体集是实体的集合,而实体则是实体集中的某一个特例,例如,王同学这个实体就是学生实体集中的一个特例。2联系 在实际应用中,实体之间是存在联系的,这种联系必须在逻辑模型中表现出来。在E-R模型中,联系用菱形表示,菱形框内写明“联系名”,并用“连接线”将有关实体连接起来,同时在“连接线”的旁边标注上联系的类型,两个实体之间的联系类型可以分为3类。关系型数据库的E-R模型1实体和属性关系型数据库的实体和属性关系型数据库的E-R模型模型1增强信息生命周期管理和存储管理能力 2全面回忆数据变化3最大限度提高信息可用性4Oracle快速文件 5更快的XML6透明的加密 7嵌入式OLAP行列8连接汇合和查询结果高速缓存9增强了应用开发能力 Oracle 11g的新功能的新功能1增强信息生命周期管理和存储管理能力增强信息生命周期管理和存储管理能力 Oracle 11gOracle 11g的安装与卸载本讲大纲:1、Oracle 11g的安装2 2、Oracle 11gOracle 11g的卸载Oracle 11g的安装与卸载本讲大纲:的安装与卸载本讲大纲:1、Oracle Oracle 11g的管理工具本讲大纲:1、SQL*Plus工具2 2、OracleOracle企业管理器3 3、数据库配置助手Oracle 11g的管理工具本讲大纲:的管理工具本讲大纲:1、SQL*PlusSQL*Plus工具 选择“开始”/“所有程序”/“Oracle-OraDb11g_home1”/“应用程序开发”/“SQL*Plus”命令,打开的命令窗口如下图所示。SQL*Plus工具工具 选择选择“开始开始”/“所有程序所有程序”/Oracle企业管理器 Oracle Enterprise Manager(OEM)是基于WEB界面的Oracle数据库管理工具。启动Oracle 11g的OEM只需在浏览器中输入其URL地址通常为https:/localhost:1518/em,然后连接主页即可;也可以在“开始”菜单的“Oracle程序组”中选择“Database Control-orcl”菜单命令来启动Oracle 11g的OEM工具。Oracle企业管理器企业管理器 Oracle Enter数据库配置助手 在开始菜单中选择“所有程序”/“Oracle-OraDb11g_home1”/“配置和移植工具”/“Database Configuration Assistant”菜单命令,就会打开如图所示的窗口。数据库配置助手数据库配置助手 在开始菜单中选择在开始菜单中选择“所有程序所有程序”/“启动与关闭数据库实例本讲大纲:1、启动数据库实例2 2、关闭数据库实例启动与关闭数据库实例本讲大纲:启动与关闭数据库实例本讲大纲:1、启动数据库实例、启动数据库实例2、关闭数据、关闭数据启动数据库实例 Oracle数据库实例的启动过程分为3步骤,分别是启动实例、加载数据库、打开数据库。用户可以根据实际情况的需要,以不同的模式启动数据库,启动数据库所使用的命令格式如下。STARTUP nomount|mount|open|force resetrict pfile=filename启动数据库实例启动数据库实例 Oracle数据库实例的启动过程分数据库实例的启动过程分关闭数据库实例 与启动数据库实例相同,关闭数据库实例也分为3个步骤,分别是关闭数据库、卸载数据库、关闭Oracle实例。在SQL*Plus中,可以使用shutdown语句关闭数据库,其具体语法格式如下:SHUTDOWN normal|transactional|immediate|abort关闭数据库实例关闭数据库实例 与启动数据库实例相同,关闭数据库与启动数据库实例相同,关闭数据库 在Oracle数据库管理系统中有3个重要 的 概 念 需 要 理 解,那 就 是 实 例(Instance)、数据库(Database)和数据库服务器(Database Server)。其中,实例是指一组Oracle后台进程以及在服务器中分配的共享内存区域;数据库是由基于磁盘的数据文件、控制文件、日志文件、参数文件和归档日志文件等组成的物理文件集合;数据库服务器是指管理数据库的各种软件工具(比如,sqlplus、OEM等)和实例及数据库三个部分。从实例与数据库之间的辩证关系来讲,实例用于管理和控制数据库;而数据库为实例提供数据。一个数据库可以被多个实例装载和打开;而一个实例在其生存期内只能装载和打开一个数据库。ORACLE 11g体系结构概述体系结构概述 在在Oracle数据库管理系统中有数据库管理系统中有3个重要的概念需个重要的概念需逻辑存储结构本讲大纲:1、数据块(Data Blocks)3、段(Segment)2 2、数据区(ExtentExtent)4、表空间(TableSpace)逻辑存储结构本讲大纲:逻辑存储结构本讲大纲:1、数据块(、数据块(Data Blocks)3数据块(Data Blocks)数据块是Oracle逻辑存储结构中的最小的逻辑单位,也是执行数据库输入输出操作的最小存储单位。Oracle数据存放在“Oracle数据块”中,而不是“操作系统块”中。通常Oracle数据块是操作系统块的整数倍,如果操作系统快的大小为2048B,并且Oracle数据块的大小为8192B,则表示Oracle数据块由4个操作系统块构成。Oracle数据块有一定的标准大小,其大小被写入到初始化参数DB_BlOCK_SIZE中。另外,Oracle支持在同一个数据库中使用多种大小的快,与标准块大小不同的块就是非标准块。数据块(数据块(Data Blocks)数据块是数据块是Orac 数据区(也可称作数据扩展区)是由一组连续的Oracle数据块所构成的Oracle存储结构,一个或多个数据块组成一个数据区,一个或多个数据区再组成一个段(Segment)。当一个段中的所有空间被使用完后,Oracle系统将自动为该段分配一个新的数据区,这也正符合Extent这个单词所具有的“扩展”的含义,可见数据区是Oracle存储分配的最小单位,Oracle就以数据区为单位进行存储控件的扩展。使用数据区的目的是用来保存特定数据类型的数据,也是表中数据增长的基本单位。在Oracle数据库中,分配存储空间就是以数据区为单位的。一个Oracle对象包含至少一个数据区。设置一个表或索引的存储参数包含设置它的数据区大小。数据区(Extent)数据区(也可称作数据扩展区)是由一组连续的数据区(也可称作数据扩展区)是由一组连续的Ora段(Segment)数据区(也可称作数据扩展区)是由一组连续的Oracle数据块所构成的Oracle存储结构,一个或多个数据块组成一个数据区,一个或多个数据区再组成一个段(Segment)。当一个段中的所有空间被使用完后,Oracle系统将自动为该段分配一个新的数据区,这也正符合Extent这个单词所具有的“扩展”的含义,可见数据区是Oracle存储分配的最小单位,Oracle就以数据区为单位进行存储控件的扩展。使用数据区的目的是用来保存特定数据类型的数据,也是表中数据增长的基本单位。在Oracle数据库中,分配存储空间就是以数据区为单位的。一个Oracle对象包含至少一个数据区。设置一个表或索引的存储参数包含设置它的数据区大小。段(段(Segment)数据区(也可称作数据扩展区)数据区(也可称作数据扩展区)表空间(TableSpace)Oracle使用表空间将相关的逻辑结构(比如段、数据区等)组合在一起,表空间是数据库的最大逻辑划分区域,通常用来存放数据表、索引、回滚段等数据对象(即Segment),任何数据对象在创建时都必须被指定存储在某个表空间中。表空间(属逻辑存储结构)与数据文件(属物理存储结构)相对应,一个表空间由一个或多个数据文件组成,一个数据文件只属于一个表空间;Oracle数据的存储空间在逻辑上表现为表空间,而在物理上表现为数据文件。举个例子来说,表空间相当于操作系统中的文件夹,而数据文件就相当于文件夹中的文件。每个数据库至少有一个表空间(即SYSTEM表空间),表空间的大小等于所有从属于它的数据文件大小的总和。表空间(表空间(TableSpace)Oracle使用表使用表物理存储结构本讲大纲:1、数据文件3、日志文件4、服务器参数文件5、密码文件、警告文件和跟踪文件2 2、控制文件物理存储结构本讲大纲:物理存储结构本讲大纲:1、数据文件、数据文件3、日志文件、日志文件4、服务器参服务器参数据文件 数据文件是用于保存用户应用程序数据和Oracle系统内部数据的文件,这些文件在操作系统中就是普通的操作系统文件,Oracle在创建表空间的同时会创建数据文件。Oracle数据库在逻辑上由表空间组成,每个表空间可以包含一个或多个数据文件,一个数据文件只能隶属于一个表空间。数据文件数据文件 数据文件是用于保存用户应用程序数据和数据文件是用于保存用户应用程序数据和Or 控制文件是一个二进制文件,它记录了数据库的物理结构,其中主要包含数据库名、数据文件与日志文件的名字和位置、数据库建立日期等信息。控制文件一般在Oracle系统安装时或创建数据库时自动创建,控制文件所存放的路径由服务器参数文件spfileorcl.ora的control_files参数值来指定。由于控制文件存放有数据文件、日志文件等的相关信息,因此,Oracle实例在启动时必须访问控制文件。如果控制文件正常,实例才能加载并打开数据库;但若控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,则实例无法正常启动。控制文件控制文件 控制文件是一个二进制文件,它记录了数据库的物理结构,控制文件是一个二进制文件,它记录了数据库的物理结构,日志文件的主要功能是记录对数据所作的修改,对数据库所作的修改几乎都记录在日志文件中。在出现问题时,可以通过日志文件得到原始数据,从而保障不丢失已有操作成果。Oracle的日志文件包括重做日志文件(Redo Log File)和归档日志文件(Archive Log File),它们是Oracle系统的主要文件之一,尤其是重做日志文件,它是Oracle数据库系统正常运行所不可或缺的。下面将介绍这两种日志文件。日志文件 日志文件的主要功能是记录对数据所作的修改,对数据日志文件的主要功能是记录对数据所作的修改,对数据服务器参数文件 服务器参数文件SPFILE(Server parameter File)是二进制文件,用来记录了Oracle数据库的基本参数信息(如,数据库名、控制文件所在路径、日志缓冲大小等)。数据库实例在启动之前,Oracle系统首先会读取SPFILE参数文件中设置的这些参数,并根据这些初始化参数来配置和启动实例。比如,设置标准数据块的大小(即参数db_block_size的值)、设置日志缓冲区的大小(即参数log_buffer的值)等等,所以SPFILE参数文件非常重要。服务器参数文件在安装Oracle数据库系统时由系统自动创建,文件的名称为SPFILEsid.ora,sid为所创建的数据库实例名。与早期版本的初始化参数文件INITsid.ora不同的是,SPFILE中的参数由Oracle系统自动维护,如果要对某些参数进行修改,则尽可能不要直接对SPFILE进行编辑,最好通过企业管理器(OEM)或ALTER SYSTEM命令来修改,所修改过的参数会自动写到SPFILE中。服务器参数文件服务器参数文件 服务器参数文件服务器参数文件SPFILE(Ser Oracle系统运行时,除了必须的数据文件、控制文件、日志文件及服务器参数文件外,还需要一些辅助文件,如,密码文件、警告文件和跟踪文件,下面将对这些辅助文件进行简单的介绍。密码文件、警告文件和跟踪文件 Oracle系统运行时,除了必须的数据文件、控制系统运行时,除了必须的数据文件、控制Oracle 11g服务器结构本讲大纲:1、系统全局区(SGA)2、程序全局区(PGA)3、前台进程4、后台进程Oracle 11g服务器结构本讲大纲:服务器结构本讲大纲:1、系统全局区(、系统全局区(SG系统全局区(SGA)系统全局区(System Global Area)是所有用户进程共享的一块内存区域,也就是说,SGA中的数据资源可以被多个用户进程共同使用。SGA主要由高速数据缓冲区、共享池、重做日志缓存区、java池和大型池等内存结构组成。SGA随着数据库实例的启动而加载到内存中,当数据库实例关闭时,SGA区域也就消失了。系统全局区(系统全局区(SGA)系统全局区(系统全局区(System Glo程序全局区(PGA)程序全局区(Program Global Area)也可称作用户进程全局区,它的内存区在进程私有区而不是共享区中。虽然PGA是一个全局区,可以把代码、全局变量和数据结构都可以存放在其中,但区域内的资源并不像SGA一样被所有的用户进程所共享,而是每个Oracle服务器进程都只拥有属于自己的那部分PGA资源。在程序全局区(PGA)中,一个服务进程只能访问属于它自己的那部分PGA资源区,各个服务进程的PGA区的总和即为实例的PGA区的大小。通常PGA区由私有SQL区和会话区组成。程序全局区(程序全局区(PGA)程序全局区(程序全局区(Program 前台进程1用户进程 用户进程是指那些能够产生或执行SQL语句的应用程序,无论是SQL*Plus,还是其它应用程序,只要是能生成或执行SQL语句,都被称作用户进程。2服务器进程 服务进程就是用于处理用户会话过程中向数据库实例发出的SQL语句或SQL*Plus命令,它可以分为专用服务器模式和共享服务器模式。前台进程前台进程1用户进程用户进程后台进程 Oracle后台进程是一组运行于Oracle服务器端的后台程序,是Oracle实例的重要组成部分。进程包括DBWR、CKPT、LGWR、ARCH、SMON、PMON、LCKN、RECO、DNNN、SNPN。其 中 SMON、PMON、DBWR、LGWR和CKPT这5个后台进程必须正常启动,否则将导致数据库实例崩溃。此外,还有很多辅助进程,用于实现相关的辅助功能,如果这些辅助进程发生问题,只是某些功能受到影响,一般不会导致数据库实例崩溃。后台进程后台进程 Oracle后台进程是一组运行于后台进程是一组运行于Orac数据字典本讲大纲:1、Oracle数据字典简介2 2、OracleOracle常用数据字典常用数据字典数据字典本讲大纲:数据字典本讲大纲:1、Oracle数据字典简介数据字典简介2、OraclOracle数据字典简介 Oracle数据字典的名称由前缀和后缀组成,使用下划线“_”连接,其代表的含义如下:(1)DBA_:包含数据库实例的所有对象信息。(2)V$_:当前实例的动态视图,包含系统管理和系统优化等所使用的视图。(3)USER_:记录用户的对象信息。(4)GV_:分布式环境下所有实例的动态视图,包含系统管理和系统优化使用的视图。(5)ALL_:记录用户的对象信息机被授权访问的对象信息。Oracle数据字典简介数据字典简介 Oracle数据字典的名数据字典的名Oracle常用数据字典数据字典名称数据字典名称说说 明明dba_tablespaces关于表空间的信息关于表空间的信息dba_ts_quotas所有用户表空间限额所有用户表空间限额dba_free_space所有表空间中的自由分区所有表空间中的自由分区dba_segments描述数据库中所有段的存储空间描述数据库中所有段的存储空间dba_extents数据库中所有分区的信息数据库中所有分区的信息dba_tables数据库中所有数据表的描述数据库中所有数据表的描述数据字典名称数据字典名称说说 明明v$database描述关于数据库的相关信息描述关于数据库的相关信息v$datafile数据库使用的数据文件信息数据库使用的数据文件信息v$log从控制文件中提取有关重做日志组的信息从控制文件中提取有关重做日志组的信息v$logfile有关实例重置日志组文件名及其位置的信息有关实例重置日志组文件名及其位置的信息Oracle常用数据字典数据字典名称说常用数据字典数据字典名称说 明明dba_ta SQL*Plus工具主要用来进行数据查询和数据处理。利用SQL*Plus可将SQL和Oracle专有的PL/SQL结合起来进行数据查询和处理。SQL*Plus工具具备以下功能:(1)定义变量,编写SQL语句。(2)插入、修改、删除、查询,以及执行命令和PL/SQL语句。比如,执行show parameter命令。(3)格式化查询结构、运算处理、保存、打印机输出等。(4)显示任何一个表的字段定义,并实现与用户进行交互。(5)完成数据库的几乎所有管理工作。比如,维护表空间和数据表。(6)运行存储在数据库中的子程序或包。(7)以sysdba身份登录数据库实例,可以实现启动/停止数据库实例。SQL*Plus与数据库的交互与数据库的交互 SQL*Plus工具主要用来进行数据查询和数据处工具主要用来进行数据查询和数据处设置SQL*Plus的运行环境本讲大纲:1、简介SET命令2 2、使用使用SETSET命令设置运行环境命令设置运行环境设置设置SQL*Plus的运行环境本讲大纲:的运行环境本讲大纲:1、简介、简介SET命令命令2简介SET命令 在Oracle 11g数据库中,用户可以使用SET命令来设置SQL*Plus的运行环境,SET命令的语法格式为:SET system_variable value 参数system_variable表示变量名,参数value表示变量值。简介简介SET命令命令 在在Oracle 11g数据库中,用数据库中,用1PAGESIZE变量2NEWPAGE变量3LINESIZE变量4PAUSE变量5NUMFORMAT变量使用SET命令设置运行环境1PAGESIZE变量使用变量使用SET命令设置运行环境命令设置运行环境常用SQL*Plus命令本讲大纲:1、HELP命令3、SPOOL命令 4、其它常用命令2 2、DESCRIBEDESCRIBE命令命令常用常用SQL*Plus命令本讲大纲:命令本讲大纲:1、HELP命令命令3、SPOHELP命令 HELP命令的语法形式如下。HELP|?topicHELP命令命令 HELP命令的语法形式如下。命令的语法形式如下。DESCRIBE命令的语法形式如下:describe object_name;describe可以缩写为desc,object_name表示将要查询的对象名称。DESCRIBE命令命令 DESCRIBE命令的语法形式如下:命令的语法形式如下:DESCRI SPOOL命令的语法格式如下:SPOOL file_name.ext CREATE|REPLACE|APPEND|OFF|OUT 参数file_name用于指定脱机文件的名称,默认的文件扩展名为LST。SPOOL命令 SPOOL命令的语法格式如下:命令的语法格式如下:SPOOL命令命令其它常用命令1DEFINE命令2SHOW命令3EDIT命令4SAVE命令5GET命令6start和命令其它常用命令其它常用命令1DEFINE命令命令格式化查询结果本讲大纲:1、COLUMN命令2 2、TTITLETTITLE和BTITLEBTITLE命令格式化查询结果本讲大纲:格式化查询结果本讲大纲:1、COLUMN命令命令2、TTITLECOLUMN命令 该命令可以实现格式化查询结果、设置列宽度、重新设置列标题等功能。其语法格式如下:COLUMN column_name|alias|optioncolumn_name:用于指定要设置的列的名称。alias:用于指定列的别名,通过它可以把英文列标题设置为汉字。option:用于指定某个列的显示格式,COLUMN命令命令 该命令可以实现格式化查询结果、设该命令可以实现格式化查询结果、设TTITLE和BTITLE命令 TTITLE命令的语法格式如下:TTITLE printspec text|variable.|OFF|ON text:用于设置输出结果的头标题(即报表头文字)。variable:用于在头标题中输出相应的变量值。OFF:表示禁止打印头标题。ON:表示允许打印头标题。TTITLE和和BTITLE命令命令 TTITLE命令的命令的SQL语言简介本讲大纲:1、SQL语言的特点3、SQL语言的编写规则2 2、SQLSQL语言的分类语言的分类SQL语言简介本讲大纲:语言简介本讲大纲:1、SQL语言的特点语言的特点3、SQL语言的语言的SQL语言的特点 SQL语言主要有以下特点。(1)集合性SQL可以在高层的数据结构上进行工作,工作时不是单条的处理记录,而对数据进程成组的处理。所有SQL语句都接受集合作为输入,并且返回集合作为输出,SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。(2)统一性SQL为许多任务提供了统一的命令,这样方便用户学习和使用,基本的SQL命令只需很少时间就能学会,甚至最高级的命令也可以在几天内掌握。(3)易于移植性由于所有主要的关系型数据库管理系统都支持SQL语言,这样用户就比较容易将原先使用SQL的技能从一个RDBMS转到另一个,而且用兼容SQL标准编写的程序都是可以移植的。SQL语言的特点语言的特点 SQL语言主要有以下特点。语言主要有以下特点。(1)数据查询语言(DQL)(2)数据操纵语言(DML)(3)事务控制语言(TCL)(4)数据定义语言(DDL)(5)数据控制语言(DCL)SQL语言的分类(1)数据查询语言()数据查询语言(DQL)SQL语言的分类语言的分类SQL语言的编写规则 SQL关键字不区分大小写,既可以使用大写格式,也可以使用小写格式,或者大小写格式混用。SQL语言的编写规则语言的编写规则 SQL关键字不区分大小写,既关键字不区分大小写,既用户模式本讲大纲:1、模式与模式对象2 2、示例模式、示例模式SCOTTSCOTT用户模式本讲大纲:用户模式本讲大纲:1、模式与模式对象、模式与模式对象2、示例模式、示例模式SCOTT模式与模式对象 模式是一个数据库对象的集合。模式为一个数据库用户所有,并且具有与该用户相同的名称,比如,SYSTEM模式、SCOTT模式等。在一个模式内部不可以直接访问其它模式的数据库对象,即使在具有访问权限的情况下,也需要指定模式名称才可以访问其它模式的数据库对象。模式对象是由用户创建的逻辑结构,用以存储或引用数据。例如,前面章节中所讲过的段(比如,表、索引等),以及用户所拥有的其它非段的的数据库对象。这些非段的数据库对象通常包括:约束、视图、同义词、过程以及程序包等。那么,简单的说,模式与模式对象之间的关系就是拥有与被拥有的关系,即模式拥有模式对象;而模式对象被模式所拥有。模式与模式对象模式与模式对象 模式是一个数据库对象的集合。模式为模式是一个数据库对象的集合。模式为 Oracle提供的SCOTT模式的目的,就是为了给用户提供一些示例表和数据来展示Oracle数据库的一些特性。SCOTT模式拥有的模式对象(都是数据表)如图所示。示例模式SCOTT Oracle提供的提供的SCOTT模式的目的,就是为了模式的目的,就是为了检索数据本讲大纲:1、简单查询3、分组查询 4、排序查询 5、多表关联查询 2 2、筛选查询、筛选查询 检索数据本讲大纲:检索数据本讲大纲:1、简单查询、简单查询3、分组查询、分组查询 4、排序查询、排序查询 5简单查询 只包含SELECT子句和FROM子句的查询就是简单查询,SELECT子句和FROM子句是SELECT语句的必选项,也就是说每个SELECT语句都必须包含这两个子句。其中,SELECT子句用于选择想要在查询结果中显示的列,对于这些要显示的列,即可以使用列名来表示,也可以使用星号(*)来表示。在检索数据时,数据将按照SELECT子句后面指定的列名的顺序来显示;如果使用星号(*),则表示检索所有的列,这时数据将按照表结构的自然顺序来显示。简单查询简单查询 只包含只包含SELECT子句和子句和FROM子句的查子句的查 在SELECT语句中,WHERE子句位于FROM子句之后,其语法格式如下:SELECT columns_list FROM table_name WHERE conditional_expression筛选查询筛选查询 在在SELECT语句中,语句中,WHERE子句位于子句位于FROM在SELECT语句中,GROUP BY子句位于FROM子句之后,其语法格式如下:SELECT columns_listFROM table_nameWHERE conditional_expressionGROUP BY columns_list分组查询在在SELECT语句中,语句中,GROUP BY子句位于子句位于FROM子句之子句之排序查询 在SELECT语句中,可以使用ORDER BY子句对检索的结果集进行排序,该子句位于FROM子句之后,其语法格式如下:SELECT columns_listFROM table_nameWHERE conditional_expressionGROUP BY columns_listORDER BY order_by_expression ASC|DESC ,.n 排序查询排序查询 在在SELECT语句中,可以使用语句中,可以使用ORDER 在实际的应用系统开发中会设计多个数据表,每个表的信息不是独立存在的,而是若干个表之间的信息存在一定的关系,这样当用户查询某一个表的信息时,很可能需要查询关联数据表的信息,这就是多表关联查询。SELECT语句自身是支持多表关联查询的,多表关联查询要比单表查询复杂得多。在进行多表关联查询时,可能会涉及到表别名、内连接、外连接、自然连接和交叉连接等概念多表关联查询 在实际的应用系统开发中会设计多个数据表,每个表的在实际的应用系统开发中会设计多个数据表,每个表的Oracle常用系统函数本讲大纲:1、字符类函数 2 2、数字类函数、数字类函数 3 3、日期和时间类函数、日期和时间类函数 4 4、转换类函数、转换类函数 5 5、聚合类函数、聚合类函数 Oracle常用系统函数本讲大纲:常用系统函数本讲大纲:1、字符类函数、字符类函数 2、数字类、数字类字符类函数(1)ASCII(c)函数和CHR(i)函数(2)CONCAT(s1,s2)函数(3)INITCAP(s)函数(4)INSTR(s1,s2,i,j)函数(5)LENGTH(s)函数(6)LOWER(s)函数和UPPER函数(s)(7)LTRIM(s1,s2)函 数、RTRIM(s1,s2)函 数 和TRIM(s1,s2)函数(8)REPLACE(s1,s2,s3)函数(9)SUBSTR(s,i,j)函数字符类函数(字符类函数(1)ASCII(c)函数和函数和CHR(i)函数函数数字类函数(1)CEIL(n)函数(2)ROUND(n1,n2)函数(3)POWER(n1,n2)函数数字类函数(数字类函数(1)CEIL(n)函数)函数日期和时间类函数(1)SYSDATE()函数(2)ADD_MONTHS(d,i)函数日期和时间类函数(日期和时间类函数(1)SYSDATE()函数函数转换类函数(1)TO_CHAR()函数(2)TO_NUMBER(s,formatlan)函数转换类函数(转换类函数(1)TO_CHAR()函数函数聚合类函数(1)AVG(xDISTINCT|ALL)函数(2)COUNT(xDISTINCT|ALL)函数(3)SUM(xDISTINCT|ALL)函数聚合类函数(聚合类函数(1)AVG(xDISTINCT|ALL)函数函数子查询的用法本讲大纲:1、什么是子查询 2 2、单行子查询、单行子查询 3 3、多行子查询、多行子查询 4 4、关联子查询关联子查询子查询的用法本讲大纲:子查询的用法本讲大纲:1、什么是子查询、什么是子查询 2、单行子查询、单行子查询 3、什么是子查询 子查询是在SQL语句内的另外一条SELECT语句,也被称为内查询或是内SELECT语句。在SELECT、INSERT、UPDATE或DELETE命令中允许是一个表达式的地方都可以包含子查询,子查询甚至可以包含在另外一个子查询中。什么是子查询什么是子查询 子查询是在子查询是在SQL语句内的另外一条语句内的另外一条SE单行子查询 单行子查询是指返回一行数据的子查询语句。当在WHERE子句中引用单行子查询时,可以使用单行比较运算符(=、=、=和)。单行子查询单行子查询 单行子查询是指返回一行数据的子查询语句单行子查询是指返回一行数据的子查询语句多行子查询 多行子查询是指返回多行数据的子查询语句。当在WHERE子句中使用多行子查询时,必须使用多行比较符(IN、ANY、ALL)。多行子查询多行子查询 多行子查询是指返回多行数据的子查询语句多行子查询是指返回多行数据的子查询语句关联子查询 在当行子查询和多行子查询中,内查询和外查询是分开执行的,也就是说内查询的执行与外查询的执行是没有关系的,外查询仅仅是使用内查询的最终结果。在一些特殊需求的子查询中,内查询的执行需要借助于外查询,而外查询的执行又离不开内查询的执行,这时,内查询和外查询是相互关联的,这种子查询就被称为关联子查询。关联子查询关联子查询 在当行子查询和多行子查询中,内查询和外在当行子查询和多行子查询中,内查询和外操作数据库本讲大纲:1、插入数据(INSERT语句)3、删除数据(删除数据(DELETEDELETE语句和语句和TRUNCATETRUNCATE语句)语句)2 2、更新数据(、更新数据(UPDATEUPDATE语句)语句)操作数据库本讲大纲:操作数据库本讲大纲:1、插入数据(、插入数据(INSERT语句)语句)3、删、删插入数据(INSERT语句)INSERT语句的法格式如下:INSERT INTO table_name(column_name1,column_name2)VALUES(express1,express2)插入数据(插入数据(INSERT语句)语句)INSERT语句的法格式如下:语句的法格式如下:UPDATE语句的语法格式如下:UPDATE table_nameSET column_name1=express1,column_name2=express2.|(column_name1,column_name2)=(selectSubquery)WHERE condition更新数据(更新数据(UPDATE语句)语句)UPDATE语句的语法格式如下:更新数据(语句的语法格式如下:更新数据(UPDATE语句)语句)1、DELETE语句语法如下DELETE FROM table_nameWHERE condition2、TRUNCATE语句语法如下:TRUNCATE TABLE table_name删除数据(DELETE语句和TRUNCATE语句)1、DELETE语句语法如下删除数据(语句语法如下删除数据(DELETE语句和语句和TR事务处理本讲大纲:1、事务的概述2 2、操作事务事务处理本讲大纲:事务处理本讲大纲:1、事务的概述、事务的概述2、操作事务、操作事务事务的概述 事务包含4种重要的属性,被统称为ACID(原子性、一致性、隔离性和持久性),一个事务必须通过ACID。(1)原子性(Atomic):事务是一个整体的工作单元,事务对数据库所做的操作要么全部执行,要么全部取消。如果某条语句执行失败,则所有语句全部回滚。(2)一致性(ConDemoltent):事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。如果事务成功,则所有数据将变为一个新的状态;如果事务失败,则所有数据将处于开始之前的状态。(3)隔离性(Isolated):由事务所作的修改必须与其他事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。(4)持久性(Durability):当事务提交后,对数据库所做的修改就会永久保存下来。事务的概述事务的概述 事务包含事务包含4种重要的属性,被统称为种重要的属性,被统称为ACI Oracle 11g中的事务是隐式自动开始的,它不需要用户显示地执行开始事务语句。但对于事务的结束处理,则需要用户进行指定的操作,通常在以下情况时,Oracle认为一个事务结束了。(1)执行COMMIT语句提交事务。(2)指定ROLLBACK语句撤销事务。(3)执行一条数据定义语句,比如,CREATE、DROP或ALTER等语句。如果该语句执行成功,那么Oracle系统会自动执行COMMIT命令;否则,则Oracle系统会自动执行ROLLBACK命令。(4)执行一个数据控制命令,比如,GRANT、REVOKE等控制命令,这种操作执行完毕,Oracle系统会自动执行COMMIT命令。(5)正常地断开数据库的连接、正常地退出SQL*Plus环境,则Oracle系统会自动执行COMMIT命令;否则,则Oracle系统会自动执行ROLLBACK命令。操作事务 Oracle 11g中的事务是隐式自动开始的,它中的事务是隐式自动开始的,它PL/SQL简介本讲大纲:1、PL/SQL块结构 2 2、代码注释和标示符、代码注释和标示符 PL/SQL简介本讲大纲:简介本讲大纲:1、PL/SQL块结构块结构 2、代码注、代码注PL/SQL块结构 标准PL/SQL块的语法格式如下:DECLARE -声明部分,可选 BEGIN -执行部分,必须 EXCEPTION -异常处理部分,可选 ENDPL/SQL块结构块结构 标准标准PL/SQL块的语法格式如块的语法格式如1单行注释 单行注释由连个连接字符“-”开始,后面紧跟着注释内容。2多行注释 多行注释由/*开头,由*/结尾,这个大多数编程语言是相同的。3PL/SQL字符集 所有的PL/SQL程序元素(比如,关键字、变量名、常量名等)都是由一些字符序列组合而成的,而这些字符序列中的字符都必须取自PL/SQL语言所允许使用的字符集,那么这些合法的字符集主要包括以下内容:u大写和小写字母:A-Z或a-z。u数字:0-9。u非显示的字符:制表符、空格和回车。u数学符号:+,-,*,/,=等。u间隔符:包括(),?,!,;,:,#,%,$,&等。代码注释和标示符1单行注释代码注释和标示符单行注释代码注释和标示符数据类型、变量和常量本讲大纲:1、基本数据类型2 2、特殊数据类型3 3、定义变量和常量数据类型、变量和常量本讲大纲:数据类型、变量和常量本讲大纲:1、基本数据类型、基本数据类型2、特殊数据类、特殊数据类基本数据类型1数值类型 数值类型主要包括NUMBER、PLS_INTEGER和BINARY_INTEGER三种基本类型 2字符类型 字符类型主要包括VARCHAR2、CHAR、LONG、NCHAR和NVARCHAR2等。这些类型的变量用来存储字符串或字符数据。3日期类型 日期类型只有一个种即DATE类型,用来存储日期和时间信息,DATE类型的存储空间是7个字节,分别使用一个字节存储世纪、年、月、天、小时、分钟和秒。4布尔类型 布尔类型也只有一种即BOOLEAN,主要用于程序的流程控制和业务逻辑判断,其变量值可以是TRUE、FALSE或NULL中的一种。基本数据类型基本数据类型1数值类型数值类型1%TYPE类型 使用%TYPE关键字可以声明一个与指定列名称相同的数据类型,它通常紧跟在指定列名的后面。2RECORD类型,语法如下:type record_type is record (var_member1 data_type not null:=default_value,var_membern data_type not null:=default_value)3%ROWTYPE类型,语法如下:rowVar_name table_name%rowtype;特殊数据类型1%TYPE类型特殊数据类型类型特殊数据类型1定义变量 (长度):=;2定义常量 constant:=;定义变量和常量1定义变量定义变量和常量定义变量定义变量和常量流程控制语句本讲大纲:1、选择语句2 2、循环语句、循环语句 流程控制语句本讲大纲:流程控制语句本讲大纲:1、选择语句、选择语句2、循环语句、循环语句 选择语句1ifthen语句2Ifthenelse语句3ifthenelsif语句4case语句选择语句选择语句1ifthen语句语句1loop语句loop plsql_sentence;exit when end_condition_ expend loop;2while语句while condition_expression loopplsql_sentence;end loop;3for语句for variable_ counter_name in reverse lower_limit.upper_limit loopplsql_sentence;end loop;循环语句循环语句1loop语句循环语句语句循环语句PL/SQL游标本讲大纲:1、显示游标2 2、游标的属性游标的属性3 3、隐式游标、隐式游标 4 4、通过、通过forfor语句循环游标语句循环游标 PL/SQL游标本讲大纲:游标本讲大纲:1、显示游标、显示游标2、游标的属性、游标的属性3、隐式、隐式显示游标 显示游标是由用户声明和操作的一种游标,通常用于操作查询结果集(即由SELECT语句返回的查询结果),使用它处理数据的步骤包括:声明游标、打开游标、读取游标和关闭游标4个步骤。显示游标显示游标 显示游标是由用户声明和操作的一种游标,通显示游标是由用户声明和操作的一种游标,通游标的属性 无论是显式游标还是隐式游标,都具有%found、%notfound、%isopen和%rowcount四个属性,通过这4个属性可以获知SQL语句的执行结果以及该游标的状态信息。下面对这4个属性的功能进行讲解。(1)%found:布尔型属性,如果SQL语句至少影响到一行数据,则该属性为true,否则为fasle。(2)%notfound:布尔型属性,与%found属性的功能相反。(3)%rowcount:数字型属性,返回受SQL语句影响的行数。(4)%isopen:布尔型属性,当游标已经打开时返回true,游标关闭时则为false。游标的属性游标的属性 无论是显式游标还是隐式游标,都具有无论是显式游标还是隐式游标,都具有%f隐式游标 在执行一个SQL语句时,Oracle会自动创建一个隐式游标。这个游标是内存中处理该语句的工作区域。隐式游标主要是处理数据操纵语句(如,UPDATE、DELETE语句)的执行结果,当然特殊情况下,也可以处理SELECT语句的查询结果。由于隐式游标也有属性,当使用隐式游标的属性时,需要在属性前面加上隐式游标的默认名称SQL。隐式游标隐式游标 在执行一个在执行一个SQL语句时,语句时,Oracle会自会自通过for语句循环游标(1)在for语句中遍历隐式游标中的数据时,通常在关键字“in”的后面提供由SELECT语句检索的结果集,在检索结果集的过程中,Oracle系统会自动提供一个隐式的游标sql。(2)在for语句中遍历显式游标中的数据时,通常在关键字“in”的后面提供游标的名称,其语法格式如下:for var_auto_record in cur_name loop plsqlsentence;end loop;通过通过for语句循环游标(语句循环游标(1)在)在for语句中遍历隐式游标中的数语句中遍历隐式游标中的数PL/SQL异常处理本讲大纲:1、预定义异常 2 2、自定义异常、自定义异常 PL/SQL异常处理本讲大纲:异常处理本讲大纲:1、预定义异常、预定义异常 2、自定义异常、自定义异常预定义异常 当PL/SQL程序违反了Oracle系统内部规定的设计规范时,就会自动引发一个预定义的异常,例如,当除数为零时,就会引发“ZERO_DIVIED”异常。系统预定义异常系统预定义异常说说 明明ZERO_DIVIDE除数为零时引发的异常除数为零时引发的异常ACCESS_INTO_NULL企图为某个未初始化对象的属性赋值企图为某个未初始化对象的属性赋值COLLECTION_IS_NULL企图使用未初始化的集合元素企图使用未初始化的集合元素CURSOR_ALREADY_OPEN企图再次打开一个已经打开过的游标,但在重新打开之前,游标未关企图再次打开一个已经打开过的游标,但在重新打开之前,游标未关闭闭INVALID_CURSOR执行一个非法的游标操作,例如,关闭一个未打开的游标执行一个非法的游标操作,例如,关闭一个未打开的游标INVALID_NUMBER企图将一个字符串转换成一个无效的数字而失败企图将一个字符串转换成一个无效的数字而失败LOGIN_DENIED企图使用无效的用户名或密码连接数据库企图使用无效的用户名或密码连接数据库NO_DATA_FOUNDSELECT INTO语句没有返回数据语句没有返回数据ROWTYPE_MISMATCH主游标变量与主游标变量与PL/SQL游标变量的返回类型不兼容游标变量的返回类型不兼容SELF_IS_NULL使用对象类型时,使用空对象调用其方法使用对象类型时,使用空对象调用其方法预定义异常预定义异常 当当PL/SQL程序违反了程序违反了Oracle系系自定义异常1错误编号异常 错误号异常是指在Oracle系统发生错误时,系统会显示错误号和相关描述信息的异常,虽然直接使用错误编号也可以完成异常处理,但错误编号较为抽象,不易于用户理解和记忆,对于这种异常,首先在PL/SQL块的声明部分(DECLARE部分)使用EXCEPTION类型定义一个异常变量名,然后使用语句PRAGMA EXCEPTION_INIT为“错误编号”关联“这个异常变量名”,接下来就可以像对待系统预定义异常一样处理了。2业务逻辑异常 在实际的应用中,程序开发人员可以根据具体的业务罗规则自定义一个异常。这样,当用户操作违反业务逻辑规则时,就引发一个自定义异常,从而中断程序的正常执行并转到自定义的异常处理部分。但无论是预定义异常,还是错误编号异常,都是由Oracle系统判断的错误,但业务逻辑异常是Oracle系统本身是无法知道的,这样就需要有一个引发异常的机制,引发业务逻辑异常通常使用RAISE语句来实现。当引发一个异常时,控制就会转到EXCEPTION异常处理部分执行异常处理语句。业务逻辑异常首先在DECLARE部分使用EXCEPTION类型声明一个异常变量,然后在BEGIN部分根据一定的义务逻辑规则执行RAISE语句(在RAISE关键字后面跟着异常变量名),最后在EXCEPTION部分编写异常处理语句。自定义异常自定义异常1错误编号异常错误编号异常存储过程本讲大纲:1、创建存储过程2 2、存储过程的参数3 3、ININ参数的默认值存储过程本讲大纲:存储过程本讲大纲:1、创建存储过程、创建存储过程2、存储过程的参数、存储过程的参数3、IN创建存储过程语法格式如下:create or replace procedure pro_name(parameter1,parameter2)is|asbegin plsql_sentences;exception dowith _ sentences;end pro_name;创建存储过程语法格式如下:创建存储过程语法格式如下:1IN模式参数这是一种输入类型的参数,参数值由调用方传入,并且只能被存储过程读取。(1)指定名称传递指定名称传递是指在向存储过程传递参数时需要指定参数名称,即参数名称在左侧,中间是赋值符号“=”,右侧是参数值,其语法格式如下:pro_name(parameter1=value1,parameter2=value2)(2)按位置传递指定名称传递参数虽然直观易读,但也有缺点,就是参数过多时,会显得代码冗长,反而变得不容易阅读。这样用户就可以采取按位置传递参数,采用这种方式时,用户提供的参数值顺序必须与存储过程中定义的参数顺序相同。(3)混合方式传递混合方式就是将前两种方式结合到一起,这样就可以兼顾二者的优点,2OUT模式参数这是一种输出类型的参数,表示这个参数在存储过程中已经被赋值,并且这个参数值可以传递到当前存储过程以外的环境中,关键字out位于参数名称之后。存储过程的参数1IN模式参数存储过程的参数模式参数存储过程的参数 前面的IN参数的值都是在调用存储过程时传入的,实际上,Oracle支持在声明IN参数的同时给其初始化默认值,这样在存储过程调用时,如果没有向IN参数传入值,则存储过程可以使用默认值进行操作。IN参数的默认值 前面的前面的IN参数的值都是在调用存储过程时传入的,实参数的值都是在调用存储过程时传入的,实函数本讲大纲:1、创建函数 2 2、调用函数调用函数 3 3、删除函数删除函数 函数本讲大纲:函数本讲大纲:1、创建函数、创建函数 2、调用函数、调用函数 3、删除函数、删除函数 创建函数create or replace function fun_name(parameter1,parameter2)re
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!