ORACLE实验指导.docx

上传人:b****8 文档编号:10864621 上传时间:2023-02-23 格式:DOCX 页数:114 大小:147.14KB
下载 相关 举报
ORACLE实验指导.docx_第1页
第1页 / 共114页
ORACLE实验指导.docx_第2页
第2页 / 共114页
ORACLE实验指导.docx_第3页
第3页 / 共114页
ORACLE实验指导.docx_第4页
第4页 / 共114页
ORACLE实验指导.docx_第5页
第5页 / 共114页
点击查看更多>>
下载资源
资源描述

ORACLE实验指导.docx

《ORACLE实验指导.docx》由会员分享,可在线阅读,更多相关《ORACLE实验指导.docx(114页珍藏版)》请在冰豆网上搜索。

ORACLE实验指导.docx

ORACLE实验指导

Oracle实验指导

目录

第一章Oracle基本知识与SQL*PLUS环境3

一.上机目的3

二.预备知识3

三.上机内容6

四.上机作业9

第二章数据表的创建10

一.上机目的10

二.预备知识10

三.上机内容13

四.上机作业15

第三章数据插入、修改和删除16

一.上机目的16

二.预备知识16

三.上机内容18

四.上机作业19

第四章数据查询21

一.上机目的21

二.预备知识21

三.上机内容30

四.上机作业36

第五章视图、索引、序列和权限设置38

一.上机目的38

二.预备知识38

三.上机内容41

四.上机作业42

第六章PL/SQL43

一.上机目的43

二.预备知识43

三.上机内容54

四.上机作业57

第七章触发器和游标58

一.上机目的58

二.预备知识58

三.上机内容63

四.上机作业66

第一章Oracle基本知识与SQL*PLUS环境

一.上机目的

1.熟悉Oracle的基本知识。

2.熟悉Oracle的命令操作环境SQL*PLUS。

3.熟悉并掌握一些SQL*PLUS命令。

二.预备知识

1.Oracle数据库管理系统简介

1979年,硅谷的一个小公司推出了Oracle,这是第一个与数据访问语言SQL结合的关系数据库。

今天,Oracle公司已是世界上数据库管理系统及相关产品的最大供应商。

发布于1985年的Oracle第5版,是第一个真正的客户/服务器数据库系统。

Oracle8以及Oracle8i是Oracle公司的最新产品。

2.Oracle服务器

Oracle服务器是一个精致的信息管理环境。

它是一个大量数据的储藏所,并给用户提供对这些数据的快速访问。

Oracle服务器允许应用系统之间共享数据。

信息存放在一个地方并由许多应用系统来使用。

Oracle服务器可运行在Sun系列以及WindowsNT上。

Oracle服务器运行在很多不同的计算机上,支持下列配置:

●基于主机的配置用户直接连到存放数据库的同一计算机上。

●客户机/服务器结构用户通过网络从他们的个人计算机(客户机)上访问数据库,数据库驻留在一个分离的计算机(服务器)上。

●分布式处理用户访问存放在不止一台计算机上的数据库。

数据库分散在不止一台机器上,用户并不需要了解他们存放的数据的实际存放位置。

●Web计算能从基于Internet的应用程序访问数据。

3.SQL,SQL*Plus和PL/SQL

●SQL是一种能够访问关系数据库(包括Oracle数据库)的语言。

它能够用在每一个Oracle工具中。

●SQL*Plus是一个SQL和PL/SQL都能用的Oracle产品,并且也有自己的命令语言。

●PL/SQL是为了编写应用程序和操作数据的Oracle过程化语言,包含着SQL命令的子集,它适用于每个CDE产品。

4.Oracle数据库系统的体系结构

Oracle数据库系统是具有管理Oracle数据库功能的计算机软件系统。

每一个运行的Oracle数据库与一个Oracle实例(instance)相联系。

一个Oracle实例是存取和控制一数据库的软件机制。

每一次在数据库服务器上启动一数据库时,称为系统全局区(systemglobalarea)的一内存区(简称SGA)被分配,有一个或多个Oracle进程被起动。

