员工培训讲稿Oracle培训.ppt

上传人:sccc 文档编号:4998096 上传时间:2023-05-28 格式:PPT 页数:226 大小:5.34MB
返回 下载 相关 举报
员工培训讲稿Oracle培训.ppt_第1页
第1页 / 共226页
员工培训讲稿Oracle培训.ppt_第2页
第2页 / 共226页
员工培训讲稿Oracle培训.ppt_第3页
第3页 / 共226页
员工培训讲稿Oracle培训.ppt_第4页
第4页 / 共226页
员工培训讲稿Oracle培训.ppt_第5页
第5页 / 共226页
点击查看更多>>
资源描述

《员工培训讲稿Oracle培训.ppt》由会员分享,可在线阅读,更多相关《员工培训讲稿Oracle培训.ppt(226页珍藏版)》请在三一办公上搜索。

1、宇信易诚员工培训-ORACLE培训,目 录,Oracle 体系结构,每一个Oracle数据库都是一个数据的集合,这些数据包含在一个或多个文件中。数据库有物理和逻辑两种结构。Oracle实例由被称为系统全局区(system global area,SGA)的内存区域和相应的后台进程组成。这些后台进程负责SGA和数据库磁盘文件之间的交互。,Oracle服务器,Oracle 数据库,Oracle 实例,Oracle 主要组件,实 例 内存结构 后台进程,PMON SMON DBWR LGWR CKPT 其他,数据库,数据文件,数据文件,数据文件,控制文件,控制文件,日志文件,日志文件,参数文件,归档

2、日志文件,口令文件,SGA,用户进程,服务器进程,PGA,共享池,数据缓冲区,日志缓冲区,Oracle 会话,会话是用户与 Oracle 服务器的单个连接当用户与服务器建立连接时创建会话当用户与服务器断开连接时关闭会话,启动 Oracle 实例,使用SQL*Plus连接至数据库,创建用户进程,创建服务器进程,提交 SQL 查询,系统全局区SGA,数据库信息存储于SGA,由多个数据库进程共享,共享池,数据缓冲区,日志缓冲区,SGA的内存结构,系统全局区SGA,共享池共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域共享池由库缓存和数据字典缓存组成。共享池的大小直接影响数据库的性

3、能。数据缓冲区 用于存储从磁盘数据文件中读入的数据,所有用户共享。服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度。数据缓冲区的大小对数据库的读取速度有直接的影响。日志缓冲区 日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。相对来说,日志缓冲区对数据库的性能影响较小。,程序全局区PGA,程序全局区(PGA)包含单个服务器进程所需的数据和控制信息PGA是在用户进程连接到数据库并创建一个会话时自动分配的,保存每个与Oracle 数据库连接的用

4、户进程所需的信息PGA为非共享区,只能单个进程使用,当一个用户会话结束,PGA释放,后台进程,PMON 进程监控进程清理出现故障的进程。释放所有当前挂起的锁定。释放故障进程使用的资源。SMON 系统监控进程在实例失败之后,重新打开数据库时自动恢复实例。整理数据文件的自由空间,将相邻区域结合起来。释放不再使用的临时段DBWR 数据写入进程管理数据缓冲区,将最近使用过的块保留在内存中。将修改后的缓冲区数据写入数据文件中。LGWR 日志写入进程负责将日志缓冲区中的日志数据写入日志文件。系统有多个日志文件,该进程以循环的方式将数据写入文件.,Oracle 物理组件,物理组件就是Oracle数据库所使用

5、的操作系统物理文件。物理文件可分为三类:,物理组件,数据文件,控制文件,日志文件,数据文件用于存储数据库数据,如表、索引数据等。,控制文件是记录数据库物理结构的二进制文件。,日志文件记录对数据库的所有修改信息,用于故障恢复,Oracle 逻辑组件,数据库的逻辑结构是从逻辑的角度分析数据库的组成。Oracle 的逻辑组件包括:,数据库,表空间,段,区,数据块,Oracle 逻辑组件,表空间是数据库中最大的逻辑单位,一个 Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。表空间的大小等于构成该表空间

