oracle数据库应用与开发总结

更新时间:2024-07-11 18:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Oracle数据库开发与应用总结

第一章关系型数据库及oracle 10g介绍

1.Oracle数据库的发展(了解): 1977年6月,(Software Development Laboratories,SDL)的计算机公司(Oracle公司的前身)开发出第一款Oracle。

1979年,SDL更名为关系软件有限公司(Relational Software,Inc.,RSI) Oracle产品(第二版) 。

1983年3月,RSI发布了Oracle第三版,并RSI公司再次更名为Oracle公司 。 1984年10月,Oracle发布了第四版产品。 1999年2月,Oracle正式发布了Oracle 8i 。 2001年6月,正式发布了Oracle 9i 。

2004年2月,Oracle公司正式发布了Oracle10g(标准版,企业版,个人版)。

2.Oracle数据库的系统结构:Oracle分布式数据库系统结构;Oracle客户/服务器系统结构;Oracle浏览器/服务器系统结构 。 3.检验安装是否成功(4种) :

查看已安装产品;查看程序组 ;查看服务;查看注册表;尝试运行oracle工具。 4.Oracle数据库的默认用户 :

(1)SYS:该用户被默认创建并授予DBA角色,它是Oracle数据库中权限最大的管理员账号。

(2)SYSTEM:被默认创建并授予DBA角色权限仅次于SYS。该用户创建和管理数据库中可显示管理信息的表或视图,以及被Oracle数据库应用和工具使用的各种数据库对象。 (3)SYSMAN:该用户是企业管理的超级管理员账号,该账号能够创建和修改其他管理员账号,同时也能管理数据库实例。

(4)DBSNMP:是Oracle数据库中用于智能代理(Intelligent Agent)的用户,用来监控和管理数据库相关性能。如果停止该用户,则无法提取相关的数据库信息。 5.熟练掌握SQL*plus的使用:例1.2 以system用户登录数据库。 SQLPLUS

SQLPLUS system

SQLPLUS system/abcdef SQLPLUS system/abcdef@orcl 例1.3 以sys用户登录数据库。 SQLPLUS sys/abcdef AS SYSDBA

SQLPLUS sys/abcdef@orcl AS SYSOPER

例1.4 不使用已定义的主机字符串,直接指定要连接的主机名、端口号和数据库实例。 SQLPLUS system/abcdef@localhost:1521/orcl 6.STARTUP命令启动数据库:

STARTUP [NOMOUNT|MOUNT|OPEN][pfile=<初始化参数文件名及路径>] pfile:指出创建Oracle实例需要的初始化参数文件及路径,该参数可省略。 NOMOUNT:表示只启动一个Oracle实例。

MOUNT:启动一个Oracle实例并打开控制文件。

OPEN:启动一个Oracle实例,并依次打开控制文件、数据文件和重作日志文件。 例:在命令行中输入:start nomount; 7.2.SHUTDOWN命令关闭数据库:

SHUTDOWN [NORMAL|IMMEDIATE|TRANSACTIONAL|ABORT] 其中各参数的意义如下:

NORMAL:这是数据库关闭命令的缺省选项。

IMMEDIATE:这是使用频率最高的关闭数据库的方式。当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。

第二章 oracle数据库的体系结构

1.物理存储结构:

(1)数据文件:数据文件是Oracle数据库用来存储各种数据的地方,如表中的记录、索引数据、系统数据和临时数据等。

一个数据库有一个或多个数据文件,但一个数据文件只能属于一个数据库。

数据文件中存储了各种系统和用户的数据,但它和数据库中的表没有一对一的关系。 数据文件的扩展名是.dbf。 可以通过以下方式查看:

静态数据字典视图DBA_DATA_FILES和DBA_TEMP_FILES 动态数据字典视图v$datafile和v$tempfile

(2)日志文件 :日志文件记录了用户对数据库的修改信息(如增加、删除、修改),名字通常为REDO*.LOG格式。

日志文件也叫重做日志文件或重演日志文件(Redo Log Files)。 ★在Oracle中,数据库有两种工作模式: ?归档日志模式(archivelog): 适用于系统投入使用后

当日志组写满后,将日志信息保存到归档日志文件中,然后再循环使用。 ?非归档日志模式(noarchivelog): 适用于开发环境和测试环境中

日志组写满后不会归档到归档日志文件中,直接被新的日志信息覆盖。

(3) 控制文件:是Oracle数据库的物理文件之一,是一个很小的二进制文件,它记录了: 数据库的名称;表空间等信息

数据文件和联机日志文件的名称及位置

当前的日志序列号(Log Sequence Number)

