S2-Java 企業(yè)數(shù)據(jù)庫Oracle應(yīng)用_第1頁
S2-Java 企業(yè)數(shù)據(jù)庫Oracle應(yīng)用_第2頁
S2-Java 企業(yè)數(shù)據(jù)庫Oracle應(yīng)用_第3頁
S2-Java 企業(yè)數(shù)據(jù)庫Oracle應(yīng)用_第4頁
S2-Java 企業(yè)數(shù)據(jù)庫Oracle應(yīng)用_第5頁
已閱讀5頁,還剩201頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

西安新展信息技術(shù)服務(wù)有限公司指定教材

高級(jí)IT軟件工程師培訓(xùn)系列

今Java企業(yè)數(shù)據(jù)庫Oracle應(yīng)用

西安新展信息技術(shù)服務(wù)有限公司編著

第二學(xué)期

學(xué)員培訓(xùn)用書

后西安新展信息技術(shù)服務(wù)有限公司

內(nèi)容簡介

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.

圖書在版編目(CIP)數(shù)據(jù)

JavaEE設(shè)計(jì)模式/西安新展軟件

培訓(xùn)中心一一西安

中國版本圖書館QP數(shù)據(jù)核字(2009)笫0001號(hào)

策劃:XXX

主編:XXX

責(zé)任編輯:XXX

印刷:XXXXXX

版次:2009年第一版

印數(shù):10000冊

定價(jià):1000.00元(全套5冊)

編委會(huì)

策劃:楊兆峰

主編:楊兆峰

執(zhí)行主編:付永杰

責(zé)任編輯:付永杰

編委:許天嶺付永杰樊凱孫文博

蘇立春孫靜偉沈揚(yáng)李國慶

編者:付永杰許天嶺樊凱

前言

西安新展信息技術(shù)服務(wù)有限公司

目錄

第一章走進(jìn)Oracle

第二章SQL數(shù)據(jù)操作和查詢

第三章常用函數(shù)、事務(wù)和鎖

第四章表空間、數(shù)據(jù)庫對象

第五章數(shù)據(jù)庫設(shè)計(jì)

第六章PL/SQL程序設(shè)計(jì)

第七章子程序和程序包

第八章游標(biāo)、內(nèi)置程序包

第九章觸發(fā)器、數(shù)據(jù)字典

第十章數(shù)據(jù)庫管理

附錄數(shù)據(jù)庫導(dǎo)入導(dǎo)出

第1章

走進(jìn)Oracle

主要內(nèi)容

/Oracle安裝

/Oracle創(chuàng)建用戶和角色

,客戶端鏈接Oracle服務(wù)器

1.Oracle簡介

在第一學(xué)期已經(jīng)接觸過關(guān)系型數(shù)據(jù)庫SQLServer,對數(shù)據(jù)庫、表、記錄、表的增刪改查

操作等這些基本的概念已經(jīng)了解,接下來我們進(jìn)入當(dāng)今主流數(shù)據(jù)庫Oracle的學(xué)習(xí)。Oracle

是基于對象的關(guān)系型數(shù)據(jù)庫,Oracle也是用表的形式對數(shù)據(jù)存儲(chǔ)和管理,并且在Oracle的操

作中添加了一些面向?qū)ο蟮乃枷搿?/p>

Oracle數(shù)據(jù)庫是Oracle(中文名稱叫甲骨文)公司的核心產(chǎn)品,Oracle數(shù)據(jù)庫是一個(gè)適

合于大中型企業(yè)的數(shù)據(jù)庫管理系統(tǒng)。在所有的數(shù)據(jù)庫管理系統(tǒng)中(比如:微軟的SQLServer,

IBM的DB2等),Oracle的市場占有率最高,顯然Oracle的主要用戶涉及面非常廣,包括:

銀行、電信、移動(dòng)通信、航空、保險(xiǎn)、金融、電子商務(wù)和跨國公司等。Oracle產(chǎn)品是免費(fèi)的,

可以在Oracle官方網(wǎng)站上下載到安裝包,但是Oracle服務(wù)是收費(fèi)的。在Java開發(fā)中,Oracle

數(shù)據(jù)庫是非常理想的選擇,

Oracle公司成立以來,從最初的數(shù)據(jù)庫版本到Oracla7、OracleSisOracl??9i.OraclelOg

到Oraclellg,雖然每一個(gè)版本之間的操作都存在一定的差別,但是Oracle對數(shù)據(jù)的操作基

本上都遵循SQL標(biāo)準(zhǔn)。因此對Oracle開發(fā)來說版本之間的差別不大。