6、的所有数据文件大小之和。,Oracle 逻辑组件,段段是构成表空间的逻辑存储结构,段由一组区组成。按照段所存储数据的特征,将段分为四种类型,即数据段、索引段、回退段和临时段。区区为段分配空间,它由连续的数据块组成。当段中的所有空间已完全使用时,系统自动为该段分配一个新区。区不能跨数据文件存在,只能存在于一个数据文件中。数据块数据块是Oracle服务器所能分配、读取或写入的最小存储单元。Oracle服务器以数据块为单位管理数据文件的存储空间,Oracle 网络配置,Oracle产品安装完成后,服务器和客户端都需要进行网络配置才能实现网络连接。服务器端配置监听器,客户端配置网络服务名。,Oracl

7、e 网络配置,服务器端监听器配置信息包括监听协议、地址及其他相关信息。配置信息保存在名为listener.ora的文件中。在安装服务器软件时自动配置一个监听器客户端的网络服务名配置信息包括服务器地址、监听端口号和数据库SID等,与服务器的监听器建立连接。配置信息保存在名为tnsnames.ora的文件中Oracle中的 Net Configuration Assistant和Net Manager工具都能用来配置监听器和网络服务名,总结,Oracle 服务器由Oracle 数据库和 Oracle 实例组成 Oracle 实例由系统全局区内存结构和用于管理数据库的后台进程组成Oracle 数据库

8、由操作系统文件组成,这些文件为数据库信息提供实际物理存储区Oracle 数据库包括逻辑结构和物理结构,目录,基本SQL SELECT语句,基本SELECT语句,SELECT标识选择哪些列。FROM标识从哪个表中选择。,选择全部列,选择特定的列,Writing SQL Statements,SQL 语言大小写不敏感。SQL 可以写在一行或者多行关键字不能被缩写也不能分行各子句一般要分行写。使用缩进提高语句的可读性。,算术运算符,数字和日期使用的数学表达式。,使用数学运算符,操作符优先级,乘除的优先级高于加减。同一优先级运算符从左向右执行。括号内的运算先执行。,操作符优先级,使用括号,列的别名,列

9、的别名:重命名一个列。便于计算。紧跟列名,也可以在列名和别名之间加入关键字AS,以便在别名中包含空格或特殊的字符并区分大小写。,使用别名,连接符,连接符:把列与列,列与字符连接在一起。用|表示。可以用来合成列。,字符串,字符串可以是SELECT列表中的一个字符,数字,日期。日期和字符只能在单引号中出现。每当返回一行时,字符串被输出一次。,重复行,默认情况下,查询会返回全部行,包括重复行。,删除重复行,在SELECT子句中使用关键字DISTINCT删除重复行,总结,通过本课,您应该可以完成:书写SELECT语句:返回表中的全部数据。返回表中指定列的数据。使用别名。,作业1,查询employees

10、表列出所有办事员的姓名(FIRST_NAME+LAST_NAME)、编号(EMPLOYEE_ID)和部门(DEPARTMENT_ID)其中姓名字段需要将FIRST_NAME列和LAST_NAME进行字符串连接查询employees表列出所有办事员的EMPLOYEE_ID,SALARY,其中SALARY列需要显示办事员的收入为原始收入乘以2。,过滤和排序数据,在查询中过滤行,返回在90号部门工作的所有员工的信息,过滤,使用WHERE子句,将不满足条件的行过滤掉。WHERE子句紧随FROM子句。,字符和日期,字符和日期要包含在单引号中。字符大小写敏感,日期格式敏感。默认的日期格式是DD-MON-R

11、R(如6/21/1999)。,比较运算,其它比较运算,BETWEEN,IN,LIKE,使用LIKE运算选择类似的值选择条件可以包含字符或数字:%代表一个或多个字符。_代表一个字符。,LIKE,%和-可以同时使用。,NULL,使用NULL判断空值。,逻辑运算,AND,AND要求与的关系为真。,OR,OR要求或关系为真。,NOT,优先级,优先级,优先级,ORDER BY子句,使用ORDER BY子句排序ASC:升序DESC:降序ORDER BY子句在SELECT语句的结尾。,降序排序,按别名排序,多个列排序,总结,通过本课,您应该可以完成:使用WHERE子句过滤数据使用比较运算使用BETWEEN,