(4) 参数文件:参数文件分为:文本参数文件(pfile);服务器参数文件(spfile) ★数据库启动时,各个物理文件使用的顺序:

?首先从初始化参数文件中获得控制文件的名称及位置,然后打开控制文件。 ?再从控制文件中读取数据文件和联机日志文件的信息及其他相关信息。 ?最后打开数据库 。 2.逻辑存储结构 :

(1)表空间 :表空间(tablespace)是Oracle数据库中最大的逻辑存储结构 。

★数据库中的一个表空间至少包含一个或多个数据文件,而一个数据文件只能属于一个表空间。

?一个表空间的大小就等于它包含的所有数据文件大小之和。 (2) 段 :一个表空间可以被划分为若干个段(segment),一个段又可以被划分为若干个盘区。 段(segment)是以盘区为单位获得磁盘空间的一个段内的盘区在磁盘上不一定是连续的。 段可以分为以下几种类型: 数据段 ;索引段 ;临时段 ;回滚段 ;LOB段。

(3)盘区:盘区(extent)是逻辑存储结构中的一个重要概念,因为它是Oracle最小的磁盘空间分配单元。

(4) 数据块:数据块是Oracle最小的逻辑存储单元,是最基本的数据存取单位。 数据块中可以存储表(table)、索引(index)或簇表(clustered data)。

3.数据库实例结构:Oracle实例是由内存空间(系统全局区)和Oracle 进程两部分组成。 一个完整的Oracle数据库包括两个部分:数据库和数据库实例。

(1)进程结构:是操作系统的基本执行单元,它是具有独立数据处理功能的正在执行的程序,是一系列操作步的集合,有时也被称为作业(job)或任务(task)。 ▲Oracle系统的进程包括三种类型:

1)用户进程:用户进程负责与Oracle服务器建立连接和会话并向服务器发出数据处理请求,得到处理结果后再输出给用户。

2)服务进程:服务进程负责在用户进程和Oracle实例之间调度请求和响应 ★数据库通常有两种工作模式:

?专用服务器模式:是用户创建数据库时的默认方式,也是多数数据库管理员运行数据库的方式,它为用户进程和服务进程之间提供了一种一对一的映射关系。

?共享服务器模式:当数据库启动时首先创建几个共享服务进程,这些服务进程可以为多个用户进程提供服务,他们是一对多的关系。 3)后台进程:

●常见的后台进程包括:数据写进程:日志写进程;检查点进程 ;系统监控进程 ;进程监控进程; 归档进程 ;恢复进程 ;调度进程 。 (2)内存结构: ?系统全局区(System Global Area,SGA):数据缓存区;重做日志缓冲区;共享池;Java 池(Java pool);大型池;(理解组成)

?程序全局区(Program Global Areas,PGA):私有 SQL 区 ;游标及 SQL 区 ;会话内存 4 Oracle网络配置 :服务器端:listener.ora文件

客户端:tnsnames.ora文件和sqlnet.ora

第三章 用户、方案的创建与管理

1.方案:方案是一系列逻辑数据结构或对象的集合,可以理解为命名空间或包。

2.用户与方案的关系:一个方案只能够被一个数据库用户拥有,并且方案的名称与这个用户的名称相同,当创建新用户时,系统自动创建该用户的方案。 3用户:Oracle用户,通俗的讲就是访问Oracle数据库的“人”。 每个用户都有一个口令和相应的权限

4.方案对象:方案对象是指属于某个用户中的数据库对象(表、索引、索引表、簇、触发器、PL/SQL包、序列、同义词、视图和存储函数与存储过程、Java类与其他Java资源)。

5.非方案对象:不属于任何方案的数据库对象,而属于整个数据库(用户、角色、概要文件) 6.使用SQL命令创建新用户:给用户分配口令,加锁,解锁,授权,修改密码,配额,密码(是否)过期

例3.1 创建新用户zhangsan,密码为abcdef,命令如下。 CREATE USER zhangsan IDENTIFIED BY abcdef; 例3.2 创建新用户lisi,密码为abcdef,表空间为users,并且在users表空间上可以使用10M的磁盘空间。

CREATE USER lisi IDENTIFIED BY abcdef

DEFAULT TABLESPACE users QUOTA 10M ON users;

例3.3 创建新用户allen,密码为abcdef,并且设置密码已过期,用户的状态为加锁。 CREATE USER allen IDENTIFIED BY abcdef PASSWORD expire ACCOUNT lock;

7.为新用户授予和数据库建立会话的系统权限: GRANT CREATE SESSION TO user_name; 为新用户授权和数据库建立连接的角色:GRANT CONNECT TO user_name;