很多人沒有學(xué)習(xí)Oracle就開始發(fā)怵,因?yàn)槿藗冊谡`解Oracle,認(rèn)為Oracle太難學(xué)了,認(rèn)

為Oracle不是一般人用的數(shù)據(jù)庫,其實(shí)任何數(shù)據(jù)庫對應(yīng)程序研發(fā)人員來說,都是大同小異,

因?yàn)槟壳岸鄶?shù)數(shù)據(jù)庫都支持標(biāo)準(zhǔn)的SQL,SQL是程序研發(fā)人員對數(shù)據(jù)庫操作的工具。在Oracle

這本書中,我們能學(xué)習(xí)到:

>Oracle的安裝

>Oracle數(shù)據(jù)管理

>Oracle鎖和事務(wù)

>PL/SQL編程

>Oracle子程序

>游標(biāo)和觸發(fā)器

>Oracle基本管理

由于在第一學(xué)期已經(jīng)接觸了SQLServer,多以學(xué)習(xí)Oracle不會(huì)很難,主要是實(shí)踐,因此

在本書的學(xué)習(xí)中,認(rèn)真的完成上機(jī)練習(xí)是學(xué)習(xí)好本書的基礎(chǔ)。

接下來我們先從Grade安裝開始,接觸一些Oracle中基本的概念。

2.Oracle安裝

Oracle數(shù)據(jù)庫產(chǎn)品是免費(fèi)的,我們可以從Oracle的官方網(wǎng)站(http:〃)下載

到程序安裝包,Oracle在windows下的安裝非常方便,安裝開始后,一直點(diǎn)擊安裝程序的“下

下一步”即可。

下載OraclelOg后,解壓到一個(gè)文件夾下,單擊“setup.exe”文件即可啟動(dòng)安裝界面。

如下圖:

圖1Oracle安裝啟動(dòng)界面

Oracle主目錄位置就是Oracle準(zhǔn)備安裝的位置,稱為“OracljHome",一般Oracle根

據(jù)當(dāng)前計(jì)算機(jī)的硬盤大小默認(rèn)給出一個(gè)合適的位置Oracle安裝時(shí)可以只安裝Oracle軟件,

然后單獨(dú)創(chuàng)建數(shù)據(jù)庫,也可以在上圖中選中“創(chuàng)建啟動(dòng)數(shù)據(jù)庫”復(fù)選框,在安裝安裝Oracle

產(chǎn)品時(shí),同時(shí)創(chuàng)建一個(gè)數(shù)據(jù)庫,對初學(xué)者來說,推薦這樣安裝。填寫全局?jǐn)?shù)據(jù)庫名,以及管

理員的密碼。全局?jǐn)?shù)據(jù)庫名是數(shù)據(jù)庫在服務(wù)器網(wǎng)絡(luò)中的唯一標(biāo)識(shí)。

點(diǎn)擊“下一步”,就會(huì)出現(xiàn)如下圖內(nèi)容,開始定Oracle服務(wù)器進(jìn)行環(huán)境檢查,主要

查看服務(wù)器是否符合Oracle安裝的條件,比如操作系統(tǒng)是否支持、系統(tǒng)內(nèi)存是否符

合Oracle安裝的最低要求等。

圖2Oracle安裝前環(huán)境檢查

Oracle檢查通過后,單擊“下一步”,就會(huì)列出所有安裝Oracle過程中的默認(rèn)選項(xiàng)。

圖3Oracle默認(rèn)安裝設(shè)置

單擊“安裝”按鈕,進(jìn)入安裝界面,這一過程經(jīng)歷時(shí)間比較長,根據(jù)計(jì)算機(jī)的性能

不同有很大差別。

圖4Oracle安裝

上圖完成后,進(jìn)入了各種Oracle工具的安裝階段,包括網(wǎng)絡(luò)配置向?qū)?,iSQL*plus

等(后面課程中講解)。如下圖所示:

^OracleUniversalInstaller:ConficuratiAssistant

ConfigurationAssistant

以下ConfigurationAssistant將配置并動(dòng)先前所選的組件。

工具名稱伏態(tài)

EOracleDatabase:0,

On?offPatchApplication正在運(yùn)行..建議

17Oneo££P(guān)atchfor5923165正在等待..可選

POracleNetConfigurationAssistant正在等待..建議

POracl?DatabftzoConfxdurationAzzist^nt正荏等待..建議

iSQL*PlusConfigurationAssistant正在等待..可選

電試竺停止0

C:Vro(ranFil?z\0r?cl?\Iav?ntory\logs\ixkxt?llActioas2009-08-24_08~15~25A!l.log傳香

為Oracle主目錄備份文件和產(chǎn)品清單壞是用于自動(dòng)回退)

正在備份受補(bǔ)丁程序’SSS7962'彩響的文件以用于恢復(fù).此噪作將翕要一些叼間…

正在備份受補(bǔ)丁程序'SSS7962,影確文件以用于睡。此操作將需要一些時(shí)澗一.

幫助00)、已究能產(chǎn)品(£)..上一步|下一步但))安裝,).取消

ORACLE

圖5Oracle各種工具的安裝

接卜來自動(dòng)啟動(dòng)DBCA(DatabaseConfigurationAssistant)進(jìn)入創(chuàng)建默認(rèn)數(shù)據(jù)庫階段。

圖6DBCA下安裝數(shù)據(jù)庫

Oracle中的數(shù)據(jù)庫主要是指存放數(shù)據(jù)的文件,這些文件在Oracle安裝完成后,在計(jì)算機(jī)

硬盤上都能找到,包括數(shù)據(jù)文件,控制文件和數(shù)據(jù)庫日志文件。

數(shù)據(jù)庫創(chuàng)建后會(huì)有一系列為該數(shù)據(jù)庫提供服務(wù)的內(nèi)存空間和后臺(tái)進(jìn)程,稱為該數(shù)據(jù)庫的

實(shí)例。每一個(gè)數(shù)據(jù)庫至少會(huì)有一個(gè)實(shí)例為其服務(wù)。實(shí)例中的內(nèi)存結(jié)構(gòu)稱為系統(tǒng)全局區(qū)(SGA),

系統(tǒng)會(huì)根據(jù)當(dāng)前計(jì)算機(jī)系統(tǒng)的性能給SGA分配非??捎^的內(nèi)存空間。

Oracle創(chuàng)建數(shù)據(jù)庫不能像SQLServer那樣用一個(gè)簡單的createdatabase命令就能完成,

在創(chuàng)建數(shù)據(jù)庫的過程中還需要配置各種參數(shù)。雖然有DBCA工具向?qū)?,但是仍然需要進(jìn)行比

較麻煩的配置。

雖然一個(gè)Oracle數(shù)據(jù)庫服務(wù)器中可以安裝多個(gè)數(shù)據(jù)庫,但是一個(gè)數(shù)據(jù)庫需要占用幾

常大的內(nèi)存空間,因此?能一個(gè)膈各篇只安裝?個(gè)數(shù)據(jù)庫.每?個(gè)數(shù)據(jù)庫可以有很

提示多用戶,不同的用戶擁有自己的數(shù)據(jù)庫對象(比如:數(shù)據(jù)庫表),一個(gè)用戶如果訪向

其他用戶的數(shù)據(jù)庫對象,必須由對方用戶授予一定的權(quán)限。不同的用戶創(chuàng)建的表,

只能被當(dāng)前用戶訪問。因此在Oracle開發(fā)中,大同的應(yīng)用程序只需使用不同的用戶

訪問即可。

數(shù)據(jù)庫創(chuàng)建完畢后,需要設(shè)置數(shù)據(jù)庫的默認(rèn)用戶。Oracle中為管理員預(yù)置了兩個(gè)用

戶分別是和同時(shí)為程序測試提供了一個(gè)普通用戶口令管

syssystemoOraclescott,

理中,可以對數(shù)據(jù)庫用戶設(shè)置密碼,設(shè)置是否鎖定。Oracle客戶端使用用戶名和密

碼登錄Oracle系統(tǒng)后才能對數(shù)據(jù)庫操作。

圖7DBCA下的口令管理

圖8為system,sys,scott用戶設(shè)置密碼

默認(rèn)的用戶中,sys和system用戶是沒有鎖定的,安裝成功后可以直接使用,scott用戶

默認(rèn)為鎖定狀態(tài),因此不能直接使用,需要把scott用戶設(shè)定為非鎖定狀態(tài)才能正常使用。

這一步完成后,Oracle系統(tǒng)安裝成功。

Oracle數(shù)據(jù)庫中,默認(rèn)情況下,所有系統(tǒng)的數(shù)據(jù).SQL關(guān)鍵字等都是大寫的,在操作

過程中,Oracle會(huì)自動(dòng)把這些內(nèi)容轉(zhuǎn)換為大寫,因此用戶操作時(shí)不需考慮大小寫問題,

提示一般情況下,為了良好的程序風(fēng)格,程序中建議關(guān)鍵字用大寫,非關(guān)鍵字可以使用小

寫。

3.Oracle客戶端工具

Oracle服務(wù)器安裝成功后,就可以通過客戶端工具連接Oracle服務(wù)器了,可以到Oracle

官方下載Oracle專用的客戶端軟件,大多客戶端工具都是基于Oracle客戶端軟件的。接下

來介紹幾種常用的Oracle客戶端工具。

令SQL*Plus工具

該工具是Oracle系統(tǒng)默認(rèn)安裝下,自帶的一個(gè)客戶端工具。在windows命令行中輸入

“sqlplusw”命令,就能夠啟動(dòng)該工具了。

?u£

圖9SQL*Plus工具

輸入用戶名和密碼后,如果SQLPIus與數(shù)據(jù)庫服務(wù)器在同一臺(tái)計(jì)算機(jī)上,并且當(dāng)前服務(wù)

器下只有一個(gè)數(shù)據(jù)庫實(shí)例,那么“主機(jī)字符串”可以不用填寫。

SQL*Plus工具雖然是Oracle自帶的工具,但是在現(xiàn)實(shí)開發(fā)中,基于該環(huán)境對開發(fā)不

方便,因此很少使用。

提示

SQL*Plus連接成功后就如圖所示:

±OracleSQL?Pliis,[□[X]

文件但)編輯?搜索⑤選項(xiàng)?格助國)

SQL?Plus:Release.0-Productionon星期一8月2417:56:5320亡|

Copyright(c)1982,2006,Oracle.AllRightsReserved.

連接到:

OracleDatabase10gEnterpriseEditionRelease.0-Production

WiththePartitioning,OLAPandDataMiningoptions

SQL>

±U1

圖10SQL*Plus工具登錄后

eSQL*Plus命令行工具

該命令行工具,提供了與數(shù)據(jù)庫交互的能力和維護(hù)數(shù)據(jù)庫的能力,包括了Oracle自帶

的SQL*Plus工具的全部功能,在Oracle管理中經(jīng)常使用。在命令行中輸入:“sqlplus/nolog”

即可啟動(dòng)該工具。如下圖:

圖11啟動(dòng)SQL*Plus命令行工具

輸入“sqlplus/nolog”命令后,只是啟動(dòng)了一個(gè)客戶端進(jìn)程,并沒有與服務(wù)器連接,連

接到Oracle服務(wù)器的命令是:

conn用戶名/密碼as連接身份@服務(wù)器連接字符串

說明:

1.連接身份:表示該用戶連接后擁有的權(quán)限。

sysdba:屏數(shù)據(jù)庫管理員,權(quán)限包括?:打開數(shù)據(jù)庫服務(wù)器、關(guān)閉數(shù)據(jù)庫服務(wù)

器、備份數(shù)據(jù)庫、恢復(fù)數(shù)據(jù)庫、日志歸檔、會(huì)話限制、管理功能、創(chuàng)建數(shù)據(jù)庫。

sys用戶必須用sysdba身份才能登錄,system用戶可以用普通身份登錄。

sysyoper;即數(shù)據(jù)庫操作員,權(quán)限包括;打開數(shù)據(jù)庫服務(wù)器、關(guān)閉數(shù)據(jù)庫服務(wù)

器、備份數(shù)據(jù)庫、恢復(fù)數(shù)據(jù)庫、日志歸檔、會(huì)話限制。

normal:即普通用戶,權(quán)限只有查詢某些數(shù)據(jù)表的數(shù)據(jù)。默認(rèn)的身份是normal

用戶。

客戶端工具可以根據(jù)“服務(wù)器連接字符串”對服務(wù)器進(jìn)行連接,有了連接字符串后

客戶端就可以像操作本機(jī)一樣操作遠(yuǎn)程數(shù)據(jù)庫,因此“服務(wù)器連接字符串”的配置

也叫本地網(wǎng)絡(luò)服務(wù)配置,如果SQL*Plus工具啟動(dòng)在服務(wù)器上,并且服務(wù)器上只有一

個(gè)數(shù)據(jù)庫實(shí)例的情況下,連接字符串可以缺省,在連接字符串中包括連接服務(wù)器的

協(xié)議,服務(wù)器的地址,服務(wù)器的端口等設(shè)置,Oracle服務(wù)名等,該配置文件在Oracle

安裝目錄下的:network/ADMIN/tnsnames.ora,,該文件是一個(gè)文本文件,用記事本

打開后如下所示:

#tnsnames.oraNetworkConfigurationFile:

版分洸#E:\oracle\product\10.2.0\db_l\network\admin\tnsnames.ara

迂注?#GeneratedbyOracleconfigurationtools.

ORCL=河段

(DESCRIPTIONS廠IX

(ADDRESS■(PROTOCOL?TCP)(HOST?MyHost-X-089)(PORT?1521))

(CONNECI_DA1A=

(SERVER=DEDICATED)

(SERVICE_NAME=ord)

)

圖12服務(wù)器連接字符串配置

令配置本地網(wǎng)絡(luò)服務(wù)名

本地網(wǎng)絡(luò)服務(wù)名,即客戶端與服務(wù)器的連接字符串,本地網(wǎng)絡(luò)服務(wù)名是客戶端的配置,

Oracle客戶端安裝后,可以使用客戶端自帶的網(wǎng)絡(luò)配置向?qū)?NetConfigurationAssistant)進(jìn)

行配置:

啟動(dòng)NetConfigurationAssistant.選擇“本地Net服務(wù)名配置”選項(xiàng)。如下圖所示:

圖13啟動(dòng)NetConfigurationAssistant

選擇“下一步”,本步驟可以對本地網(wǎng)絡(luò)服務(wù)名進(jìn)行添加,刪除,測試是否正常連

接等操作,選擇“添加”選項(xiàng)。

圖14NetConfigurationAssistant

點(diǎn)擊“下一步”,填寫服務(wù)名,該服務(wù)名就是Oracle安裝時(shí)(圖1),為數(shù)據(jù)庫取

的全局?jǐn)?shù)據(jù)庫名。

圖15服務(wù)名配置

點(diǎn)擊“下一步”,選擇服務(wù)需要的協(xié)議,默認(rèn)是TCP協(xié)議。推薦使用默認(rèn)的TCP協(xié)

議。

圖16選擇協(xié)議

點(diǎn)擊“下一步”,輸入主機(jī)名,主機(jī)名可以是計(jì)算機(jī)名稱,也可以是一個(gè)IP地址,

主機(jī)如果是本機(jī),可以使用本機(jī)計(jì)算機(jī)名稱、“l(fā)ocalhost”、“12700.1”、或者

本機(jī)的IP地址。

圖17輸入主機(jī)名和端口

6.單擊“下一步”,選擇“是,進(jìn)行測試”選項(xiàng)。進(jìn)入下圖界面。

圖18測試成功

在測試時(shí),默認(rèn)采用的用戶名和密碼是system/manager進(jìn)行測試,如果用戶system的

密碼不是“manager",有可能測試通不過,更改登錄后,輸入正確的用戶名和密碼后再進(jìn)

行測試即可。

測試成功后,單擊“下一步”,出現(xiàn)如卜界面,這一步是為本地網(wǎng)絡(luò)服務(wù)命名,即

圖12中的服務(wù)器連接字符串名。

圖19為網(wǎng)絡(luò)服務(wù)名命名

點(diǎn)擊“下一步”,配置就完成了,進(jìn)入tnsnames.ora文件中查看,就出現(xiàn)了如圖12中

的內(nèi)容。

。PL/SQLDeveloper工具

在實(shí)際Oracle開發(fā)中,經(jīng)常使用一個(gè)功能強(qiáng)大的第三方工具:“PL/SQLDeveloper"工

具。PL/SQLDeveloper基本上可以實(shí)現(xiàn)Oracle開發(fā)中的任何操作。它運(yùn)行在客戶端時(shí)必須先

安裝Oracle客戶端,并且通過網(wǎng)絡(luò)配置向?qū)渲镁W(wǎng)絡(luò)服務(wù)名后才能正常與服務(wù)器連接,

PL/SQLDeveloper

4.Oracle月員務(wù)

Oracle在windows中安裝完成后,會(huì)安裝很多服務(wù),下面介紹幾個(gè)主要的服務(wù)。

|縣計(jì)算機(jī)管理

且文件9M出查看9窗口世)幫助Q1)

<>T色國自國曲圖西>■II■>

________________________

與討篁機(jī)管理體地)/

國柒系統(tǒng)工具電jNetworkDDE票

田,國芬俏微Hotwor*DDEDSDH票

E擊服務(wù)和應(yīng)用程序卷NetworkLocationAwarenessCNLA)手

動(dòng)

申目電話服務(wù)手

^^K?tworkProvizioningSorvic。動(dòng)

⑷NicrozoftSQLS?rv^rz卷KTLMSecuritySupportProvider動(dòng)

啕版務(wù)%KVIDIADisplayDriverSorv:c?動(dòng)

給YNI控制%OfficeSourceEngine動(dòng)

田序SQLServ”配百苣理罟自

%Orftcl?DBConsolqorcl動(dòng)

3&索引服務(wù)用

OradeJobSchedulerORCL

國嘯jInternet信息服務(wù)CtlS)'動(dòng)

%0r?clo0rd)blOg_hof>^liSQUPluz

動(dòng)

嗯OradeOraDbl0jhoee1TNSLis;ener

!Orecl?SQrviceORCL已啟動(dòng)自動(dòng)

PerfornanceLo^sandAlert:自動(dòng)

%Pluaand?lv/自劫

11I2J^1X^7

圖21Oracle服務(wù)

OracleService+服務(wù)名,該服務(wù)是數(shù)據(jù)庫啟動(dòng)的基礎(chǔ),只有該服務(wù)啟動(dòng)了,Oracle數(shù)

據(jù)庫才能正常啟動(dòng)。這是必須啟動(dòng)的服務(wù)。

OracleOraDblOg_homelTNSListener,該服務(wù)是服務(wù)器端為客戶端提供的監(jiān)聽服務(wù),

只有該服務(wù)在服務(wù)器上正常啟動(dòng),客戶端才能連接到服務(wù)器。該監(jiān)聽服務(wù)接收客戶

端發(fā)出的請求,然后將請求傳遞給數(shù)據(jù)庫服務(wù)器。一旦建立?了連接,客戶端和數(shù)據(jù)

庫Co服nt務(wù)ro器l.就..O能ra直ct接eD通BC信o了ns。oleorcI

服務(wù)正在啟動(dòng).

OOrraaccleleODraBDCbolnOsgo_lheomreliS務(wù)QL已*P經(jīng)lu啟s,動(dòng)該成服功務(wù)。提供了用瀏覽器對數(shù)據(jù)庫中數(shù)據(jù)操作的方

式?!霸搼{服牝務(wù)證啟可動(dòng)以后反,制就分可名以,使用瀏覽器進(jìn)行遠(yuǎn)程登錄并進(jìn)行數(shù)據(jù)庫操作了。如下圖

即喙,或?yàn)椤?/p>

所示:

圖22iSQL*Plus

OracleDBConsole+服務(wù)名,OraclelOg中的一個(gè)新服務(wù)。在Oracle9i之前,Oracle官方

提供了一個(gè)基于圖形界面的企業(yè)管理器(EM),從OraclelOg開始,Oracle提供了一

個(gè)基于B/S的企業(yè)管理器,在操作系統(tǒng)的命令行中輸入命令:emctlstartdbconsole,

就可以啟動(dòng)OracleDbConsole服務(wù),如下圖所示:

MicrosoftWindows[版本5.2.3790],

(C)版權(quán)所有1985-2003MicrosoftCorp.4女前即’

C:\>emctlstartfibconsole

OracleEnterpriseManager10gDatabaseControlRelease.0

Copyright(c)1996,2006OracleCorporation.Allrightsreserved.

http:〃MyHost-X-089:1158/em/corsole/aboutADplication^

StartingOracl^EnterpriseManager10gDatabase起人口做四批

圖23EM服務(wù)的啟動(dòng)

服務(wù)啟動(dòng)之后,就可以在瀏覽器中輸入上圖中進(jìn)入EM的地址,使用B/S方式管理Oracle

服務(wù)器。

5.Oracle啟動(dòng)和關(guān)閉

OracleService啟動(dòng)動(dòng)后,就可以對數(shù)據(jù)庫進(jìn)行管理了,Oracle的啟動(dòng)和關(guān)閉是最基本的

命令,在SQL*Plus中,后動(dòng)。racle必須是sys用尸,命令格式是:

startupopen

1C:\TIKDOTS\s7stea32\CID.exe-sqlplns/nolog,!□1x|

SQL>startupopen;▲

ORACLE例程己經(jīng)啟動(dòng)。

FotalSystemGlobalArea574619648bytes-i

FixedSize1291820bytes

VariableSize184551892bytes

DatabaseBuffers381681664bytes

RedoBuffers7094272bytes

1K瞽薪:

SQL>

411A

圖24Oracle服務(wù)啟動(dòng)

Oracle服務(wù)關(guān)閉用命令:shutdownimmediate

圖25Oracle服務(wù)關(guān)閉

6.Oracle用戶和權(quán)限

Oracle中,一般不會(huì)輕易在一個(gè)服務(wù)器上創(chuàng)建多個(gè)數(shù)據(jù)庫,在一個(gè)數(shù)據(jù)庫中,不同的項(xiàng)

目由不同的用戶訪問,每一個(gè)用戶擁有自身創(chuàng)建的數(shù)據(jù)庫對象,因此用戶的概念在Oracle

中非常重要。Oracle的用戶可以用CREATEUSER命令來創(chuàng)建。其語法是:

CREATEUSER用戶名IDENTIFIEDBY口令[ACCOUNTLOCK|UNLOCK]

說明:

LOCK|UNLOCK創(chuàng)建用戶時(shí)是否鎖定,默認(rèn)為鎖定狀態(tài)。鎖定的用戶無法正常的登錄進(jìn)

行數(shù)據(jù)庫操作。

比如創(chuàng)建一個(gè)用戶jerry,密碼是tom,默認(rèn)非鎖定,格式是:

SQI>CRFATFIJSFRjerry

2IDENTIFIEDBYtom

3ACCOUNTUNLOCK;

Oracle在SQL*Plus中的命令以分號(hào)(;)結(jié)尾,代表命令完畢并執(zhí)行,系

統(tǒng)同時(shí)會(huì)把該命令保存在緩存中,緩存中只保存最近執(zhí)行過的命令,處

果重新執(zhí)行緩存中的命令,直接使用左斜杠符號(hào)(/)。如果命令不以分號(hào)

注意

結(jié)尾,該命令只是寫入緩存保存起來,但并不執(zhí)行。

盡管用戶成功創(chuàng)建,但是還不能正常的登錄Oracle數(shù)據(jù)庫系統(tǒng),因?yàn)樵撚脩暨€沒有任

何權(quán)限。如果用戶能夠正常登錄,至少需要CREATESESSION系統(tǒng)權(quán)限。

Oracle用戶對數(shù)據(jù)庫管理或?qū)ο蟛僮鞯臋?quán)利,分為系統(tǒng)權(quán)限和數(shù)據(jù)庫對象權(quán)限。系統(tǒng)權(quán)

限比如:CREATESESSION,CREATETABLE等,擁有系統(tǒng)權(quán)限的用戶,允許擁有相應(yīng)的系統(tǒng)操

作。數(shù)據(jù)庫對象權(quán)限,比如對表中的數(shù)據(jù)進(jìn)行增刪改操化等,擁有數(shù)據(jù)庫對象權(quán)限的用戶可

以對所擁有的對象進(jìn)行對應(yīng)的操作。

還有一個(gè)概念就是數(shù)據(jù)庫角色(role),數(shù)據(jù)庫角色就是若干個(gè)系統(tǒng)權(quán)限的集合。下面介

紹幾個(gè)常用角色:

CONNECT角色:主要應(yīng)用在臨時(shí)用戶,特別是那些不需要建表的用戶,通常只賦予

他們CONNECTroe。CONNECT是使用Oracle的笥單權(quán)限,擁有CONNECT角色的

用戶,可以與服務(wù)器建立連接會(huì)話(session,客戶端對服務(wù)器連接,稱為會(huì)話)。

RESOURCE角色:更可靠和正式的數(shù)據(jù)庫用戶可以授予RESOURCErole。RESOURCE

提供給用戶另外的權(quán)限以創(chuàng)建他們自己的表、序列、過程(procedure),觸發(fā)器

(trigger)>索弓I(index)等。

DBA角色:DBArole擁有所有的系統(tǒng)權(quán)限--包括無限制的空間限額和給其他用戶授

予各種權(quán)限的能力。用戶system擁有DBA角色。

一般情況下,一個(gè)普通的用戶(如scott),擁有CONNECT和RESOURCE兩個(gè)角色即可進(jìn)

行常規(guī)的數(shù)據(jù)庫開發(fā)工作,

可以把某個(gè)權(quán)限授予某個(gè)角色,可以把權(quán)限、角色授予某個(gè)用戶。系統(tǒng)權(quán)限只能由DBA

用戶授權(quán),對象權(quán)限由擁有該對象的用戶授權(quán),授權(quán)語法是:

GRANT角色|權(quán)限TO用戶(角色)

比如給Jerry用戶授權(quán)CONNECT和RESOURCE的方法是:

SQL>GRANTCONNECTTOjerry;

授權(quán)成功。

SQL>GRANTRESOURCETOjerry;

授權(quán)成功。

SQL>

I可收權(quán)限的語法是:

REVOKE角色|權(quán)限FROM用戶(角色)

修改用戶的密碼語法是:

ALTERUSER用戶名IDENTIFIEDBY新密碼。

修改用戶處于鎖定(帶鎖定)狀態(tài)

ALTERUSER用戶名ACCOUNTLOCK(UNLOCK

7.本章總結(jié)

Oracle是基于對象的關(guān)系型數(shù)據(jù)庫,Oracle產(chǎn)品免費(fèi),服務(wù)收費(fèi)。

Oracle安裝后默認(rèn)會(huì)有兩個(gè)管理員用戶(system,sys)和,個(gè)普通用戶scott,

>Sql*plus是Oracle管理和數(shù)據(jù)操作的客戶端工具。

客戶端鏈接服務(wù)器前,服務(wù)器要啟動(dòng)監(jiān)聽服務(wù),并且客戶端工具要安裝Oracle客

戶端,并且在客戶端要建立本地網(wǎng)絡(luò)服務(wù)名。

>Oracle服務(wù)和監(jiān)聽啟動(dòng)后才能對數(shù)據(jù)庫進(jìn)行操作。

用startup命令啟動(dòng)數(shù)據(jù)庫,用shutdown命令關(guān)閉數(shù)據(jù)庫。

Oracle的角色包括了一系列系統(tǒng)權(quán)限和普通對象權(quán)限,可以把權(quán)限授權(quán)給角色,把

權(quán)限或者角色授權(quán)給用戶。

8.本章練習(xí)

1.描述Oracle安裝過程中的關(guān)鍵點(diǎn)。

2.描述創(chuàng)建本地網(wǎng)絡(luò)服務(wù)名的步驟。

3.描述Oracle主要服務(wù)的作用。

4.Oracle使用什么命令才能啟動(dòng)和關(guān)閉。

5.什么是Oracle權(quán)限和角色?他們的關(guān)系是什么?

6.創(chuàng)建?個(gè)用戶,并授權(quán)CONNECT和RESOURCE。

章節(jié)知識(shí)結(jié)構(gòu)圖

IOracle簡介Oracle產(chǎn)品免費(fèi),服務(wù)收費(fèi)

服務(wù)名

Oraclehome

Oracle安裝system

sys

Oracle默認(rèn)用戶

scott

iSQL*Plu£-

Oracle客戶端工具SQLPIus命令行

PL/SQLDeveloper

主機(jī)地址

配置本地網(wǎng)絡(luò)服務(wù)名

服務(wù)名

第一章總結(jié)

1本地服務(wù)名

OracleService+服務(wù)名

Oracle常見服務(wù)

Oracle監(jiān)聽服務(wù)

啟動(dòng):startup

Oracle啟動(dòng)和關(guān)閉

關(guān)閉:shutdown

系統(tǒng)權(quán)限

權(quán)限一對象權(quán)限

由若干權(quán)限和其他角色組成

角色

用戶和權(quán)限

權(quán)限可以授權(quán)給角色或用戶

授權(quán)一角色可以授權(quán)給用戶

CONNECT

一個(gè)普通正常用戶擁有的角色RESOURCE

第2章

SQL數(shù)據(jù)操作和查詢

主要內(nèi)容

/Oracle數(shù)據(jù)類型

/SQL建表和約束

/SQL對數(shù)據(jù)增刪改

/SQL查詢

/Oracle偽列

1.SQL簡介

在第一學(xué)期的SQLServer學(xué)習(xí)中,已經(jīng)知道,SQL是結(jié)構(gòu)化查詢語言(StructuredQuery

Language),專門用于數(shù)據(jù)存取、數(shù)據(jù)更新及數(shù)據(jù)庫管理等操作。并且已經(jīng)學(xué)習(xí)了用SQL語

句對數(shù)據(jù)庫的表進(jìn)行增刪改查的操作。

在Oracle開發(fā)中,客戶端把SQL語句發(fā)送給服務(wù)器,服務(wù)器對SQL語句進(jìn)行編譯、執(zhí)行,

把執(zhí)行的結(jié)果返回給客戶瑞。OracleSQL語句由如下命令組成:

數(shù)據(jù)定義語言(DDL),包括CREATE(創(chuàng)建)命令、ALTER(修改)命令、DROP(刪

除)命令等。

數(shù)據(jù)操縱語言(DML),包括INSERT(插入)命令、UPDATE(更新)命令、DELETE

(刪除)命令、SELECT...FORUPDATE(查詢)等。

數(shù)據(jù)查詢語言(DQL),包括基本查詢語句、OrderBy子句、GroupBy子句等。

事務(wù)控制語言(TCL),包括COMMIT(提交)命令、SAVEPOINT(保存點(diǎn))命令、

ROLLBACK(回滾)命令。

數(shù)據(jù)控制語言(DCL),GRANT(授權(quán))命令、REVOKE(撤銷)命令。

目前主流的數(shù)據(jù)庫產(chǎn)品(比如:SQLServer.Oracle)都支持標(biāo)準(zhǔn)的SQL語句。數(shù)據(jù)定義

語言,表的增刪改操作,數(shù)據(jù)的簡單查詢,事務(wù)的提交和回滾,權(quán)限的授權(quán)和撤銷等,Oracle

與SQLServer在操作上基本一致。

2.Oracle數(shù)據(jù)類型

Oracle數(shù)據(jù)庫的核心是表,表中的列使用到的常見數(shù)據(jù)類型如下:

類型含義

CHAR(length)存儲(chǔ)固定長度的字符串.參數(shù)length指定了長度,如果存儲(chǔ)的字符小長

度小于length,用空格填充。默認(rèn)長度是1,最長不超過2000字節(jié)。

VARCHAR2(length)存儲(chǔ)可變長度的字符串。length指定了該字符串的最大長度。默認(rèn)長度

是1,最長不超過4000字符。

NUMBER(p,s)既可以存儲(chǔ)浮點(diǎn)數(shù),也可以存儲(chǔ)整數(shù),p表示數(shù)字的最大位數(shù)(如果是

小數(shù)包括整數(shù)部分和小數(shù)部分和小數(shù)點(diǎn),p默認(rèn)是38為),s走指小數(shù)位

數(shù)。

DATE存儲(chǔ)日期和時(shí)間,存儲(chǔ)紀(jì)元、4位年、月、日、時(shí)、分、秒,存儲(chǔ)時(shí)間

從公元前4712年1月1日到公元后4712年12月31日。

TIMESTAMP不但存儲(chǔ)日期的年月日,時(shí)分秒,以及秒后6位,同時(shí)包含時(shí)區(qū)。

CLOB存儲(chǔ)大的文本,比如存儲(chǔ)非結(jié)構(gòu)化的XML文檔

BLOB存儲(chǔ)二進(jìn)制對象,如圖形、視頻、聲音等。

表1Oracle的部分?jǐn)?shù)據(jù)類型

對應(yīng)NUMBER類型的示例:

格式輸入的數(shù)字實(shí)際的存儲(chǔ)

NUMBER1234.5671234.567

NUMBER(6,2)123.4567123.46

NUMBER(4,2)12345.67輸入的數(shù)字超過了所指定的精度,數(shù)據(jù)庫不能存儲(chǔ)

表2Number示例

對于口期類型,可以使用sysdate內(nèi)置函數(shù)可以獲取當(dāng)前的系統(tǒng)口期和時(shí)間,返回DATE

類型,用systimestamp函數(shù)可以返回當(dāng)前日期、時(shí)間和時(shí)區(qū)。

圖1sysdate和sysTimestamp

Oracle的查詢中,必須使用"select列…from表”的完整語法,當(dāng)查詢單行函數(shù)的時(shí)

候,from后面使用DUAL表,dual表在系統(tǒng)中只有一行一列,該表在輸出單行函數(shù)時(shí)為了

select...from的語法完整性而使用。

3.創(chuàng)建表和約束

Oracle創(chuàng)建表使用CREATETABLE命令。創(chuàng)建豹束使用如下命令:

ALTERTABLE表名ADDCONSTRAINT約束名約束內(nèi)容。

不論創(chuàng)建表還是約束,與SQLServer基本相同,注意:在Oracle中default是一個(gè)值,

而SQLServer中default是一個(gè)約束,因此Oracle的default設(shè)置可以在建表的時(shí)候創(chuàng)建。比

如創(chuàng)建一個(gè)學(xué)生信息表的約束。

代碼演示:Oracle創(chuàng)建表和約束

CREATETABLEINFOS

(

STUIDVARCHAR2⑺NOTNULL,--學(xué)號(hào)學(xué)號(hào)='S'+班號(hào)+2位序號(hào)

STUNAMEVARCHAR2(10)NOTNULL,--姓名

GENDERVARCHAR2(2)NOTNULL,--性別

AGENUMBER(2)NOTNULL,--年齡

SEATNUMBER(2)NOTNULL,--座號(hào)

ENROLLDATEDATE,一入學(xué)時(shí)間

STUADDRESSVARCHAR2(50)DEFAULT'I也址不詳',--住址

CLASSNOVARCHAR2:4)NOTNULL--班號(hào)班號(hào)=學(xué)期序號(hào)+班級(jí)序號(hào)

)

/①

ALTERTABLEINFOSADDCONSTRAINTPK_INFOSPRIMARYKE丫(STUID)②

/

ALTERTABLEINFOSADDCONSTRAINTCK_INFOS_GENDER

CHECK(GENDER='男'ORGENDER=女)③

/

ALTERTABLEINFOSADDCONSTRAINTCK_INFOS_SEAT

CHECK(SEAT>=0ANDSEATv=50)④

/

ALTERTABLEINFOSADDCONSTRAINTCK_INFOS_AGE

CHECK(AGE>=0ANDAGEv=100)⑤

/

ALTERTABLEINFOSADDCONSTRAINTCK_INFOS_CLASSNO

CHECK((CLASSNO>='1001'ANDCLASSNO<='1999')OR

(CLASSNO>='2001'ANDCLASSNO<='2999'))⑥

/

ALTERTABLEINFOSADDCONSTRAINTSUN_STUNAMEUNIQUE(STUNAME)⑦

代碼解析:

在Oracle

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論