12、IN,LIKE和NULL运算使用逻辑运算符AND,OR和NOT使用ORDER BY子句进行排序。,作业2,查询employees表选择部门(department_id)为30中的雇员显示不带有“R”的雇员姓名(first_name).显示雇员的详细资料,按姓名(first_name)排序.找出不收取佣金(null)或收取的佣金低于500的雇员,单行函数,SQL 函数,单行函数,单行函数:接受函数返回一个结果只对一行进行变换每行返回一个结果可以转换数据类型可以嵌套参数可以是一列或一个值,单行函数,字符函数,大小写控制函数,大小写控制函数,字符控制函数,字符控制函数,数字函数,ROUND:四舍五入

13、ROUND(45.926,2)45.93TRUNC:截断TRUNC(45.926,2)45.92MOD:求余MOD(1600,300)100,MOD函数,日期,Oracle 内部使用数字存储日期:世纪,年,月,日,小时,分钟,秒。默认的日期格式是DD-MON-RR.可以只指定年的后两位在20世纪存放21世纪的日期。同样可以在21世纪存放20世纪的日期。,日期,函数SYSDATE返回:日期时间日期的数学运算:在日期上加上或减去一个数字结果仍为日期。两个日期相减返回日期之间相差的天数。可以用数字除24来向日期中加上或减去小时。,日期函数,日期函数,MONTHS_BETWEEN(01-SEP-95,

14、11-JAN-94)ADD_MONTHS(11-JAN-94,6)NEXT_DAY(01-SEP-95,FRIDAY)LAST_DAY(01-FEB-95),19.6774194,11-JUL-94,08-SEP-95,28-FEB-95,日期函数,Assume SYSDATE=25-JUL-95:ROUND(SYSDATE,MONTH)ROUND(SYSDATE,YEAR)TRUNC(SYSDATE,MONTH)TRUNC(SYSDATE,YEAR),01-AUG-95,01-JAN-96,01-JUL-95,01-JAN-95,转换函数,隐式数据类型转换,Oracle 自动完成下列转换:,

15、显式数据类型转换,TO_CHAR函数对日期的转换,格式:必须包含在单引号中而且大小写敏感。可以包含任意的有效的日期格式。可以使用fm去掉多余的空格或者前导零。与日期指用逗号隔开。,日期格式的元素,日期格式的元素,时间格式HH24:MI:SS AM 15:45:32 PM使用双引号向日期中添加字符DD of MONTH 12 of OCTOBER,TO_CHAR函数对日期的转换,TO_CHAR函数对数字的转换,下面是在TO_CHAR函数中经常使用的几种格式:,TO_NUMBER和TO_DATE函数,嵌套函数,单行函数可以嵌套。嵌套函数的执行顺序是由内到外。,NVL函数,将空值转换成一个已知的值:

16、可以使用的数据类型有日期、字符、数字。函数的一般形式:NVL(commission_pct,0)NVL(hire_date,01-JAN-97)NVL(job_id,No Job Yet),使用NVL函数,条件表达式,在SQL语句中使用IF-THEN-ELSE 逻辑。使用两种方法:CASE表达式DECODE函数,CASE表达式,DECODE函数,总结,通过本章学习,您应该学会:使用函数对数据进行计算使用函数修改数据使用函数控制一组数据的输出格式使用函数改变日期的显示格式使用函数改变数据类型使用NVL 函数使用IF-THEN-ELSE 逻辑,作业3,查询emp表找出各月最后一天受雇的所有雇员.以