第四章 表的创建于管理

创建表(简单的数据表)熟悉掌握三种基本数据类型。 1.字符:CHAR(n):用于存储长度为n的定长字符串,最大长度为2000字节,未指定长度时默认为1。 VARCHAR2(n):用于存储长度为n的变长字符串,最大长度为4000字节,该类型没有默认长度,使用时必须指定。 2.数值:NUMBER(p,s):其中p是精度,表示总的有效数字的个数;s是小数位数。 NUMBER(p):精度为p的整数。

NUMBER:如果没有指明精度和小数位数,则表示精度为38的浮点数。

3.日期:DATE:用于存储日期和时间格式的数据。可以使用函数SYSDATE获得当前的日期和时间。通常为DD-MON-YY格式表示。

4.使用SQL命令创建表:例4.1 在当前方案中创建一个名为student的表,包括学号(studentID)、姓名(name)、性别(sex)、出生日期(birthday)四个字段。

CREATE TABLE student(studentID CHAR(6),name VARCHAR2(8),sex CHAR(2),birthday DATE) TABLESPACE users; 5.基于已有的表创建新表 :

例4.2 将scott方案下的emp表复制到当前方案中的emp_new表。 CREATE TABLE emp_new AS SELECT * FROM scott.emp;

例4.3 在当前方案中创建新的雇员表,包括雇员编号、姓名、工作三个字段,内容来源于scott方案中的emp表的empno、ename、job三个字段。

CREATE TABLE 雇员(编号,姓名,工作) AS SELECT empno,ename,job FROM scott.emp; 6.使用DESCRIBE命令查看表结构:显示student表的表结构:DESC student; 7.向表中插入、修改和删除数据 (1)插入多行数据:

(2)例4.8 创建employee1表,包含三个字段empidID、empname和empjob。将例4.3雇员表中的所有雇员信息插入到employee1表中。 CREATE TABLE employee1

(empID NUMBER(4),empname VARCHAR2(10),empjob CHAR(9)); INSERT INTO employee1 SELECT * FROM 雇员;

(2) 修改数据 :例4.9 将scott方案下的emp表中编号为7369的雇员的工作修改为SALESMAN。

UPDATE scott.emp SET job='SALESMAN' WHERE empno=7369;

例4.11 将scott方案下的emp表中工作为SALESMAN的雇员工资都增加5%。 UPDATE scott.emp SET sal=sal+(sal*0.05) WHERE job='SALESMAN';

(3) 删除数据:DELETE命令是逻辑删除,只是将要删除的行加上删除标记,被删除后可以使用ROLLBACK命令回滚,删除操作时间较长;TRUNCATE TABLE命令是物理删除,将表中的数据永久删除,不能回滚,删除操作快。

●DELETE命令包含WHERE子句,可以删除表中的部分行;TRUNCATE TABLE命令只能删除表中的所有行。例:TRUNCATE TABLE 雇员; 8.修改表:

例4.14 向student表中添加所在系sdept字段。

ALTER TABLE student ADD sdept VARCHAR2(10);

例4.15 向employee表中添加性别sex,年龄age,工资salary三个字段。 ALTER TABLE employee ADD(sex CHAR(2),age INT,salary NUMBER(5,2)); 例4.17 删除employee表中的年龄和工资字段。 ALTER TABLE employee DROP (age,salary);

例4.18 修改student表中所在系sdept字段的长度改为30。 ALTER TABLE student MODIFY sdept VARCHAR2(30);

例4.19 修改student表中所在系sdept字段的字段名为new_sdept。 ALTER TABLE student RENAME COLUMN sdept TO new_sdept; 例4.21 将new_student表删除。 DROP TABLE new_student;

9.定义数据完整性 :数据完整性是指数据的正确性、一致性和安全性

主要包括:

主键约束(PRIMARY KEY):定义为主键的一列或多列的组合值在任意两行上都不能相同,即不能有重复值,并且任一个主属性都不能为空。 一个表中只能定义一个主键约束 例4.22 在当前方案中创建一个名为student的表,包括学号(studentID)、姓名(name)、 性别(sex)、出生日期(birthday)四个字段。其中学号(studentID)为主键。 CREATE TABLE student

( studentID CHAR(6) PRIMARY KEY,name VARCHAR2(8), sex CHAR(2),birthday DATE); 例4.23 在当前方案中创建一个名为score的表,包括学号(studentID)、课程号(courseID)、分数(grade)三个字段。其中学号(studentID)与课程号(courseID)的组合为主键。

