版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共交通從業(yè)人員培訓(xùn)考核制度
- 會(huì)議信息發(fā)布與宣傳推廣制度
- 2026年濟(jì)寧市檢察機(jī)關(guān)招聘聘用制書記員的備考題庫(31人)及完整答案詳解1套
- 2026年重慶市永安工程建設(shè)監(jiān)理有限公司貴州分公司備考題庫及一套完整答案詳解
- 四川省大英中學(xué)2025年臨聘教師招聘備考題庫及答案詳解一套
- 中學(xué)學(xué)生社團(tuán)活動(dòng)經(jīng)費(fèi)報(bào)銷制度
- 2026年通海縣衛(wèi)生健康系統(tǒng)公開招聘緊缺崗位醫(yī)生18人備考題庫及答案詳解1套
- 養(yǎng)老院入住老人生活照料培訓(xùn)制度
- 2026年濱州醫(yī)學(xué)院附屬醫(yī)院公開招聘呼吸與危重癥醫(yī)學(xué)科主任助理備考題庫及一套答案詳解
- 企業(yè)員工培訓(xùn)與技能提升制度
- 教學(xué)PPT課件設(shè)計(jì)探究
- 醫(yī)務(wù)人員職業(yè)暴露與職業(yè)防護(hù)
- GB/T 9237-2017制冷系統(tǒng)及熱泵安全與環(huán)境要求
- GB/T 9065.6-2020液壓傳動(dòng)連接軟管接頭第6部分:60°錐形
- GB/T 3906-20203.6 kV~40.5 kV交流金屬封閉開關(guān)設(shè)備和控制設(shè)備
- 2023年電大當(dāng)代中國政治制度機(jī)考拼音排版絕對好用按字母排序
- GB 39669-2020牙刷及口腔器具安全通用技術(shù)要求
- 精益生產(chǎn)試題與答案
- 醫(yī)院關(guān)于主治醫(yī)師晉升前到急診科、重癥醫(yī)學(xué)科輪轉(zhuǎn)鍛煉工作的管理規(guī)定
- L1會(huì)計(jì)研究方法論簡介課件
- 大學(xué)生心理健康教育全套課件
評(píng)論
0/150
提交評(píng)論