1. 首页
  2. 文档大全

oracle数据库实用教程

上传者:d**** 2022-05-29 13:46:31上传 PPTX文件 2.67MB
oracle数据库实用教程_第1页 oracle数据库实用教程_第2页 oracle数据库实用教程_第3页

《oracle数据库实用教程》由会员分享,可在线阅读,更多相关《oracle数据库实用教程(158页珍藏版)》请在文档大全上搜索。

1、欢送参加学习 ORACLE数据库实用教程 亚信科技中国 培训中心第一页,共一百五十八页。什么是数据库?什么是数据库? 数据库是管理数据的一种方法, 如何组织和存储数据, 如何高效地获取和处理数据。第二页,共一百五十八页。数据管理的开展的数据管理的开展的3个阶段个阶段 人工管理阶段 无数据管理的专用软件,数据和程序在一起 文件系统阶段 软件进展数据管理,程序和数据别离 数据冗余度大,数据和程序缺乏独立性 文件之间不能建立联系 数据库系统阶段 数据具有更高的独立性 数据库管理系统-DBMS:数据库的定义、操作和管理第三页,共一百五十八页。关系型数据库关系型数据库关系型数据库 支持关系模型,以关系表

2、形式组织数据。 著名的关系型数据库 DB2,ORACLE,INFORMIX,SYBASE等。关系型数据库=Datafile+RDBMSRDBMSOSDBdatafile1datafile2第四页,共一百五十八页。实验环境 %telnet 200.1.1.115 用户名/口令:oracle8/oracle8 %sqlplus scott/tiger sqlconnect scott/tiger sqlshow user sqlquit第五页,共一百五十八页。表表-关系型DB数据组织的形式报道表空表-表的结构白纸-设计一张表-多少项内容(列)-画表时,每项多宽列-字段;列类型 宽、 类型-数据类型

3、长度、类型行-记录表=列+行-字段+记录姓名编号单位性别第六页,共一百五十八页。表看scott用户有哪些表然后查看其中一个表的结构和内容#sqlplus scott/tigersqlselect table_name from tabs; (user_tables)sqldesc emp;sqlselect * from emp;第七页,共一百五十八页。表 表结构(DDL) create table alter table drop table truncate table 表内容(DML) insert update deletedesc table_name select field_na

4、me from table_name 第八页,共一百五十八页。根本数据类型CHAR(n) n=255VARCHAR2(n)n=2000LONG(n) n=2G NUMBER(m,n)m精度(1-38) n小数后位数 RAW(n)二进制数据 n=2000 LONG RAW(n)n ALTER SESSION SET NLS_DATE_FORMAT=YY-MM-DD;2.下次启动后永久生效-改文件设置INITSID.ORA中的NLS_DATE_FORMAT参数可改变缺省日期的格式。第十一页,共一百五十八页。表结构 1建立sqlcreate table table_name (column_name

5、1 datatype not null|unique, column_name2 datatype not null|unique, column_name2 datatype not null|unique);第十二页,共一百五十八页。表内容 1.插入记录sqlinsert into table_name column_name-a, ,column_name-x values (column_value-a,column_value-x);第十三页,共一百五十八页。表结构 2.变更1修改 sqlalter table table_name modify(column_name dataty

6、pe );2增加 sqlalter table table_name add(column_name datatype );第十四页,共一百五十八页。表内容 2.修改记录sqlupdate table_name set column_name1= values1,column_name2=values2 where search_conditions;第十五页,共一百五十八页。表内容 3.删除记录sqldelete from table_name where search_conditions;sqltruncate tabletruncate table table_name; ;第十六页,

7、共一百五十八页。表结构 3.删除1删结构及内容sqldrop tabledrop table table_name; ;第十七页,共一百五十八页。事物处理 事物处理命令 提交:commit 回滚:rollback 保存点:savepoint SQL SAVEPOINT CLARK_SAL; SQL ROLLBACK TO SAVEPOINT BLAKE_SAL;第十八页,共一百五十八页。2. 命令修改a 当前行末追加c/old/new 更改cl buff 清缓存del 删除(n, last, m n)i 参加(i, i text)save filename 保存edit、vi filename

8、 编辑start filenamefilename3.保存命令4.执行命令1.显示命令l 显示l,l n ,l m n,l last)SQLSQL* *PLUSPLUS第十九页,共一百五十八页。练习 建表 注意利用SQL命令缓冲区 插入、修改、删除数据注意条件 提交、回滚第二十页,共一百五十八页。练习 表名txl-n 结构:学号 数字型 3 唯一 姓名 可变长字符串 10 非空 出生 日期型 数字型 10 查看结构、查看内容第二十一页,共一百五十八页。练习 1增加字段 单位 可变长字符串 12 2修改字段 出生 可变长字符串 5原日期第二十二页,共一百五十八页。练习 插入数据 至少5条 修改数

