1.Oracle数据库基础 联系客服

发布时间 : 星期二 文章1.Oracle数据库基础更新完毕开始阅读e41275d976eeaeaad1f330fc

25

§1.2.2 数据字典概念

数据自动存放数据库中所有对象(如表,索引,视图等)所需的信息。Oracle 8i 的数据字典是存放数据库系统信息的一组表,从数据字典中的信息可以确认数据库中数据对象的基本信息及存放位置。

§1.3 SQL、SQL*Plus及 PL/SQL

下面用简单的语言解释Oracle的常用产品所包含的SQL*PLUS和PL/SQL的关系。

§1.3.1 SQL和SQL*PLUS的差别

SQL是标准结构查询语言,而SQL*PLUS实际是包括标准的SQL和Oracle公司的一些命令组成的产品,因而Oracle公司将其取名为SQL*PLUS。下面是它们的解释。

1. SQL(Structured Query Language)

SQL有许多关键字,以下语句是常用于开头的语句: Alter Insert Audit Lock Commit Noaudit Comment Rename Create Revoke Delete Select Drop Update Grant Validate

注:

1.Oracle的SQL缓冲区一次只能存放一条SQL命令;

2.Validate (使生效) 在 oracle 中跟 Enable 一起用,但可以省去 Validate,所以许多资料都不介绍Validate 的用法。其语法如:

Enable{[Validate][Novalidate]} { [UNIQUE][PRIMARY KEY]... } ...

2. SQL*PLUS

除SQL外,SQL*PLUS还包括称为SQL*PLUS命令的附加命令,这些命令主要用于形成复杂报表,编辑SQL命令,提供帮助信息,维护系统等。SQL*PLUS包括的命令如下:

@ Connect Host Set # Copy

26

Input Show $ Define List Spool / Del Newpage Sqlplus Accept Describe Pause Start

Append Disconnect Quit Timing Break Document Remark Ttitle Btitle Edit Prompt Undefine Chang Execute Print Save Clear Exit Run Column Get Runform Compute Help

3. DDL(Data Define Language)

对于结构查询语言(有时称SQL命令),可以将它们分成两组,一组是数据定义语言(DDL);另一组是数据操纵语言(DML)。其中用于数据定义的语言如下:

Alter procedure 重编译过程 Alter table 修改表的属性

Analyze 统计数据库对象性能值 Alter table add Constraint 对已有的表加约束 Create table 建立表结构 Create index 建立索引

Drop table 删除表实体及相关的索引 Drop index 删除索引

Grant 授权给用户或角色 Truncate 删除表中的所有行 Revoke 从用户或角色收回权限

4.DML(Data Manipulation Language)

对于结构查询语言的另一组是数据操纵语言(DML)。DML其中用于数据操纵的命令如下:

Insert Delete

27

Update Select

Commit work Rollback

§1.3.2 PL/SQL语言

PL/SQL是Oracle RDBMS (Oracle 6 之后版本)的一个组成部分,PL 是“过程化语言(Procedure Language )”的缩写。PL/SQL语言是在SQL语言中结合了结构化过程语言成分的准第四代语言。

使用PL/SQL的目的:

由于大多数PL/SQL是在服务端来运行,这样可减少由客户端运行程序时所需的网络数据流量。

可以使用PL/SQL的地方:

? PL/SQL可以单独进行程序的编写,完成一般的处理功能; ? 在高级语言中可嵌入PL/SQL 块; ? 在4GL中可以嵌入PL/SQL 块;

? 在PL/SQL程序中可以嵌入 HTML和XML。

§1.4 登录到SQL*PLUS

我们创建任何对象,如创建表、索引等都需要连接到Oracle中,这里用“登录”主要是Oracle的界面提供的是Login 这样的叫法。其实就是连接的意思。在Client/Server结构下,Oracle提供两种方式连接SQL*PLUS,其中SQL*NET V2.x 版本(目前版本不再使用SQL*NET V2.x)提供在字符方式下连接到 SQL*PLUS,SQL*NET V2. x版本提供在图形方式(Window)使用,目前版本的 ORACLE8/8i 都使用 NET8 连接.(NET8 不再支持字符终端)

§1.4.1 UNIX环境

在UNIX下,要确保客户端或服务器端与Oracle服务器系统进行连接,必须保证tnsnames.ora和listener.ora两个参数文件的正确配置。详细的配置解释在DBA章节里解释。下面是tnsnames.ora和listener.ora两个参数文件的内容显示。

1. tnsnames.ora参数文件: INST1_HTTP = (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = dbsvr)(PORT = 1521))

28

)

(CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = s450)

(PRESENTATION = http://admin) ) )

EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) )

(CONNECT_DATA =

(SID = PLSExtProc) (PRESENTATION = RO) ) )

S450 =

(DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = dbsvr)(PORT = 1521)) )

(CONNECT_DATA =

(SERVICE_NAME = s450) ) )

2. listener.ora参数文件: LISTENER =

(DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = dbsvr)(PORT = 1521)) )

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) ) )

SID_LIST_LISTENER = (SID_LIST =