该SGA和Oracle进程的结合称为一个Oracle数据库实例。

一个实例的SGA和进程为管理数据库数据、为该数据库一个或多个用户服务而工作。

在Oracle系统中,首先是实例启动,然后由实例装配(mount)一个数据库。

1)进程结构

进程(process)是操作系统中的一种机制,它可执行一系列的操作步骤。

在有些操作系统中使用作业(JOB)或任务(TASK)的术语。

一个进程通常有它自己的专用存储区。

Oracle进程的体系结构设计使性能最大。

Oracle实例有两种类:

单进程实例和多进程实例。

单进程Oracle(又称单用户Oracle)是一个数据库系统,一个进程执行全部Oracle代码。

由于Oracle部分和客户应用程序不能分别以进程执行,所以Oracle的代码和用户数据库应用是单个进程执行,其结构如图1-2所示。

在单进程环境下的Oracle实例,仅允许一个用户存取。

例如在MS-DOS上运行Oracle。

多进程Oracle实例(又称多用户Oracle)使用多个进程来执行Oracle的不同部分,对于每一个连接的用户都有一个进程,如图1-3所示。

在多进程系统中,进程分为两类:

用户进程和Oracle进程。

当一用户运行一应用程序,如Pro*c程序或一个Oracle工具(如SQL*Plus),为用户运行的应用建立一个用户进程。

Oracle进程又分为两类:

服务器进程(serverprocess)和后台进程(backgroundprocess),服务器进程用于处理连接到该实例的用户进程的请求。

当应用和Oracle是在同一台机器上运行,而不再通过网络,一般将用户进程和它相应的服务器进程组合成单个进程,可降低系统开销。

然而,当应用和Oracle运行在不同的机器上时,用户进程经一个分离服务器进程Oracle通信。

它执行下列任务:

●对应用所发出的SQL语句进行语法分析和执行。

●从磁盘(数据文件中)读入必要的数据块到SGA的共享数据库缓冲区(该块不在缓冲区时)。

●将结果返回给应用程序处理。

系统为了使性能最好和协调多个用户,在多进程系统中使用一些附加进程,称为后台进程。

在许多操作系统中,后台进程是在实例启动时自动地建立。

一个Oracle实例可以有许多后台进程,但它们不是一直存在。

后台进程的名字为:

●DBWR数据库写入程序

●LGWR日志写入程序

●CKPT检查点

●SMON系统监控

●PMON进程监控

●ARCH归档

●RECO恢复

●LCKn封锁

●Dnnn调度进程

●Snnn服务器

2)内存结构

Oracle在内存存储下列信息:

●执行的程序代码。

●连接的会话信息(包括当前不活动的)。

●程序执行期间所需要数据(如查询的当前状态)。

●Oracle进程间通信和共享的信息(如封锁信息)。

●存储在外存储上的缓冲信息。

Oracle具有下列基本的内存结构:

●软件代码区

●系统全局区(SGA),包括数据库缓冲存储区、日志缓冲区和共享池

●程序全局区(PGA),包括栈区和数据区。

●排序区(sortarea)。

5.SQL*Plus命令

SQL*Plus有许多命令,表1-1只是列举了一部分常用命令。

表1-1常用SQL*Plus命令

SQL*Plus命令

缩写

意义

APPENDtext

Atext

把字符串增加到当前行的末尾

CHANGE/old/new/

C/old/new/

把当前行的旧字符串替换成新字符串

CHANGE/text/

C/text/

把当前行中字符串删除

CLEARBUFFER

CLBUFF

从SQL缓冲区中删除所有行

CONNECTuserid/password

CONNuserid/password

在当前的登录下,击活其它的Oracle用户

DEL

删除当前行

DESCRIBEtablename

DESCtablename

显示任何数据库表的数据结构

EDfilename

用默认的编辑器编辑保存的文件内容

EXIT

退出SQL*Plus

GETfilename

把以filename为名字的文件内容调入SQL缓冲区中

INPUT

I

插入许多行

INPUTtext

Itext