9、据 根据条件 删除数据根据条件第二十三页,共一百五十八页。SQL语句中的函数 字符函数 substr、length 、lower 、rtrim 、ltrim 数值函数 abs 、mod 、round 、trunc 、nvl 日期函数 months_between 、add_months 、next_day 转换函数 to_char 、to_date第二十四页,共一百五十八页。数据查询语言DML命令 SELECT语句SELECT FROM WHERE GROUP HAVING ORDER BY 第二十五页,共一百五十八页。简单查询 无条件查询 条件查询 排序 统计 分组统计第二十六页,共一百五十

10、八页。分组函数(统计函数 完成对一组记录的统计处理 count(*| distinct|all x): 行数 sum(x):数据列求和 avg(distinct|all x):数据列平均值 max(x):列的最大值 min(x): 列的最小值 除count(*)外,当使用分组函数时,均忽略空值第二十七页,共一百五十八页。分组函数(统计函数 练习1 工资的平均值2 奖金的最大值3 工资的总和4 最低工资5 表中数据行的总数6 有多少个不同的部门第二十八页,共一百五十八页。分组查询与排序数据分组:对有重复值的列进展分组。查询: SELECT col1,col2,分组函数 FROM table1 W

11、HERE conditions GROUP BY col1,col2 HAVING condition ORDER BY col1,col2 SELECT选择的列,必须出现在GROUP BY 子句中;GROUP BY 子句中的列只能是SELECT选择的列或分组函数中的列。顺序无关。第二十九页,共一百五十八页。分组查询练习:1编写SQL语句,从EMP表中返回-部门编号、部门平 均工资。2编写SQL语句,从EMP表中返回-部门编号、部门工资总和条件是:部门工资总和大于8000。3编写SQL语句,从EMP表中返回-部门编号、部门平均工资条件是:除了部门10,部门工资平均值大于1500的部门的情况。第

12、三十页,共一百五十八页。2多表查询-连接 等值连接 非等值连接- 自连接 外连接第三十一页,共一百五十八页。select ename,dnamefrom emp e,dept dwhere e.deptno=d.deptno 2 等值连接EQUIJOIN 基于列的相等性来连接两张或多张表。 题目: 查找雇员姓名及所在部门的名称.MGRJOBENAMEEMPNOSALHIREDATECOMMDEPTNODEPTNODNAMELOCemp表emp表dept表dept表第三十二页,共一百五十八页。2非等值连接NON-EQUIJOIN 基于列的不等性来连接两张或多张表。题目:请查找雇员SMITH的工资

13、和工资等级情况, 希望显示的信息-员工名、工资、工资等级.MGRJOBENAMEEMPNOSALHIREDATECOMMDEPTNODEPTNODNAMELOCGRADELOSALHISALemp表emp表salgrad表salgrad表dept表dept表第三十三页,共一百五十八页。2非等值连接NON-EQUIJOIN请分析如下语句:请分析如下语句:SELECT ENAME,SAL,GRADE FROM EMP,SALGRADWHERE ENAME=SMITH;SELECT * FROM SALGRAD;SELECT ENAME,SAL,GRADE FROM EMP,SALGRADWHERE

14、 ENAME=SMITHAND SAL BETWEEN LOSAL AND HISAL第三十四页,共一百五十八页。2等值连接和非等值连接题目:查找工资级别为2的雇员的信息 。 要求显示的信息:雇员的姓名,部门的名称, 工资、工资级别MGRJOBENAMEEMPNOSALHIREDATECOMMDEPTNODEPTNODNAMELOCGRADELOSALHISALemp表emp表salgrad表salgrad表dept表dept表SELECT ENAME,DNAME,SAL,GRADEFROM EMP,DEPT,SALGRADEWHERE GRADE=2 AND SAL BETWEEN LOSA

15、L AND HISAL AND EMP.DEPTNO=DEPT.DEPTNO;第三十五页,共一百五十八页。2自我连接(SELF JOIN)将表连接到自身 在SQL语句中一个表暂时重新命名为两个表。题目:EMP中查找员工和其经理的对应关系:要求-员工名称和其经理的名称同一基表的不同行做联接,如同两个独立的基表,在FROM子句中至少要为一个基表起别名,以区别联接条件中的列名第三十六页,共一百五十八页。2自连接(SELF JOIN)MGREMPNO60100601015060.305030EMPNO10010160.5030EMP(WORKERWORKER)EMP(MANAGERMANAGER)EN

16、AMExhlxqwjAAAKINGENAMExhlxqwjAAAKINGSELECT WORKER.ENAME, MANAGER.ENAME MANAGERFROM EMP WORKER, EMP MANAGERWHERE WORKER.MGR=MANAGER.EMPNO;第三十七页,共一百五十八页。2外连接(OUTER JOIN)MGREMPNO60100601015060.305030EMPNO10010160.5030EMP(WORKERWORKER)EMP(MANAGERMANAGER)ENAMExhlxqwjAAAKINGENAMExhlxqwjAAAKING需增加一条空记录与W O

17、 R K E R 表的相应记录进行匹配用于返回存在在一张表上 的所有数据行,甚至相对 应的行 在连接的表中不存 在。+号用于在查询中的 OUTERJOIN。 带+的表是那些没有 相应行的表。第三十八页,共一百五十八页。2外连接(OUTER JOIN)题目1:EMP中查找员工和其经理的对应关系: 要求-员工名称和其经理的名称,请注意使用外连接及+放置位置。SELECT WORKER.ENAME, MANAGER.ENAME MANAGERFROM EMP WORKER,EMP MANAGERWHERE WORKER.MGR=MANAGER.EMPNO+;第三十九页,共一百五十八页。2外连接(OU

18、TER JOIN)题目2:查找哪些部门有叫SMITH的人 显示:雇员名称、部门名称(所有部门都要列出来)ENAME DNAME- - ACCOUNTINGSMITH RESEARCH SALES OPERATIONS MGRJOBENAMEEMPNOSALHIREDATECOMMDEPTNODEPTNODNAMELOCemp表emp表dept表dept表SELECT ENAME,DNAMEFROM EMP E,DEPT DWHERE E.DEPTNO(+)=D.DEPTNO AND E.ENAME(+)=SMITH;第四十页,共一百五十八页。2外连接(OUTER JOIN)题目3:查找哪些部门

19、没有叫SMITH的人 要求显示信息:雇员名称、部门名称ENAME DNAME- - ACCOUNTINGSMITH RESEARCH SALES OPERATIONS MGRJOBENAMEEMPNOSALHIREDATECOMMDEPTNODEPTNODNAMELOCemp表emp表dept表dept表select ename,dnamefrom emp e,dept dwhere e.deptno(+)=d.deptnoand e.ename(+)=SMITHand e.ename is null 第四十一页,共一百五十八页。子查询 单行值子查询 多行值子查询 多列子查询 相关子查询第四十

20、二页,共一百五十八页。单行值子查询工资高于7698号雇员,并且工种与他一样的雇员情况SQLSELECT ENAME,SAL,JOB FROM EMP WHERE SAL(SELECT SAL FROM EMP WHERE EMPNO=7698) AND JOB=(SELECT JOB FROM EMP WHERE EMPNO=7698);第四十三页,共一百五十八页。多行值子查询谓词IN, NOT IN哪些部门没有叫SMITH的雇员。SQL select dept.deptno,dname,loc from dept 2 where dept.deptno not innot in 3 ( se

21、lect deptno from emp 4 where ename=SMITH);第四十四页,共一百五十八页。多行值子查询 ANY: 子查询返回结果中的任一值满足条件即可。 ANY前可以使用!=、=、 SELECT EMPNO,ENAME,SAL 2 FROM EMP 3 WHERE SAL SELECT EMPNO,ENAME,SAL FROM EMP 2 WHERE SALALL( SELECT SAL FROM EMP WHERE DEPTNO=20);也可表达为:SQL SELECT EMPNO,ENAME,SAL FROM EMP 2 WHERE SAL( SELECT MAX(S

22、AL) FROM EMP WHERE DEPTNO=20);第四十六页,共一百五十八页。多行值子查询 EXISTS: 子查询至少返回一行时条件成立。 NOT EXISTS:子查询不返回任何行时条件成立。用途确定一个表中的哪些信息在另一个表中没有匹配。 用NOT EXISTS代替NOT IN第四十七页,共一百五十八页。多列子查询 例:查出工资、奖金与20号雇员匹配的人员。SQL select ename from emp where (nvl(comm,0),sal) in (select nvl(comm,0),sal from emp where deptno=20);第四十八页,共一百五十

23、八页。相关子查询 例:查出工资、奖金与20号雇员匹配的人员。SQL select ename from emp where (nvl(comm,0),sal) in (select nvl(comm,0),sal from emp where deptno=20);第四十九页,共一百五十八页。其它查询 集合 UNION INTERSECT MINUS 树查询第五十页,共一百五十八页。UNION UNION:将表和视图中的记录合并在一起。所有部门中有哪些雇员的工资超过2OOO?SQL select * from emp where sal2000SQLselect ename,sal from

24、dept10 where sal2000 union select ename,sal from dept20 where sal2000 union select ename,sal from dept30 where sal2000;第五十一页,共一百五十八页。视图SQL create view dept10 as 2 select ename,job,sal from emp 3 where deptno=10;dept20、dept30的创立过程同dept10第五十二页,共一百五十八页。INTERSECT返回查询结果中一样的局部。哪些部门有一样的工种?SQLselect distinc

25、t a.job from emp a,emp b where a.deptnob.deptno and a.job=b.jobSQL select job from dept30 intersect select job from dept20 intersect select job from dept10;第五十三页,共一百五十八页。MINUS返回第一个查询结果中与第二个查询结果不一样的那局部行记录 有哪些工种是在财会部有,而在销售部中没有?SQLselect job from emp where deptno=10 and job not in (select job from emp

26、where deptno=30);SQL select job from dept10 minus select job from dept30;第五十四页,共一百五十八页。子查询注意 子查询必须用括号括住; 子查询必须只有一列,或者子查询的多列与主查询中用括号括起来的多个列连接; 单行值子查询可以使用单值或多值运算符,多行子查询必须使用多值运算符; BETWEEN AND不能用于子查询; 子查询中不能使用ORDER BY子句;第五十五页,共一百五十八页。测试操作运算符单值: =、=、=、!= 、=、 LIKE、IS NULL、IS NOT NULL。多值: IN、NOT IN; (BETWE

27、EN AND、NOT BETWEEN AND) ANY、NOT ANY; ALL、NOT ALL; EXISTS、NOT EXISTS。第五十六页,共一百五十八页。ORACLE数据库体系结构 ORACLE数据库的存储结构 ORACLE数据库的软件体系结构1. 逻辑存储结构逻辑存储结构2. 物理存储结构物理存储结构1. 实例实例2. Oracle 8网络网络* 锁机制和锁机制和SCN第五十七页,共一百五十八页。数据库存储结构 物理结构 是实际数据的存储单元,例如数据库文件 逻辑结构 是数据概念上的组织,例如表空间 因为物理和逻辑结构是分开的,数据物理存储的管理并不影响逻辑结构,能灵活的独立管理。

28、第五十八页,共一百五十八页。表空间和数据文件数据库数据库SYSTEM表空间表空间逻辑组成逻辑组成物理组成物理组成TEMP表空间表空间ROLLBACK表空间表空间Data1.ORAData2.ORAData3.ORAData4.ORAData6.ORAData5.ORA数据文件数据文件USER表空间表空间Data7.ORAData8.ORA第五十九页,共一百五十八页。 由组成数据库的操作系统文件决定 数据库的文件提供了数据库信息的实际物理存储 三种类型的文件 控制文件:记录数据库的物理结构 数据文件:包括全部数据库数据 日志文件:记录对数据库所做的修改物理结构-数据库文件第六十页,共一百五十八页

29、。Oracle数据库结构组成 Parameter FileDatafilesControl FilesRedo Log FilesOracle Database第六十一页,共一百五十八页。物理结构-控制文件数据文件的名称、位置、状态及大小数据文件的名称、位置、状态及大小联机重做日志文件的名称、位置、状态及大小联机重做日志文件的名称、位置、状态及大小数据库的创建时间数据库的创建时间SCNSCN 等等控制文件第六十二页,共一百五十八页。物理结构-控制文件控制文件控制文件控制文件 1控制文件控制文件 2读写控制文件读写控制文件写控制文件写控制文件数据库数据库磁盘磁盘 C磁盘磁盘 D第六十三页,共一百

30、五十八页。物理结构-控制文件1. $ORACLE_HOME/dbs目录下,ls *.ora : initTX08.ora configTX08.ora control_files = (/data1/oracle8/oradata/TX08/control01.ctl, /data1/oracle8/oradata/TX08/control02.ctl, /data1/oracle8/oradata/TX08/control03.ctl) 2. SQL select * from V$controlfile;第六十四页,共一百五十八页。物理结构-日志文件LGWR联机重做日志组一联机重做日志组一

31、事事务务修修改改联机重做日志组二联机重做日志组二联机重做日志组联机重做日志组 N.LGWR联机重做日志联机重做日志联机重做日志联机重做日志ARCn存档日志存档日志复复制制联机重做日志文件归档日志文件第六十五页,共一百五十八页。以ORACLE FOR SOLARIS为例:数据文件:mount_point/oradata/ora_sid/system01.dbfmount_point/oradata/ora_sid/tools01.dbfmount_point/oradata/ora_sid/users01.dbfmount_point/oradata/ora_sid/temp01.dbfmoun

32、t_point/oradata/ora_sid/rbs01.dbf控制文件:mount_point/oradata/ora_sid/control01.ctlmount_point/oradata/ora_sid/control02.ctlmount_point/oradata/ora_sid/control03.ctl日志文件:mount_point/oradata/ora_sid/redoora_sid01.logmount_point/oradata/ora_sid/redoora_sid02.logmount_point/oradata/ora_sid/redoora_sid03.lo

33、g第六十六页,共一百五十八页。逻辑组成 多个表空间(tablespace)组成 一个表空间是一个逻辑存储区 数据库模式(schema)对象 模式是对象的集合。模式对象直接涉及数据库数据的逻辑结构 ,包括表、视图、序列、存储过程、同义词、索引等 逻辑存储结构包括表空间、段逻辑存储结构包括表空间、段(segment)、区、区(extent)、块、块(block),指明如何使用数据库物理空间。指明如何使用数据库物理空间。第六十七页,共一百五十八页。表空间的几个概念 表空间分类: System表空间、其它表空间 只读表空间、可读写表空间 表空间的状态: 脱机、联机-控制数据的可用性 表空间大小的管理:

34、建立、增加、修改第六十八页,共一百五十八页。表空间的几个概念 表空间的状态: 脱机、联机-控制数据的可用性 SQL alter tablespace name offline normal; SQL select * from user_tablespaces; SQL alter tablespace test online; SQL select table_name , tablespace_name from tabs; 第六十九页,共一百五十八页。单一表空间-system表空间第七十页,共一百五十八页。多个表空间-system表空间和其它表空间第七十一页,共一百五十八页。表空间中数据

35、文件的自动增长第七十二页,共一百五十八页。表空间的物理存储区-数据文件表空间表空间数据文件数据文件数据文件数据文件数据文件数据文件 第七十三页,共一百五十八页。数据库对象的物理存储区-段2Kb 2Kb2Kb2Kb 2Kb 2Kb2Kb 2Kb 2Kb2Kb 2Kb 2Kb2Kb 2Kb 2Kb2Kb 2Kb 2Kb2Kb 2Kb 2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb区间区间 242Kb区间区间 114Kb数据块数据块段段EMPDEPTEMPDEPT段段1区区间间1段段2区区间间1段段1区区间间2自自由由空空间间第七十四页,共一百五十八页。例子:表空间与表空间中对象CREATE TA

36、BLESPACE user_dataDATAFILE datauser1Tx08.dbf SIZE 5MONLINEDEFAULT STORAGE (INITIAL 10KNEXT 10KMINEXTENTS 2MAXEXTENTS 50PCTINCREASE 0 ); ;第七十五页,共一百五十八页。逻辑结构段、区和数据块 数据库空间的分配单元是段、区和数据块。段:决定数据库对象使用的全部区的集合。区:由连续的数据块的集合。块:Oracle数据库磁盘存取的最小的单元。第七十六页,共一百五十八页。保存表和簇的所有数据的区的聚集保存特殊索引的所有数据的区的聚集1.数据段2.索引段逻辑结构段类型第七

37、十七页,共一百五十八页。4.临时段3.回滚段逻辑结构段类型第七十八页,共一百五十八页。查询有哪些类型的段:SQL select distinct segment_type from dba_segments;以SYS和SYSTEM用户身份登录逻辑结构段类型 查询某一用户在某一表空间中段的占有情况:SQL column segment_name format a10SQL select * from user_segments;SQL select * from user_segments where tablespace_name=TEST;第七十九页,共一百五十八页。数据段每张非聚簇表有一个

38、单独的数据段来存放所有的数据。SQL select segment_name from dba_segments where segment_type=TABLE;逻辑结构段类型 索引段每个索引有单独的索引段来存放数据。SQL select segment_name from dba_segments where segment_type=INDEX; ROLLBACK TEMPORARY第八十页,共一百五十八页。逻辑结构区 当创立新的数据对象表、索引等时,Oracle为对象的段分配一个或多个区。 区是存储对象段的表空间数据文件中的一系列连续的数据块。第八十一页,共一百五十八页。逻辑结构区 区

39、的设置(决定区的参数) 创立段时,可以决定分配区的数目。 maxextents 最大分配的区数,minextents 最小分配的区数 可以控制区的大小。能够设置段的初始区间和后续区间的大小 initial 最初分配的空间数(缺省为10k,5个数据块) next 下一步分配的空间数 pctincrease 增长率,指数级增长第八十二页,共一百五十八页。逻辑结构区 SQL select * from user_extents;SQL select * from dba_extents;(SYS用户和SYSTEM用户)第八十三页,共一百五十八页。逻辑结构数据块最小的磁盘存取单元,当操作一个数据库时,

40、最小的磁盘存取单元,当操作一个数据库时,Oracle使用数据块存储和提取磁盘上的数据。使用数据块存储和提取磁盘上的数据。 当查询一个表时,当查询一个表时,Oracle将含有查询结果集记将含有查询结果集记录的全部数据快读取到效劳器的内存中。录的全部数据快读取到效劳器的内存中。由一个或多个由一个或多个O/S 块组成块组成在数据库创立时设定块大小,块大小必须等于在数据库创立时设定块大小,块大小必须等于O/S 块的大小或它的倍数。块的大小或它的倍数。 如果效劳器的操作系统块大小是如果效劳器的操作系统块大小是512K,数据块,数据块大小可以是大小可以是512K、1024K和和2048K等。等。第八十四页

41、,共一百五十八页。InsertsInsertsInsertsInserts1234PCTFREE=2080%80%40%逻辑结构 数据块空间PCTUSED=40第八十五页,共一百五十八页。Made up ofPart ofTemporaryIndexCacheClusterRollbackDataSegmentTablespaceDatabaseLocation ofFreeExtentUsedMade up ofI nLocation ofInstanceDB BlockPart ofMade up ofOS BlockControllingControlled byFileLogical

42、DiscPart ofMade up ofPart ofMade up ofMade up ofPart ofMade up ofPart ofPart ofPart of数据库结构组成第八十六页,共一百五十八页。实例实例客户客户实例实例请求请求响应响应数据库数据库写入数据写入数据获取数据获取数据数据库服务器数据库服务器第八十七页,共一百五十八页。实例实例=PGA+SGA+后台进程后台进程用户用户进程进程用户用户进程进程.服务器服务器线程线程服务器服务器线程线程.PGA数据块高速缓存数据块高速缓存重做日志缓冲区重做日志缓冲区共享共享 SQL池池SGASMONPMONRECOLGWRARCH.O

43、racle后台进程后台进程实实 例例数据字典高速缓存数据字典高速缓存DBWR第八十八页,共一百五十八页。程序全局区PGA) 程序全局区程序全局区PGA 用于保存效劳器进程的数据和控制信息。用于保存效劳器进程的数据和控制信息。 当用户进程要连接到当用户进程要连接到Oracle数据库效劳器时,数据库效劳器时,会在实例中为其分配相应的效劳器进程。会在实例中为其分配相应的效劳器进程。第八十九页,共一百五十八页。SGA组成Shared PoolDatabase Buffer CacheRedo LogBuffer System Global Area(SGA)Shared SQL AreasData D

44、ictionary第九十页,共一百五十八页。系统全局区系统全局区SGA1.数据库高速缓存数据库高速缓存Data Block Buffer Cache客户应用客户应用 检索数据检索数据返回数据返回数据数据库高速缓存数据库高速缓存查找数据块查找数据块读取数据块读取数据块数据库数据库第九十一页,共一百五十八页。系统全局区系统全局区SGA2.重做日志缓冲区重做日志缓冲区Redo Log BuffersUPDATE .INSERT .COMMIT重做日志缓冲区重做日志缓冲区记录记录写入写入联机重做日志联机重做日志第九十二页,共一百五十八页。系统全局区系统全局区SGA3.数据字典高速缓存数据字典高速缓存D

45、ictionary Cache该高速缓存用于存放该高速缓存用于存放最近使用和经常使用最近使用和经常使用的数据字典信息。的数据字典信息。当下次需要这些信息时,就可以直接从数据字典高速缓存中读当下次需要这些信息时,就可以直接从数据字典高速缓存中读取到这些信息,从而提高系统性能取到这些信息,从而提高系统性能.第九十三页,共一百五十八页。系统全局区系统全局区SGA共享共享SQL池用于保存池用于保存SQL语句的执行方案和分析树。语句的执行方案和分析树。当执行当执行SQL语句时,系统会将相应的执行方案和分语句时,系统会将相应的执行方案和分析树保存到共享析树保存到共享SQL池中。然后当再次执行这些池中。然后

46、当再次执行这些SQL语句时,系统会自动使用原有执行方案和分语句时,系统会自动使用原有执行方案和分析树,从而提高了系统性能。析树,从而提高了系统性能。4. 共享共享SQL池池Shared SQL Pool)第九十四页,共一百五十八页。Oracle后台线程后台线程第九十五页,共一百五十八页。后台进程后台进程数据库数据库高速缓存高速缓存发出发出检查点检查点DBWR修改内容修改内容数据文件数据文件写入写入1. DBWR第九十六页,共一百五十八页。后台进程后台进程UPDATE AUTHS SET salary = salary*1.05;INSERT INTO AUTHS .;.COMMIT;重做日志缓

