Oracle数据库系统实验上机内容指导.docx

上传人:b****4 文档编号:24630009 上传时间:2023-05-29 格式:DOCX 页数:112 大小:164.10KB
下载 相关 举报
Oracle数据库系统实验上机内容指导.docx_第1页
第1页 / 共112页
Oracle数据库系统实验上机内容指导.docx_第2页
第2页 / 共112页
Oracle数据库系统实验上机内容指导.docx_第3页
第3页 / 共112页
Oracle数据库系统实验上机内容指导.docx_第4页
第4页 / 共112页
Oracle数据库系统实验上机内容指导.docx_第5页
第5页 / 共112页
点击查看更多>>
下载资源
资源描述

Oracle数据库系统实验上机内容指导.docx

《Oracle数据库系统实验上机内容指导.docx》由会员分享,可在线阅读,更多相关《Oracle数据库系统实验上机内容指导.docx(112页珍藏版)》请在冰豆网上搜索。

Oracle数据库系统实验上机内容指导.docx

Oracle数据库系统实验上机内容指导

第一章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.Oracle8服务器

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

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

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

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

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

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

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

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

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

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

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

3.PersonalOracle

从1995年处开始,Oracle推出了在Dos和MicrosoftWindows环境下的个人计算机产品。

运行PersonalOracle需要如下的配置:

●386以上的中央处理单元(CPU),推荐486或奔腾。

●最小60MB磁盘空间。

●处理器速度不低于40MHZ,66MHZ以上更好。

●最少16MB的扩充内存。

●MicrosoftWindows95或者NT.

本书主要以PersonalOracle为主进行说明。

4.Oracle产品

5.SQL,SQL*Plus和PL/SQL

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

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

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

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

6.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)。

7.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缓冲区中删除所有行

DEL

删除当前行

INPUT

I

插入许多行

INPUTtext

Itext

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

LIST

L

显示SQL缓冲区的所有行

LISTn

Ln

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

LISTmn

Lmn

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

RUN

R

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

SAVEfilename

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

GETfilename

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

STARTfilename

@filename

运行以前保存的命令文件

EDfilename

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

EXIT

退出SQL*Plus

RUNFORMfilename

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

SPOOLfilename

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

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

SPO[OL]OFF|OUT

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

DESCRIBEtablename

DESCtablename

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

HELP

击活Oracle内部的帮助部件

HOSTcommand

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

CONNECTuserid/password

CONNuserid/password

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

PROMPTtext

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

三.上机内容

1.SQL*Plus的启动

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

1)SQLPLUS

读者将看到如下的信息:

SQL*Plus:

Version3.1.1ProductiononMonOct41993

Copyright(C)1992,OracleCorporation,California,USA.

Allrightsreserved.

EnterUsername:

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

SQL*Plus将提示:

EnterPassword:

输入你的密码并按回车。

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

SQL>

例如:

SQLPLUS

SQL*Plus:

Release9.2.0.1.0-Productionon星期二10月3010:

15:

042007

Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.

 

连接到:

Oracle9iEnterpriseEditionRelease9.2.0.1.0-Production

WiththePartitioning,OLAPandOracleDataMiningoptions

JServerRelease9.2.0.1.0-ProductionEnterUsername:

scott

EnterPassword:

tiger

SQL>

2)SQLPLUSUsername

再提示你输入密码。

例如:

SQLPLUSscott

EnterPassword:

tiger

SQL*Plus:

Version3.1.1ProductiononMonOct41993

Copyright(C)1992,OracleCorporation,California,USA.

Allrightsreserved.

SQL>

3)SQLPLUSusername/password

例如:

SQLPLUSscott/tiger

SQL*Plus:

Version3.1.1ProductiononMonOct41993

Copyright(C)1992,OracleCorporation,California,USA.

Allrightsreserved.

SQL>

4)退出SQL*Plus

SQL>EXIT

SQL*Plus显示Oracle版本之后显示操作系统提示符。

2.SQL命令

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

如:

SQL>SELECTEMPNO,ENAME,JOB,SAL

2FROMEMPWHERESAL<2500;

3.SQL*Plus命令

1)列出缓冲区的内容:

SQL>LIST

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

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>CHANE/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)

4.PL/SQL命令

SQL>Declare

1Begin

2SELECT*FROMEMP;

3EXCEPTION

4WHENNO_DATA_FOUNDTHEN

5RASIE_APPLICATION_ERROR(-12201,’Nodatafound’)

6End;

查询结果将显示出来。

四.上机作业

1.练习SQL命令:

SELECT*FROMEMP;。

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

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

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

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

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

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

8.清除缓冲区。

第二章数据表的创建

一.上机目的

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,…)

字段约束命令格式:

[CONSTRAINTconstraint_name]UNIQUE

例如:

CREATETABLEDEPT

(DEPTNONUMBER,DNAMEVARCHAR2(9),

LOCVARCHAR2(10),

CONSTRAINTUNQ_DEPT_LOCUNIQUE(DNAME,LOC));

UNQ_DEPT_LOC是一个表约束。

3)、主键约束(PrimaryKeyConstraint)

主键约束强制字段和字段集合的唯一性,并且用一个唯一索引来管理它。

每个表中只能用一个主键,这样可以通过主键来标识表中的每条记录。

NULL值不允许在主键字段出现。

表约束命令格式:

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

字段约束命令格式:

[CONSTRAINTconstraint_name]PRIMARYKEY

例如:

用字段约束定义DEPTNO为主键

CREATETABLEDEPT

(DEPTNONUMBER

(2)CONSTRAINTDEPT_PRIMPRIMARYKEY,

…);

4)、外键约束

外键提供表内或表间的完整性规则。

外键必须依赖于一个primary或uniquekey。

表约束命令格式:

,[CONSTRAINTconstraint_name]FOREIGNKEY(Column,Column,…)REFERENCEtable(column,column,…)

字段约束命令格式:

[CONSTRAINTconstraint_name]FOREIGNKEYtable(column)

例如:

CREATETABLEEMP

(…

CONSTRAINTFK_DEPTNOFOREIGNKEY(DEPTNO)REFERENCEDEPT(DEPTNO));

5)、Check约束

CHECK约束定义了每条记录必须满足的条件

语法:

[CONSTRAINTconstraint_name]CHECK(condition)

6.Alter命令

ALTERTABLE命令可用来修改数据表的定义。

命令格式:

ALTERTABLEtablename

[ADD或MODIFY或DROPoptions](column_spec[column_constraint])[ENABLEclause或DISABLEclause]

ADD关键字可以用来给已存在的数据表增加一个字段或约束。

如:

给EMP增加一个字段

ALTERTABLEEMP

ADD(SPOUSES_NAMECHAR(10));

Tablealtered。

MODIFY关键字可以用来修改已存在的数据表定义。

如:

把EMP中ENAME长度改为25个字符

ALTERTABLEEMP

MODIFY(ENAMCHAR(25));

Tablealtered。

DROP关键字可以用来删除已存在数据表的约束。

如:

把EMP中主键删除

ALTERTABLEEMP

DROPPRIMARYKEY;

Tablealtered。

7.Drop命令

用DROPTABLE命令删除Oracle数据表的定义。

命令格式:

DROPTABLEtable_name[CASCADECONSTRAINT]

例如:

DROPTABLEEMP;

CASCADECONSTRAINT选项说明了也把完整性约束一起删除。

注意:

●DROPTABLE也把数据表中的数据删除。

●数据表的V

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

当前位置:首页 > 解决方案 > 解决方案

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

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