插入一个包含text字符串的行

HELP

击活Oracle内部的帮助部件

HOSTcommand

在SQL*Plus中击活一个操作系统命令

LIST

L

显示SQL缓冲区的所有行

LISTn

Ln

显示SQL缓冲区中的一行到n行

LISTmn

Lmn

SQL缓冲区中的从第m行显示到第n行

PROMPTtext

当运行一个命令文件时,显示文本

RUN

R

显示并运行在缓冲区中的当前SQL命令

RUNFORMfilename

从SQL*Plus中运行一个OracleForms应用程序

SAVEfilename

把SQL缓冲区中的内容保存到以filename为名字的文件中,默认路径为orawin\bin

SPOOLfilename

写所有的后面的命令或者输出到一个已经命名的文件中。

假脱机输入输出文件的后缀为.LIS

SPO[OL]OFF|OUT

OFF关闭假脱机输入输出文件;OUT改变假脱机输入输出,送文件到打印机上

STARTfilename

@filename

运行以前保存的命令文件

三.上机内容

进入ORACLE中SQL*PLUS环境

单击开始→程序→Oracle→OraHhome9i→ApplicationDevelopment→SQL_PLUS,则弹出如下注册窗口,输入合法的用户名和口令,并单击确定按钮,进入SQL*PLUS

1.SQL*Plus的启动

当登录到操作系统后,有三种方法启动SQL*Plus。

1)SQLPLUS

(或SQLPLUSW,下同)

将看到如下的信息:

SQL*Plus:

Release9.0.1.0.1-Productionon星期二9月1314:

27:

512011

(c)Copyright2001OracleCorporation.Allrightsreserved.

请输入用户名:

输入你的用户名字并按回车。

SQL*Plus将提示:

请输入口令:

输入你的密码并按回车。

那么,将看到SQL*Plus的提示符:

SQL>

例如:

SQLPLUS

SQL*Plus:

Release9.0.1.0.1-Productionon星期二9月1314:

27:

512011

(c)Copyright2001OracleCorporation.Allrightsreserved.

EnterUsername:

scott

EnterPassword:

tiger

SQL>

2)SQLPLUSUsername

再提示你输入密码。

例如:

SQLPLUSscott

EnterPassword:

tiger

SQL*Plus:

Release9.0.1.0.1-Productionon星期二9月1314:

27:

512011

(c)Copyright2001OracleCorporation.Allrightsreserved.

SQL>

3)SQLPLUSusername/password

例如:

SQLPLUSscott/tiger

SQL*Plus:

Release9.0.1.0.1-Productionon星期二9月1314:

27:

512011

(c)Copyright2001OracleCorporation.Allrightsreserved.

SQL>

4)断开与数据库的连接

SQL>DISCONNECT

5)退出SQL*Plus

SQL>EXIT

或:

SQL>Quit

6)创建基本表EMP,表结构如下所示:

cratetableEMP(

EMPNO,NUMBER(4)NOTNULLPRIMARYKEY,

ENAMEVARCHAR2(10),

JOBVARCHAR2(9),

MGRNUMBER(4),

HIREDATEDATE,

SALNUMBER(7,2),

COMMNUMBER(7,2),

DEPTNONUMBER

(2)NOTNULL);

7)向EMP表中插入数据:

insertintoEMPvalues(7369,'SMITH','CLERK',7902,to_date('1980121712','yyyymmdd'),800,,20);

insertintoEMPvalues(7499,'ALLEN','SALESMAN',7698,to_date('1981022012','yyyymmdd'),1600,300,30);

insertintoEMPvalues(7521,'WARD','SALESMAN',7698,to_date('1981022212','yyyymmdd'),1250,500,30);

insertintoEMPvalues(7566,'JONES','MANAGER',7839,to_date('1981040212','yyyymmdd'),2975,,20);

insertintoEMPvalues(7654,'MARTIN','SALESMAN',7698,to_date('1981092812','yyyymmdd'),1250,1400,30);

insertintoEMPvalues(7698,'BLAKE','MANAGER',7839,to_date('1981050112','yyyymmdd'),2850,,30);