47、冲区重做日志缓冲区客户端客户端 SQL语句语句LGWR联机重做日志联机重做日志事事务务修修改改 2. LGWR日志组一日志组一日志组二日志组二LGWRLGWR日志组一填满日志组一填满日志组二填满日志组二填满第九十七页,共一百五十八页。后台进程后台进程日志组一日志组一日志组二日志组二LGWRLGWR日志组一填满日志组一填满日志组二填满日志组二填满ARCH0001ARCH000200013. ARCH第九十八页,共一百五十八页。实例与数据库的关系数据库数据库实例一实例一实例实例N.一对一一对多第九十九页,共一百五十八页。创立实例创建参数文件创建参数文件创建实例创建实例第一百页,共一百五十八页。 启

48、动一个实例第一百零一页,共一百五十八页。数据库的启动 启动实例启动实例-nomount 翻开初始化参数文件翻开初始化参数文件 svrmgrconnect internal svrmgrstartup nomount; svrmgrselect * from v$process; svrmgrselect * from v$controlfile; svrmgrselect * from v$logfile; svrmgrselect * from v$datafile;第一百零二页,共一百五十八页。数据库的启动 装配数据库装配数据库-mount 翻开控制文件翻开控制文件 方法方法1: svrm

49、gralter database mount; 方法方法2: svrmgrconnect internal svrmgrstartup mount; 查询操作同前页。查询操作同前页。第一百零三页,共一百五十八页。数据库的启动 翻开数据库-open 翻开数据文件和日志文件 方法1: svrmgr alter database open; 方法2: svrmgrconnect internal svrmgrstartup; svrmgrselect * from user_tablespaces; svrmgrselect * from dba_data_files;第一百零四页,共一百五十八页。