17、年-月-日显示所有雇员的yyyy-mm-dd,emp表,多表查询与分组函数,多表查询,从多个表中获取数据,笛卡尔集,为了避免笛卡尔集,可以在WHERE加入有效的连接条件。,Oracle 连接,使用连接在多个表中查询数据在WHERE字句中写入连接条件。在表中有相同列时,在列名之前加上表名前缀。,内连接,内连接只返回满足连接条件的数据,内连接,对于多个连接条件使用AND操作符对于区分重复的列名使用表名前缀在多个表中区分相同的列。使用表名可以提高效率。在不同表中具有相同列名的列可以用别名加以区分。对于多个表可以使用表的别名使用别名可以简化查询。使用表名前缀可以提高执行效率。,外连接,两个表在连接过程

18、中除了返回满足连接条件的行以外还返回左(或右)表中不满足条件的行,这种连接称为左(或右)外联接。两个表在连接过程中除了返回满足连接条件的行以外还返回两个表中不满足条件的行,这种连接称为满外联接。,左外联接,右外联接,满外联接,增加连接条件,分组函数,分组函数作用于一组数据,并对一组数据返回一个值。,组函数类型与语法,AVG COUNT MAX MIN STDDEVSUM,AVG(平均值)和SUM(合计)函数,可以对数值型数据使用AVG和SUM函数。,MIN(最小值)和MAX(最大值)函数,可以对任意数据类型的数据使用MIN和MAX函数。,COUNT(计数)函数,COUNT(*)返回表中记录总数

19、。,DISTINCT关键字,COUNT(DISTINCT expr)返回expr非空且不重复的记录总数,组函数与空值,组函数忽略空值。,在组函数中使用NVL函数,NVL函数使分组函数无法忽略空值。,分组数据,分组数据:GROUP BY子句,可以使用GROUPBY子句将表中的数据分成若干组在SELECT列表中所有未包含在组函数中的列都应该 包含在GROUP BY子句中。,分组数据:GROUP BY子句,包含在GROUP BY 子句中的列不必包含在SELECT列表中。,使用多个列分组,在GROUP BY子句中包含多个列,过滤分组,过滤分组:HAVING子句,使用HAVING过滤分组:1.行已经被分

20、组。2.使用了组函数。3.满足HAVING子句中条件的分组将被显示。,嵌套组函数,显示平均工资的最大值,作业,查询emp表求每个部门的总工资求部门的总工资,只显示总工资小于10000的部门,子查询和集合,使用子查询解决问题,子查询,子查询(内查询)在主查询之前一次执行完成。子查询的结果被主查询使用(外查询)。,子查询注意事项,子查询要包含在括号内。将子查询放在比较条件的右侧。除非进行Top-N 分析,否则不要在子查询中使用ORDER BY子句。单行操作符对应单行子查询,多行操作符对应多行子查询。,子查询类型,单行子查询,只返回一行。使用单行比较操作符。,执行单行子查询,子查询中的空值问题,多行

21、子查询,返回多行。使用多行比较操作符。,在多行子查询中使用ANY操作符,在多行子查询中使用ALL 操作符,集合,UNION操作符UNION操作符返回两个查询的结果集的并集,UNION操作符举例,UNION ALL 操作符,UNION ALL操作符返回两个查询的结果集的并集以及两个结果集的重复部分(不去重),UNION ALL 操作符举例,INTERSECT 操作符,INTERSECT 操作符返回两个结果集的交集,INTERSECT 操作符举例,MINUS 操作符,MINUS 操作符返回两个结果集的补集,MINUS 操作符举例,总结,通过本章学习,您已经学会:在什么时候遇到什么问题应该使用子查询

22、。在查询是基于未知的值时应使用子查询。使用UNION操作符使用UNION ALL 操作符使用INTERSECT 操作符使用MINUS操作符,作业,查找所有10部门的经理和 20部门的办事员查询工资要大于部门所有人的工资,大于部门的最高工资,处理数据,数据控制语言,DML 可以在下列条件下执行:向表中插入数据修改现存数据删除现存数据事务是由完成若干项工作的DML语句组成的。,插入数据,插入数据,为每一列添加一个新值。按列的默认顺序列出各个列的值。在INSERT子句中随意列出列名和他们的值。字符和日期型数据应包含在单引号中。,向表中插入空值,隐式方式:在列名表中省略该列的值。显示方式:在VALUE

