1.3 Oracle数据库环境
1.3.1 Oracle数据库简介
当今社会已进入信息时代,作为信息管理主要工具的数据库已成为举足轻重的角色。无论是企业、组织的管理,还是电子商务或电子政务等应用系统的管理,都需要数据库的支持。
1979年,Oracle(甲骨文)公司推出了世界上第一个基于SQL标准的关系数据库管理系统Oracle 1,之后Oracle数据库得到了不断的完善。到了1999年推出的Oracle 8i,由于因特网技术的普及,Oracle公司的产品发展战略也由面向应用转向面向网络计算,进行了全面的数据库升级,并且开始向Windows操作系统进军。2007年,Oracle公司发布了Oracle 11g,是目前最新的版本。Oracle 11g是数据库领域最优秀的数据库之一,经过了1500万个小时的测试,开发工作量达到了3.6万人/月。它在继承了前版本Oracle 10g的基础上又增加了400多项新特性,如改进本地Java和PL/SQL编译器,数据库修复向导等。
Oracle是目前最流行的关系型数据库管理系统之一,被越来越多的用户在信息系统管理、企业数据处理、Internet和电子商务网站等领域作为应用数据的后台处理系统。
1.3.2 Oracle 11g的安装
Oracle 11g数据库服务器主要有三个版本:个人版、标准版和企业版。个人版只提供基本数据库管理服务,适用于单用户开发和部署;标准版适用于工作组或部门级别的应用程序;企业版适用于对高端应用程序的数据管理,如大容量的联机事物处理(OLTP)环境、查询密集型的数据仓库和要求较高的Internet应用程序等。这里以在Windows XP上安装Oracle企业版为例,具体的安装步骤如下。
(1)以Windows系统管理员身份登录计算机,双击Oracle安装文件夹中的setup.exe应用程序,启动Oracle Universal Installer(简称OUI)安装工具,之后弹出“选择要安装的产品”窗口,Oracle 11g提供两种安装方法—基本安装和高级安装。基本安装比较简单。配置参数较少;高级安装较为复杂,但可以深入理解安装的要领。这里选择“高级安装”,如图1.11所示,单击“下一步”按钮。
图1.11 “选择安装方法”窗口
(2)进入“选择安装类型”窗口,这里选择“企业版”,单击“下一步”按钮进入“指定主目录详细信息”窗口。在该窗口中可以指定存储所有与Oracle软件及与配置相关的文件的Oracle基目录。Oracle基目录是用于安装各种Oracle软件产品的顶级目录。“软件位置”则指定用于安装产品的Oracle主目录的名称和位置,这里将Oracle安装到D盘,基目录指定为“D:\app\tao”,如图1.12所示。
图1.12 “选择安装类型”窗口
(3)单击“下一步”按钮进入“产品特定的先决条件检查”窗口,Oracle Universal Installer将检查安装环境是否符合最低要求,如果符合验证的要求,如图1.13所示,即表示能够安装Oracle数据库。
图1.13 “产品特定的先决条件检查”窗口
(4)单击“下一步”按钮进入“选择配置选项”窗口,在此可以选择“创建数据库”“配置自动存储管理”或“仅安装软件”,如图1.14所示。其中,各个选项的含义如下。
图1.14 “选择配置选项”窗口
● 创建数据库:此选项创建具有“一般用途/事务处理”“数据仓库”或“高级”配置的数据库。
● 配置自动存储管理:此选项只在单独的Oracle主目录中安装自动存储管理。如果需要,还可以提供ASM SYS口令。接下来,系统将提示创建磁盘组。
● 仅安装软件:此选项只安装Oracle数据库软件,可以在以后的使用过程中配置数据库。
(5)选择“创建数据库”,单击“下一步”按钮进入“选择数据库配置”窗口,如图1.15所示。对于创建数据库,有以下四种数据库安装类型。
图1.15 “选择数据库配置”窗口
● 一般用途/事务处理:创建适合各种用途的预配置数据库,适合于简单的事务处理或复杂的查询,支持大量并发用户对数据的快速访问,也可用于决策支持系统(DSS),并能对历史数据进行数据扫描。
● 数据仓库:创建优化数据仓库的预配置数据库。数据仓库类型适合于对主题进行复杂的查询,它支持对大量数据进行快速访问并且使用类似联机分析处理(OLAP)等应用程序。数据仓库的典型应用包括用于客户订单研究、支持呼叫、销售预测、购物和采购模式以及其他战略性业务问题的历史数据库。
● 高级:选择该选项,需要安装的时间较长,但可以选择需要的安装类型和组件。
可以按照Oracle数据库的实际用途选择最佳的配置,这里选择默认的“一般用途/事务处理”。
(6)单击“下一步”按钮进入“指定数据库配置选项”窗口,其中“全局数据库名”主要用于在分布式数据库系统中唯一标识一个Oracle数据库,全局数据库名由数据库名和数据库域组成,格式为“数据库名.数据库域”。SID主要用于区分同一台计算机上的不同数据库的不同实例。SID通常与数据库相同,例如,在“全局数据库名”文本框输入XSCJ.domain,则在SID文本框中会自动填入XSCJ,这里填入该值,如图1.16所示。
图1.16 “指定数据库配置选项”窗口
(7)单击“下一步”按钮进入“指定数据库配置详细资料”窗口,可用的配置选项包括“内存”“字符集”“安全性”和“示例方案”,如图1.17所示。“内存”选项卡主要用于指定分配给数据库的物理内存;“字符集”选项卡用于确定在数据库中要支持哪些语言组;“安全性”选项卡用于指定是否在数据库中禁用默认安全设置;“示例方案”选项卡用于指定是否在数据库中包含示例方案。这里都采用默认设置,单击“下一步”按钮。
图1.17 “指定数据库配置详细资料”窗口
(8)进入“选择数据库管理选项”窗口,如图1.18所示。按照默认设置使用Database Control管理数据库,以便用Oracle Enterprise Manager(Oracle企业管理器)在本地管理每个Oracle数据库。
图1.18 “选择数据库管理选项”窗口
(9)单击“下一步”按钮进入“指定数据库存储选项”窗口,如图1.19所示。如果选择“文件系统”选项,则Oracle将使用操作系统的文件系统存储数据文件;如果选择“自动存储管理”选项,则将数据文件存储在自动存储管理磁盘组中。这里选择“文件系统”,单击“浏览”按钮选择一个至少有1.2 GB的可用磁盘空间,如D:\app\tao\oradata。
图1.19 “指定数据库存储选项”窗口
(10)单击“下一步”按钮进入“指定备份和恢复选项”窗口,如图1.20所示。如果选择“启用自动备份”,则Oracle企业管理器将在每天同一时间对数据库进行备份。这里选择默认的“不启用自动备份”。
图1.20 “指定备份和恢复选项”窗口
(11)单击“下一步”按钮进入“指定数据库方案的口令”窗口,这里可以为Oracle的每个管理账户设置不同的口令,为了简单起见,这里选择“所有的账户都使用同一口令”,并设置口令为“123456”,如图1.21所示。
图1.21 “指定数据库方案的口令”窗口
(12)单击“下一步”按钮进入“Oracle Configuration Manager注册”窗口,这里选择“不启用Oracle Configuration Manager”,单击“下一步”按钮进入“概要”窗口,显示按照全局设置、产品语言、空间要求和新安装组件分类等安装设置,如图1.22所示。用户可以检查设置是否正确,如果确认无误即可单击“安装”按钮进行Oracle的安装。等待一段时间,安装完成并且数据库创建完成后,会给出创建完成的提示窗口,如图1.23所示。单击“口令管理”按钮可以对数据库用户进行锁定或解锁,还可以修改用户的口令。这里将SCOTT用户解锁并将口令设置为tiger,完成后单击“确定”按钮结束Oracle的安装。
图1.22 “概要”窗口
图1.23 数据库创建完成窗口
说明:如果需要卸载计算机中的Oracle服务器,请参见本书附录A。
1.3.3 企业管理器(OEM)
Oracle 11g企业管理器(Oracle Enterprise Manager)简称OEM,是一个基于Java的框架系统,该系统集成了多个组件,为用户提供了一个功能强大的图形用户界面。OEM提供可以用于管理单个Oracle数据库的基于Web界面的工具,由于采用了基于Web的应用,它对数据库的访问也采用了HTTP/HTTPS协议,即使用B/S模式访问Oracle数据库管理系统。
使用OEM工具可以创建方案对象(表、视图等)、管理数据库的安全性(权限、角色、用户等)、管理数据库的内存和存储结构、备份和恢复数据库、导入和导出数据,以及查询数据库的执行情况和状态等。
在成功安装Oracle 11g后,OEM一般也随之安装成功。如果要使用OEM,需要启动浏览器,在地址栏中输入OEM的URL地址https://fbc7289ca692436:1158/em,其中fbc7289ca692436是计算机名称,1158是端口号。或者打开“开始”→“所有程序”→“Oracle- OraDB11g_home1”→“DataBase Control - XSCJ”来启动OEM。
启动Oracle 11g OEM以后会出现OEM的登录页面,用户可以输入用户的名称(如System、SYS)和口令(安装时已经设定为“123456”),连接身份选择“Normal”,如图1.24所示。输完后单击“登录”按钮弹出许可证确认页面,单击“是”按钮进入“数据库实例:XSCJ.domain”主页的“主目录”属性页,如图1.25所示。
图1.24 OEM登录页面
图1.25 OEM中的“主目录”属性页
说明:对于日常的管理任务,建议使用System用户登录,如果需要执行备份、恢复和更改数据库等任务,就必须以SYS用户登录。
数据库主页面中包含主目录、性能、可用性、服务器、方案、数据移动、软件和支持等几个属性页,几乎所有的Oracle管理功能都可以在这些属性页中完成。
1.3.4 SQL*Plus工具
Oracle 11g的SQL*Plus是Oracle公司独立的SQL语言工具产品,Plus表示Oracle公司在标准SQL语言基础上进行了扩充。在过去,SQL*Plus曾被称为UFI,即友好的用户接口(User Friendly Interface)。用户可以在Oracle 11g提供的SQL*Plus窗口编写程序,实现数据的处理和控制,完成制作报表等多种功能。
使用SQL*Plus,用户可以定义和操作Oracle关系数据库中的数据,不再需要在传统数据库系统中必须使用的大量数据检索工作。例如,现在用户不再受一次只能读一条记录的限制,用户可以编写一个程序处理与某个实体相关的所有记录,对其中所有记录的处理都保持一致。
1.启动SQL*Plus
在Oracle程序组中启动SQL*Plus的方法为:依次打开“开始”→“所有程序”→“Oracle-OraDB11g_home1”→“应用程序开发”→“SQL Plus”,进入SQL Plus命令行窗口,输入用户名system,回车输入口令(输入的口令不在光标处显示);回车后连接到Oracle,如图1.26所示。
图1.26 SQL Plus命令行窗口
在SQL*Plus窗口中显示SQL*Plus窗口的版本、启动时间和版权信息,并提示连接到Oracle 11g企业版等信息。在SQL*Plus窗口,还会看到SQL*Plus的提示符“SQL>”。在提示符后面输入SQL命令后回车即可以运行该命令。
另外还可以从命令提示符窗口中启动SQL*Plus,方法为:依次打开“开始”→“所有程序”→“附件”→“命令提示符”,进入“命令提示符”窗口,在窗口中输入命令“sqlplus”后回车,之后会提示输入用户名和口令,连接到Oracle后界面如图1.27所示。
图1.27 命令提示符窗口中启动SQL*Plus
通过程序组启动SQL*Plus则不能通过鼠标右击界面使用剪切、粘贴功能,这样不方便操作。而在命令提示符窗口启动SQL*Plus后则可以使用这些功能。
2.简单的例子
这里仅需了解一下即可,有关内容在后面的章节中详细讲解。
【例1.1】 使用SQL*Plus编辑界面创建学生成绩管理数据库(XSCJ)中的课程表(KCB),表结构见本书3.1.3节。
使用System用户连接Oracle后,在提示符“SQL>”后输入如下语句:
CREATE TABLE KCB ( KCH char(3) NOT NULL, KCM char(16) NOT NULL, KKXQ number(1) NULL, XS number(2) NULL, XF number(1) NOT NULL, PRIMARY KEY("KCH") );
执行结果如图1.28所示。
图1.28 创建KCB表
说明:在Oracle中命令不区分大小写,在SQL*Plus编辑器中每条命令都以分号(;)作为结束标志。为了表达问题简单,在以后的示例中单独描述命令而不需要界面结果时,在命令前省略“SQL>”提示符。
使用DESCRIBE命令查看KCB表机器中所有表的列的概要。
DESCRIBE KCB;
执行结果如下所示。
【例1.2】 使用INSERT语句向KCB表中插入两条记录。
INSERT INTO KCB VALUES('101', '计算机基础', 1, 80, 5); INSERT INTO KCB VALUES('102', '程序设计语言', 2, 68, 5);
每次成功地完成一条INSERT语句后,均返回行创建信息,该信息通知用户已建立的行数。
使用SELECT命令从XSCJ数据库的KCB表中检索数据。
SELECT * FROM KCB;
执行结果如下所示。
3.SQL*Plus的编辑命令
通常在SQL*Plus中执行的SQL语句都是SQL*Plus语句,最后执行的一条SQL*Plus语句将被保存在一个被称为SQL缓冲区的内存区域中。用户可以对SQL缓冲区中的SQL语句进行修改,然后再次执行。
除了SQL语句,SQL*Plus中还可以执行SQL*Plus编辑命令,它们执行完后不保存在SQL缓冲区中,一般用于对输出的结果进行格式化显示,或编辑与存储SQL语句。SQL*Plus编辑命令主要有以下几种。
(1)SQL*Plus行编辑命令。SQL*Plus窗口是一个行编辑环境,为了实现对输入命令或程序的编辑,SQL*Plus有自己内嵌的命令行编辑器,它提供了一组行编辑命令用于编辑保存在SQL缓冲区中的语句,常用的编辑命令如表1.2所示。表中命令表达式方括号中的内容可以省略。
表1.2 SQL*Plus行编辑命令及功能
下面通过例子说明一些常用命令的简单使用方法。
① LIST语句
语法格式:
L[IST] [n|n m|n*|n last|*|*n|*last|last]
【例1.3】 假设在SQL*Plus中运行了下述查询语句:
SELECT KCH, KCM FROM KCB WHERE XF=5;
应用LIST语句:
LIST /*命令简写,大小写都可以*/
执行结果如上图所示。
② APPEND语句
语法格式:
APPEND column_name[,…n]|text
【例1.4】 在例1.3的查询内容中增加KKXQ列。
依次执行如下语句:
1 /*将第一行指定为当前行*/ APPEND,KKXQ /*在第一行最后追加KKXQ列*/ L /*重新显示语句内容*/
执行结果如上图所示。
③ CHANGE语句
语法格式:
C[HANGE]/[old/]new/
【例1.5】 将例1.4修改后的查询语句中的WHERE子句的查询条件学分为4,替换学分为5。
依次执行如下语句:
3 /*指定第三行为当前行*/ C/5/4/ /*学分为4,替换学分为5*/
执行结果如上图所示。
④ INPUT语句
语法格式:
I[NPUT] [text]
【例1.6】 在例1.5修改后的查询语句后添加另外的查询条件。
依次执行如下语句:
L3 /*指定第三行为当前行*/ I AND KKXQ=2 /*添加查询条件*/ L /*显示添加查询条件后的语句*/
执行结果如上图所示。
⑤ DEL语句
语法格式:
DEL [n|m n | n LAST]
【例1.7】 删除例1.6修改后的查询语句的第2到第3行。
Del 2 3 /*如果语句后不带行号,表示删除当前行*/
(2)SQL*Plus文件操作命令。由于SQL*Plus提供的编辑能力非常有限,而且很难操作,例如,不能使用方向键来定位输入位置,当退出SQL*Plus之后原来输入的所有命令将立刻丢失。因此,Oracle允许用户自己选择合适的编辑器,创建一个脚本文件,在脚本文件中输入命令,然后在SQL*Plus中使用START命令运行该脚本文件。SQL*Plus常用的脚本文件操作命令如表1.3所示。
表1.3 SQL*PLUS文件操作命令及功能
下面通过实例说明文件操作命令的用法。
【例1.8】 首先在SQL*Plus中输入一条SQL语句,然后将当前缓冲区的SQL语句保存为后缀名为.sql的文件,以便以后使用或进一步编辑。
输入SQL语句:
SELECT KCH, KCM FROM KCB WHERE XF=5;
保存SQL语句到kcb.sql文件中:
SAVE D:\kcb.sql
执行结果如图1.29所示。
图1.29 保存缓冲区的SQL语句
将保存在磁盘上的文件kcb.sql调入缓冲区,使用如下命令:
GET D:\kcb.sql
要运行缓冲区的命令使用“/”即可,执行结果如下所示。
或者,可以执行运行START命令来运行磁盘上的命令文件:
START D:\kcb.sql
1.3.5 SQL Developer工具
SQL Developer是一个图形化的、免费的集成开发环境,它被集成于Oracle 11g中,以利于Oracle数据库的开发。相对于OEM和SQL*Plus来说,SQL Developer更具有Windows风格和集成开发工具的流行元素,操作更加直观、方便,可以轻松地创建、修改和删除数据库对象,运行SQL语句,编译、调试PL/SQL程序等。SQL Developer大大简化了数据库的管理和开发工作,提高了工作效率,缩短了开发周期,所以受到了广大用户的喜爱。
启动SQL Developer的步骤如下。
(1)“开始”→“所有程序”→“Oracle- OraDB11g_home1”→“应用程序开发”→“SQL Developer”。如果是第一次启动SQL Developer,会弹出“Oracle SQL Developer”窗口,询问java.exe的完整路径。由于SQL Developer是用Java语言开发的,所以需要JDK的支持,下载地址为http://java.sun.com/javase/downloads/index.jsp。如果已经安装了JDK,则单击“Browse”按钮选择java.exe程序的具体路径,如图1.30所示。
图1.30 选择java.exe程序
(2)单击“OK”按钮启动“Oracle SQL Developer”,启动画面如图1.31所示。启动时会弹出询问是否从前一个版本移植设置的对话框,由于没有安装以前的版本,所以单击“No”按钮,出现“Configure File Type Associations”窗口,如图1.32所示,选择相关的文件类型。
图1.31 Oracle SQL Developer启动画面
图1.32 选择相关文件类型
(3)单击“确定”按钮,出现SQL Developer的主界面,如图1.33所示。
图1.33 SQL Developer主界面
(4)SQL Developer启动后,需要创建一个数据库连接,只有创建了数据库连接,才能在该数据库的方案中创建、更改对象和编辑表中的数据。在主界面左边窗口的“Connections”选项卡中右击“Connections”节点,选择“New Connection”菜单项,弹出“New/Select Database Connection”窗口,如图1.34所示。
图1.34 “New/Select Database Connection”窗口
(5)如果要创建一个Oracle数据库中system用户方案的数据库连接,则在“Connection Name”中输入一个自定义的连接名,如system_ora;在“Usename”中输入system;在“Password”中输入相应密码;选中“Save Password”复选框;“Role”栏保留为默认的“default”;在“Hostname”栏中输入主机名或保留为localhost;“Port”值保留默认的1521;“SID”栏中输入数据库的SID,如本数据库的系统标识为XSCJ。设置完后单击“Test”按钮测试该设置能否连接,如果成功,则会在左下角Status后显示“Success”。
(6)单击“Save”按钮,将测试成功的连接保存起来,以便以后使用。之后在主界面的Connections节点下会添加一个system_ora的数据库连接,双击该连接,在子目录中会显示可以操作的数据库对象,如图1.35所示。之后对XSCJ数据库的所有操作都可以在该界面下完成。
图1.35 新创建的数据库连接