FORCE:表示不管视图引用的表是否存在,都要强制创建该视图

WITH CHECK OPTION:表示对视图进行插入或修改时,新数据必须满足where字句后面的条件

WITH READ ONLY:表示视图是只读的。 例9.10 选择FORCE选项,强制创建视图。

CREATE OR REPLACE FORCE VIEW view3 AS SELECT * FROM table1;

例9.9 利用scott.emp和scott.dept两张表的连接查询创建新视图,并且为视图的字段重新命名。

CREATE OR REPLACE VIEW view2(雇员姓名, 所在部门) AS SELECT ename, dname FROM scott.emp e INNER JOIN scott.dept d ON e.deptno=d.deptno; 使用该视图浏览数据: SELECT * FROM view2;

第十章 序列和同义词的创建

熟练掌握和应用序列

1.创建序列:需要具有CREATE SEQUENCE或CREATE ANY SEQUENCE系统权限。 例10.1 创建一个名为emp_no的序列,从1001开始,一次递增1,没有最大值,并且使用CACHE子句为序列在缓存中预先分配10个序列值,以提高获取序列值的速度。 CREATE SEQUENCE emp_no START WITH 1001 INCREMENT BY 1 NOMAXVALUE CACHE 10 NOCYCLE;

2.应用序列:可以使用以下命令访问序列的值: NEXTVAL:序列生成的下一个值 CURRVAL:序列的当前值

3.管理序列 :ALTER SEQUENCE 命令

第十一章 触发器的创建与应用

掌握触发器概念,熟练掌握触发器类型 应用时只需掌握行级触发器

1.触发器:是一种特殊的存储过程,它在执行方式上不同于一般的存储过程。触发器是通过事件触发后由系统自动调用的。 2.触发器类型:

(1)按照触发的时间分:

?BEFORE触发器,指事前触发器 --在触发语句执行前触发器被触发 ?AFTER触发器,指事后触发器 --在触发语句执行以后触发器被触发 ?INSTEAD OF触发器,指替代触发器 --触发语句被触发器操作替代 (2)按照触发的事件分:

?DML触发器,对表或视图执行DML操作时触发的触发器 行级触发器 语句级触发器 ?DDL触发器,在数据库中执行DDL操作时触发的触发器 数据库级、用户级DDL触发器

?用户事件触发器 系统事件触发器

3.创建触发器:行级触发器 创建触发器时若使用了FOR EACH ROW子句,则该触发器称为行级触发器

4.例11.3 为scott.emp表创建一个带有触发条件的行级触发器。当用户向emp表中插入新记录时,如果新插入的员工工资是空值,那么触发器将该工资改为0。 5.CREATE OR REPLACE TRIGGER insert_emp 6.BEFORE INSERT ON scott.emp 7.FOR EACH ROW 8.WHEN(new.sal is null) 9.BEGIN

10.:new.sal:=0; 11.END;

第十二章 事务处理与并发控制

1.事务管理命令

commit是事务提交命令,表明该事务对数据库所做的修改操作将永久记录到数据库中,不能被回滚。

ROLLBACK是事务回滚命令,表明撤销未提交的事务所做的各种修改操作。 SET TRANSACTION命令设置当前事务的属性。

如设置事务的隔离级别、设置事务回滚时用的存储空间以及为事务命名等操作。

使用该命令时需要注意的事项:

该语句必须是当前事务中的第一条语句 。

命令设置的事务属性只对当前事务生效,当该事务结束后,设置的属性也将失效。

第十三章 数据库安全性管理

1系统权限:系统权限是指对整个数据库进行操作时需要获得的权力 2.系统权限的授权

GRANT system_privilege [,system_privilege] TO user_name [,user_name] [WITH ADMIN OPTION];

其中,WITH ADMIN OPTION 表示获得该系统权限的用户同时获得了对该系统权限的管理权(如授权和取消) 3系统权限的回收:

以system用户连接数据库后,回收zhangsan和lisi的CREATE SESSION系统权限。

CONNECT system/abcdef; REVOKE CREATE SESSION FROM zhangsan,lisi;

4.系预定义角色:熟练掌握概念 (1)DBA数据库管理员角色

(2)RESOURCE数据库资源角色 (3)CONNECT数据库连接角色

一般情况下,普通用户应该授予RESOURCE和CONNECT角色

第十四章 数据库的备份与恢复

1.EXP导出数据:交互式执行EXP命令; 预先指定参数执行EXP命令

2. IMP导入数据:用户可以使用IMP命令将EXP导出的数据再导入到数据库中

本文来源:https://www.bwwdw.com/article/z4o.html

Top