50、 关闭一个实例第一百零五页,共一百五十八页。数据库实例的关闭 关闭数据库 关闭数据文件和日志文件 svrmgrshutdown; 卸下数据库 关闭控制文件 svrmgrshutdown; 停止实例 关闭初始化参数文件 svrmgrshutdown;第一百零六页,共一百五十八页。Oracle8网络与Net8 Net8-Oracle的网络连接软件 连接描述器与tnsnames.ora 监听进程与listener.ora 监听进程的操作命令 配置效劳器 配置客户机 调试连接问题第一百零七页,共一百五十八页。Net8clientsever协议适配器TNS层Net层Net8Net8SQL语句数据库第一百

51、零八页,共一百五十八页。SQL*NET原理及所需配置文件原理及所需配置文件listener.oratnsnames.oraProcessServer第一百零九页,共一百五十八页。连接描述器与tnsnames.oraTX08=( DESCREPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=200.1.1.115) (PORT=1521) ) (CONNECT DATA= (SID=TX08) ) )$ORACLE_HOME/network/admin-tnsnames.oratnsnames.ora 2个要求个要求第一百一十页,共一百五十八页。监听进程与listene

52、r.oraListener=(ADDRESS LIST= (ADDRESS= (PROTOCOL=TCP) (HOST=200.1.1.115) ) ) - (SID_LIST_LISTENER= (SID LIST= ( SID_DESC= SID_NAME=TX08 ORACLE_HOME=/DATA1/ORACLE/TX08 ) ) )1.地址列表地址列表2.监听效劳的实例列表监听效劳的实例列表第一百一十一页,共一百五十八页。监听进程的操作命令 lsnrctl lsnrctl start listenername stop listenername status listenername