23、S 子句中指定空值。,插入指定的值,从其它表中拷贝数据,在INSERT 语句中加入子查询不必书写VALUES 子句。子查询中的值列表应于INSERT子句中的列名对应。,更新数据,更新数据,使用UPDATE语句更新数据。可以一次更新多条数据。使用WHERE子句指定需要更新的数据。如果省略WHERE子句,则表中的所有数据都将被更新。,在UPDATE语句中使用子查询,更新114号员工的工作和工资使其与205号员工相同。,删除数据,删除数据,使用DELETE语句从表中删除数据。使用WHERE子句指定删除的记录。如果省略WHERE子句,则表中的全部数据将被删除。,在DELETE 中使用子查询,在DELE

24、TE 中使用子查询,使删除基于另一个表中的数据。,数据库事务,数据库事务由以下的部分组成:一个或多个DML 语句一个DDL 语句一个DCL 语句以第一个DML语句的执行作为开始以下面的其中之一作为结束:COMMIT 或ROLLBACK语句DDL 或DCL 语句(自动提交)用户会话正常结束,COMMIT和ROLLBACK语句的优点,使用COMMIT和ROLLBACK语句,我们可以:确保数据完整性。数据改变被提交之前预览。将逻辑上相关的操作分组。,回滚到保留点,使用SAVEPOINT语句在当前事务中创建保存点。使用ROLLBACK TOSAVEPOINT语句回滚到创建的保存点,事务进程,自动提交在

25、以下情况中执行:DDL 语句。DCL 语句。会话异常结束或系统异常会导致自动回滚。,提交或回滚前的数据状态,改变前的数据状态是可以恢复的执行DML 操作的用户可以通过SELECT语句查询之前的修正其他用户不能看到当前用户所做的改变,直到当前用户结束事务。DML语句所涉及到的行被锁定,其他用户不能操作。,提交后的数据状态,数据的改变已经被保存到数据库中。改变前的数据已经丢失。所有用户可以看到结果。锁被释放,其他用户可以操作涉及到的数据。所有保存点被释放。,提交数据,改变数据提交改变,数据回滚后的状态,使用ROLLBACK语句可使数据变化失效:数据改变被取消。修改前的数据状态可以被恢复。锁被释放。

26、,读一致性,读一致性为数据提供一个一致的视图。一个用户的对数据的改变不会影响其他用户的改变。对于相同的数据读一致性保证:查询不等待修改。修改不等待查询。,总结,通过本章学习,您应学会如何使用DML语句改变数据和事务控制,作业,为表DEPT80插入一行数据Employee_id:1587Name:JohnEmail:Hire_date:sysdateJob_id:AD_PRES更新DEPT80表,将lindsey的工资和岗位修改为与Ellen完全相同删除雇员lindsey,目录,常见的数据库对象,表,创建表,命名规则,表名和列名:必须以字母开头必须在130 个字符之间必须只能包含AZ,az,09

27、,_,$,和#必须不能和用户定义的其他对象重名必须不能是Oracle 的保留字,Oracle 数据库中的表,用户定义的表:用户自己创建并维护的一组表包含了用户所需的信息数据字典:由Oracle Server自动创建的一组表包含数据库信息,查询数据字典,数据类型,使用子查询创建表,ALTER TABLE语句,使用ALTERTABLE语句可以:追加新的列修改现有的列为新追加的列定义默认值删除一个列,追加一个新列,修改一个列,删除一个列,删除表,数据和结构都被删除所有正在运行的相关事物被提交所有相关索引被删除DROP TABLE语句不能回滚,改变对象的名称,执行RENAME语句改变表,视图,序列,或

28、同义词的名称必须是对象的拥有者,清空表,TRUNCATE TABLE语句:删除表中所有的数据释放表的存储空间TRUNCATE语句不能回滚可以使用DELETE语句删除数据,约束,约束是表级的强制规定约束放置在表中删除有关联关系的数据有以下五种约束:NOT NULLUNIQUE PRIMARY KEYFOREIGN KEYCHECK,NOT NULL约束,UNIQUE约束,UNIQUE约束,PRIMARY KEY约束,PRIMARY KEY约束,FOREIGN KEY约束,FOREIGN KEY约束,CHECK约束,定义每一行必须满足的条件以下的表达式是不允许的:出现CURRVAL,NEXTVAL