insertintoEMPvalues(7782,'CLARK','MANAGER',7839,to_date('1981060912','yyyymmdd'),2450,,10);

insertintoEMPvalues(7788,'SCOTT','ANALYST',7566,to_date('1987041912','yyyymmdd'),3000,,20);

insertintoEMPvalues(7839,'KING','PRESIDENT',,to_date('1981111712','yyyymmdd'),5000,,10);

insertintoEMPvalues(7844,'TURNER','SALESMAN',7698,to_date('1981090812','yyyymmdd'),1500,0,30);

insertintoEMPvalues(7876,'ADAMS','CLERK',7788,to_date('1987052312','yyyymmdd'),1100,,20);

insertintoEMPvalues(7900,'JAMES','CLERK',7698,to_date('1981120312','yyyymmdd'),950,,30);

insertintoEMPvalues(7902,'FORD','ANALYST',7566,to_date('1981120312','yyyymmdd'),3000,,20);

insertintoEMPvalues(7934,'MILLER','CLERK',7782,to_date('1982012312','yyyymmdd'),1300,,10);

2.SQL命令

SQL命令包括数据定义语言(如Create、Alter等)和数据操作语言(SelectInsertUpdateDelete等),这些都可在SQL*Plus中使用。

如:

SQL>SELECTEMPNO,ENAME,JOB,SAL

2FROMEMPWHERESAL<2500;

3.SQL*Plus命令

1)列出缓冲区的内容:

SQL>LIST

SQL*Plus显示当前缓冲区中的SQL命令(注意:

不缓存SQLPlus命令):

1SELECTEMPNO,ENAME,JOB,SAL

2FROMEMPWHERESAL<2500;

2)编辑当前行

如果上面的例子错误的输入为:

SQL>SELECTEPNO,ENAME,JOB,SAL

2FROMEMPWHERESAL<2500;

在屏幕上显示:

SELECTEPNO,ENAME,JOB,SAL

*

ERRORatline1:

ORA-0904:

invalidcolumnname

分析错误可以发现EMPNO错为EPNO。

则用CHANGE命令修改编辑当前行。

如:

SQL>CHANGE/EPNO/EMPNO

修改的行在屏幕上显示:

1*SELECTEMPNO,ENAME,JOB,SAL

再用RUN命令运行当前命令。

SQL>RUN(或/)

SQL*PLUS列出其命令然后运行它。

1SELECTEMPNO,ENAME,JOB,SAL

2FROMEMPWHERESAL<2500;

3)增加一行

在当前行之后插入一新行,使用INPUT命令。

例如对上面例子增加第3行到该SQL命令中。

形式如下:

SQL>INPUT

3

接着可进入新行,然后按ENTER键,SQL*PLUS再次提示新行:

3ORDERBYSAL

4

按ENTER键,表示不进入任何行,然后用RUN检验和重新运行查询。

4)在一行上添加一原文

用APPEND命令,将一原文加到缓冲区中当前行的末端:

SQL>LIST

3*ORDERBYSAL

SQL>APPENDDESC

3*ORDERBYSALDESC

使用RUN检验和重新运行查询。

5)删除一行

●用LIST命令列出要删除的行。

●用DEL命令删除。

SQL>LIST

3*ORDERBYSALDESC

SQL>DEL

6)用系统编辑程序编辑命令

在SQL*PLUS中运行操作系统缺省的文本编辑程序(EDIT),命令形式为:

SQL>EDIT

EDIT将缓冲区中的内容装入系统缺省的文本编辑器,然后用文本编辑器的命令编辑文本。

完成后保存编辑的文本,然后退出。

该文本保存到当前的缓冲区。

7)保存SAVE命令

SQL>SAVE文件名

例如:

SQL>LIST

1SELECTEMPNO,ENAME,JOB,SAL

2FROMEMPWHERESAL<2500;

然后用SQVE保存到EMPINFO文件中:

SQL>SAVEempinfo

Createdfileempinfo

8)运行命令文件