53、 version listenername set current_listener listenername -检查监听进程是否启动检查监听进程是否启动: ps -ef|grep tnslsnr第一百一十二页,共一百五十八页。配置效劳器 识别可用宿主识别可用宿主 /etc/hosts -解决地址映射解决地址映射 识别可用效劳识别可用效劳 /etc/services -listener 1521 识别可用数据库识别可用数据库 /var/opt/oracle/oratab Oracle_SID:ORACLE_HOME:N/Y 启动启动Net 8 -lsnrctl第一百一十三页,共一百五十八页。配

54、置客户机 识别可用宿主识别可用宿主 /etc/hosts (or .)-解决地址映射解决地址映射 识别可用效劳识别可用效劳 /etc/services (or. )-listener 1521 NIC(网络接口卡网络接口卡)、OS、TCP/IP、NET8 运行运行NET8第一百一十四页,共一百五十八页。远程访问数据库 Sqlplus 用户名用户名/密码密码 效劳名连接串效劳名连接串 Sqlplus scott/tigerTX08第一百一十五页,共一百五十八页。调试-连接问题 可达?可达?telnet、ping 客户端客户端-远程主机远程主机 监听?监听? 效劳器效劳器-通过通过连自己连自己 客

55、户端客户端-tnsping 效劳名效劳名 次数次数第一百一十六页,共一百五十八页。平安管理 用户管理 创立用户create user 修改用户alter user 删除用户drop user第一百一十七页,共一百五十八页。用户与模式用户用户 USER1模式模式 USER1用户用户 USER2模式模式 USER2这些对象均是由用户这些对象均是由用户 USER1所创建的所创建的这些对象均是由用户这些对象均是由用户 USER2所创建的所创建的第一百一十八页,共一百五十八页。用户分类超级用户数据库管理员普通用户第一百一十九页,共一百五十八页。超级用户超级用户超级用户启动和关闭实例启动和关闭实例创建和修