29、,LEVEL,和ROWNUM伪列使用SYSDATE,UID,USER,和USERENV函数在查询中涉及到其它列的值,添加与删除约束,总结,通过本章学习应该掌握如何建立一个表如何给表的列上增加主键,外键等约束修改和删除表,作业,建立author表列名:id number(3)Name:varchar2(10)Sal:number(6,2)维护author表为author表增加一列address varchar2(100)修改author表sal列为number(20,2)删除author表在dept表的name列增加唯一约束un_dept_name在dept表的eno列上增加主键约束pk_emp

30、01,视图,视图,为什么使用视图,控制数据访问简化查询数据独立性避免重复访问相同的数据,简单视图和复杂视图,创建视图,查询视图,修改视图,创建复杂视图,删除视图,总结,通过本章学习,您已经了解视图的优点和基本应用:控制数据访问简化查询数据独立性删除时不删除数据,作业,基于emp表的雇员号、雇员名、工资和部门号建立简单视图emp_vu,并定义列名为eno、name、sal、dno删除视图emp_vu,其他数据库对象,序列,序列:自动提供唯一的数值共享对象主要用于提供主键值代替应用代码将序列值装入内存可以提高访问效率,创建序列,创建序列DEPT_DEPTID_SEQ为表DEPARTMENTS提供主

31、键使用CYCLE选项,NEXTVAL和CURRVAL伪列,NEXTVAL返回序列中下一个有效的值,任何用户都可以引用CURRVAL中存放序列的当前值NEXTVAL应在CURRVAL之前指定,二者应同时有效,序列应用举例,使用序列,将序列值装入内存可提高访问效率序列在下列情况下出现裂缝:回滚系统异常多个表同时使用同一序列,修改序列,修改序列的增量,最大值,最小值,循环选项,或是否装入内存,修改序列的注意事项,必须是序列的拥有者或对序列有ALTER权限只有将来的序列值会被改变改变序列的初始值只能通过删除序列之后重建序列的方法实现,删除序列,使用DROP SEQUENCE语句删除序列删除之后,序列不

32、能再次被引用,索引,索引:一种数据库对象通过指针加速Oracle 服务器的查询速度通过快速定位数据的方法,减少磁盘I/O索引与表相互独立Oracle 服务器自动使用和维护索引,创建索引,自动创建:在定义PRIMARY KEY或UNIQUE约束后系统自动在相应的列上创建唯一性索引手动创建:用户可以在其它列上创建非唯一的索引,以加速查询,创建索引,在表EMPLOYEES的列LAST_NAME上创建索引,什么时候创建索引,以下情况可以创建索引:列中数据值分布范围很广列中包含大量空值列经常在WHERE子句或连接条件中出现表经常被访问而且数据量很大,访问的数据大概占数据总量的2%到4%,什么时候不要创建

33、索引,下列情况不要创建索引:表很小列不经常作为连接条件或出现在WHERE子句中查询的数据大于2%到4%表经常更新加索引的列包含在表达式中,查询索引,可以使用数据字典视图USER_INDEXES和USER_IND_COLUMNS查看索引的信息,基于函数的索引,基于函数的索引是一个基于表达式的索引索引表达式由列,常量,SQL 函数和用户自定义的函数,删除索引,同义词,使用同义词访问相同的对象:方便访问其它用户的对象缩短对象名字的长度,创建和删除同义词,总结,通过本章学习,您已经可以:使用序列通过数据字典视图USER_SEQUENCES查看序列信息使用索引提高查询效率通过数据字典视图USER_INDEXES查看索引信息为数据对象定义同义词,作业,基于emp表的deptno、job列建立复合索引idx_dept_job建立序列deptno_seq:序列初值50、序列增量1、序列最大值90以scott用户登录到数据库,基于emp表建立同义词emp1,Q&A,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号