可用命令START文件名或者@文件名的命令格式。

如上例:

SQL>STARTEMPINFO

或SQL>@EMPINFO

9)清缓冲区

SQL>CLEARBUFFER

10)DESCRIBE列出表的结构

如:

SQL>DESCEMP

Name

Null?

Type

EMPNO

NOTNULL

NUMBER(4)

ENAME

VARCHAR2(10)

JOB

VARCHAR2(10)

MGR

NUMBER(4)

HIREDATE

DATE

SAL

NUMBER(7,2)

COMM

NUMBER(7,2)

DEPTNO

NOTNULL

NUMBER

(2)

四.上机作业

1.用SQLPlus连接数据库。

2.用Show命令显示当前用户。

3.练习SQL命令:

SELECT*FROMEMP;。

4.用LIST显示缓冲区内容。

5.用CHANGE命令修改当前行。

6.用APPEND增加一部分命令。

7.用EDIT编辑缓冲区内容。

8.用SAVE命令保存缓冲区内容到EMPFILE中。

9.用START命令运行EMPFILE文件。

10.清除缓冲区。

第二章数据表的创建

一.上机目的

1.了解并掌握Oracle中表结构的定义。

2.了解并掌握Oracle中的用Create命令定义表的方法,以及表的完整性定义。

3.了解并掌握Oracle中的用Alter命令和Drop命令对表的修改和删除。

二.预备知识

DDL是SQL命令的子集,用来创建、修改、删除Oracle数据库结构。

这些命令能立即影响数据库和数据字典字段信息。

1.表名命名规则

所用的表名必须满足下面的条件:

a)名字必须以A-Z或a-z的字母开始;

b)名字可以包括字母、数字和特殊字母(_)。

字符$和#也是合法的,但是这种用法不提倡;

c)名字大小写是一样的;例如EMP、emp和eMp是表示同一个表;

d)名字最长不超过30个字符;

e)表名不能和其它的对象重名;

f)表名不能是SQL保留字。

表2-1表名命名举例

名字

合法

EMP85

YES

85EMP

NO(开始不是字母)

FIXED_ASSETS

YES

FIXEDASSETS

NO(包含空格)

UPDATE

NO(SQL保留字)

2.字段类型

表2-2字段类型

数据类型

描述

VARCHAR2(w)

变长字符,长度为w。

最长为2000个字符。

CHAR(w)

定长字符,长度为w。

默认为1个字符;最长为255个字符

NUMBER

38位有效数字的浮点数

NUMBER(w)

W位精确度的整数,范围从1至38

NUMBER(w,s)

W是精度,或总的数字位,范围从1至38。

S是比例,或是小数点右边的数字位。

比例的范围从-84至127

DATE

日期值,范围从公元前14712年1月到公元314712年12月

LONG

变长字符串,其最大长度为2G(或231-1个字节)

RAW和LONGRAW

面向字节数据,可存储字符串、浮点数,二进制数据等

3.Create命令

1)、CREATETABLEtable_name(column_nametype(size),column_nametype(size),…);

例如:

CREATETABLEDEPT

(DEPTNONUMBER

(2),

DNAMEVARCHAR2(12),

LOCVARCHAR2(12));

2)、CREATETABLEtable_name[(column_name,…)]ASSELECTstatement;

例如:

CREATETABLEDEPTNO10(NAME,LOCATION)

ASSELECTDNAME,LOCFROMDEPT

WHEREDEPTNO=10;

4.完整性约束

Oracle允许用户为表和列定义完整性约束来增强一定的规则。

可分为:

表约束和字段约束

5.约束类型

1)、NOTNULL约束

NOTNULL约束保证字段值不能为NULL。

没有NOTNULL约束的字段,值可以为NULL。

2)、UNIQUE约束

指定一个字段或者字段的集合为唯一键。

在表中没有两行具有相同的值。

如果唯一键是基于单条记录的,NULL是允许的。

表约束命令格式:

,[CONSTRAINTconstraint_name]UNIQUE(Column,Column,…)

字段约束命令格式:

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

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1