56、改数据库创建和修改数据库修改日志操作模式修改日志操作模式其它数据库操作其它数据库操作internal第一百二十页,共一百五十八页。数据库管理员 数据库管理员数据库管理员DBA 是指具有是指具有DBA角色的用户,它们用于管理发生角色的用户,它们用于管理发生在数据库内的操作。如在数据库内的操作。如SYS、SYSTEM第一百二十一页,共一百五十八页。普通用户 普通用户是指根据特定需求使用命令普通用户是指根据特定需求使用命令 CREATE USER 所创立的用户。所创立的用户。第一百二十二页,共一百五十八页。数据库验证数据库验证数据库验证数据库数据库发出登录信息发出登录信息返回登录信息返回登录信息验证

57、用户验证用户及口令及口令CREATE USER aca IDENTIFIED BY asiainfo;CONNECT aca/asiainfo第一百二十三页,共一百五十八页。外部验证外外部部验验证证数数据据库库验验证证用用户户服服务务器器CREATE USER OPS$administrator IDENTIFIED EXTERNALLY;第一百二十四页,共一百五十八页。企业验证 企业验证是指由企业验证是指由Oracle Security Service (OSS)来验证数据库用户的方式。当使用这种方式来验证数据库用户的方式。当使用这种方式验证数据库用户时,由验证数据库用户时,由Oracle数

58、据库来管理数据库来管理用户某某,并且口令和用户鉴定如此由用户某某,并且口令和用户鉴定如此由OSS来完成。来完成。第一百二十五页,共一百五十八页。创立用户 创立用户ACA用户用户ACA模式模式ACA用户数据用户数据表空间表空间USER_DATA临时数据临时数据表空间表空间TMP_DATA第一百二十六页,共一百五十八页。创立用户CREATE USER username IDENTIFIED BY userpassword DEFAULT TABLESPACE tablespace1 TEMPORARY TABLESPACE tablespace2QUOTA n K ON tablespace1;

59、M UNLIMITED空间限额第一百二十七页,共一百五十八页。修改用户 修改用户username所使用的缺省表空间 修改用户的口令ALTER USER username TABLESPACE user_data;ALTER USER username IDENTIFIED BY userpasswd;第一百二十八页,共一百五十八页。删除用户 DROP USER username cascade第一百二十九页,共一百五十八页。特权管理 特权简介 系统特权的授予和收回 对象特权的授予和收回第一百三十页,共一百五十八页。系统特权 SY STE MC R E AT ETA B L EC R E AT

60、ESE SSIO N授授 予予用用 户户 A C A第一百三十一页,共一百五十八页。对象特权 用户用户ACASELECT ONAUTHSSELECT ONARTICLESELECT ONTYPE授授 予予用户用户GUEST第一百三十二页,共一百五十八页。特权管理 系统权限(system privilege ) 针对整个系统操作的权限 dba_sys_privs, 用户权限(object privilege) 针对具体object操作权限 dba_tab_privs;视图 dba_col_privs;第一百三十三页,共一百五十八页。系统特权的授予和收回 授予用户系统特权GRANT systemp

61、rivs TO username WITH ADMIN OPTION 收回系统特权REVOKE systemprivs FROM username ;第一百三十四页,共一百五十八页。对象特权的授予和收回 授予用户对象特权GRANT 对象特权对象特权 TO username WITH GRANT OPTION; 收回对象特权REVOKE 对象特权对象特权 FROM username ;第一百三十五页,共一百五十八页。授于用户连接Oracle数据库的权限Sgrant connect tousername with grant option;rolenameprivilege.第一百三十六页,共一百

62、五十八页。Object PrivilegeSELECT UPDATE INSERT ALTER DELETE EXECUTE INDEX REFERENCESTypes of Object PrivilegesTableView Sequence Procedure1包括存储过程、函数和包2该权限不能授予角色3授予快照对象权限种类表第一百三十七页,共一百五十八页。角色管理 角色简介 创立、修改、删除角色 授予和收回角色特权 授予和收回用户角色 禁止和激活角色第一百三十八页,共一百五十八页。角色简介总经理总经理人人财财物物 用户用户 角色角色 特权特权第一百三十九页,共一百五十八页。角色简介 角

63、色分类角色分类 角色特权角色特权 授予和收回用户角色授予和收回用户角色 角色口令角色口令 禁止和激活角色禁止和激活角色第一百四十页,共一百五十八页。角色 连接角色 connect连上Oracle,做最根本操作 资源角色 resource 具有程序开发最根本的权限 数据库管理员角色 dba数据库管理员所有权限第一百四十一页,共一百五十八页。角色 卸出数据库角色exp-full-database 可把数据库整个备份输出的权限 卸入数据库角色imp-full-database 可把数据库整个备份恢复输入的权限第一百四十二页,共一百五十八页。创立角色 创立角色 CONNECT system/secur

64、ity CREATE ROLE connect_role; CREATE ROLE insert_role IDENTIFIED BY insert_data;第一百四十三页,共一百五十八页。授予角色特权授予角色特权CONNECT system/securityGRANT CREATE SESSION TO connect_role;CONNECT aca/asiainfoGRANT insert ON dept TO insert_role;GRANT update ON emp TO update_role;第一百四十四页,共一百五十八页。授予用户角色授予用户角色 CONNECT syst

65、em/securityGRANT connect_role,update_role TO username;CONNECT username/passwdupdate username.emp set salary=salary+100 where salary2000;第一百四十五页,共一百五十八页。禁止角色禁止角色CONNECT username/passwdSET ROLE NONE;update aca.auths set salary=salary+100;第一百四十六页,共一百五十八页。激活角色激活角色SET ROLE update_role IDENTIFIED BY updat

66、e_data;update username.emp set salary=salary+100;第一百四十七页,共一百五十八页。设置用户的缺省角色设置用户的缺省角色CONNECT system/securityALTER USER username DEFAULT ROLE connect_role;第一百四十八页,共一百五十八页。修改和删除角色 修改角色 ALTER ROLE 删除角色 DROP ROLE第一百四十九页,共一百五十八页。完整性约束 主码完整性约束 非空完整性约束 唯一完整性约束 check完整性约束 引用完整性约束第一百五十页,共一百五十八页。完整性约束Create table emp1(empno number(4) not null check(empno between 1000 and 9999) unique, ename char(10), job char(9), mgr number(4) constraint emp1_self_key references emp1(empno), hiredate date, sal number(7,2),


文档来源:https://www.renrendoc.com/paper/212487023.html

文档标签:

下载地址