Oracle基礎(chǔ)學(xué)習(xí)教程_第1頁
Oracle基礎(chǔ)學(xué)習(xí)教程_第2頁
Oracle基礎(chǔ)學(xué)習(xí)教程_第3頁
Oracle基礎(chǔ)學(xué)習(xí)教程_第4頁
Oracle基礎(chǔ)學(xué)習(xí)教程_第5頁
已閱讀5頁,還剩129頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 走進(jìn) Oracle . ..Oracle簡介 .4Oracle安裝 .5Oracle客戶端工具 .10Oracle服務(wù) .17Oracle啟動和關(guān)閉 .18Oracle用戶和權(quán)限 .19本章總結(jié).22本章練習(xí).23SQL 數(shù)據(jù)操作和查詢. 2..SQL簡介 .27Oracle數(shù)據(jù)類型 .27創(chuàng)建表和約束.28數(shù)據(jù)操縱語言(DML) .31操作符.36高級查詢.37本章總結(jié).45本章練習(xí).46子查詢和常用函數(shù) . 4.5.子查詢.50Oracle中的偽列 .52Oracle函數(shù) .55本章總結(jié).64本章練習(xí).65表空間

2、、數(shù)據(jù)庫對象 . 6..Oracle數(shù)據(jù)庫對象 .69同義詞.69序列.72視圖.74索引.76表空間.78本章總結(jié).82本章練習(xí).83PL/SQL 程序設(shè)計 . 8.5.PL/SQL簡介 .87PL/SQL塊 .88PL/SQL數(shù)據(jù)類型 .92PL/SQL條件控制和循環(huán)控制 .94PL/SQL中動態(tài)執(zhí)行 SQL語句 .104 6.7.8.PL/SQL的異常處理 .106本章總結(jié).112本章練習(xí).113Oracle 應(yīng)用于.Net 平臺. 1.5.回顧 ADO.NET.116使用 ADO.NET連接 Oracle .117抽象工廠

3、中加入 Oracle .121本章總結(jié).126本章練習(xí).127數(shù)據(jù)庫導(dǎo)入導(dǎo)出. 12.Oracle導(dǎo)入導(dǎo)出 .130EXP導(dǎo)出數(shù)據(jù).130IMP導(dǎo)入 .133常見問題.134第 1 章走進(jìn) Oracle主要內(nèi)容ü Oracle 安裝 ü Oracle 創(chuàng)建用戶和角色ü 客戶端鏈接 Oracle 服務(wù)器 1. Oracle 簡介在第一學(xué)期我們已經(jīng)接觸過關(guān)系型數(shù)據(jù)庫 SQL Server,對數(shù)據(jù)庫、表、記錄、表的增刪改查操作等這些基本的概念已經(jīng)了解。Oracle是基于對象的關(guān)系型數(shù)據(jù)庫,Oracle也是用表的形式對數(shù)據(jù)存儲和管理,并且在 Oracle的

4、操作中添加了一些面向?qū)ο蟮乃枷?。Oracle數(shù)據(jù)庫是 Oracle(中文名稱叫甲骨文)公司的核心產(chǎn)品,Oracle數(shù)據(jù)庫是一個適合于大中型企業(yè)的數(shù)據(jù)庫管理系統(tǒng)。在所有的數(shù)據(jù)庫管理系統(tǒng)中(比如:微軟的 SQL Server,IBM的 DB2等),Oracle的主要用戶涉及面非常廣,包括:銀行、電信、移動通信、航空、保險、金融、電子商務(wù)和跨國公司等。Oracle產(chǎn)品是免費(fèi)的,可以在 Oracle官方網(wǎng)站上下載到安裝包,另一方面 Oracle服務(wù)是收費(fèi)的。Oracle公司成立以來,從最初的數(shù)據(jù)庫版本到 Oracle7、Oracle8i、Oracle9i,Oracle10g到 Oracle11g,雖然

5、每一個版本之間的操作都存在一定的差別,但是 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。在 Oracle這本書中,我們能學(xué)習(xí)到:ØØØØØOracle的安裝Oracle數(shù)據(jù)管理常用子查詢及常用函數(shù)PL/SQL編程Oracle基本管理由于在第一學(xué)期已經(jīng)接觸了 SQL

6、Server,Oracle數(shù)據(jù)庫的概念不是很難,主要是實(shí)踐,因此在本書的學(xué)習(xí)中,認(rèn)真的完成上機(jī)練習(xí)是學(xué)習(xí)好本書的關(guān)鍵。接下來我們先從 Oracle安裝開始,接觸一些 Oracle中基本的概念。 2. Oracle 安裝Oracle數(shù)據(jù)庫產(chǎn)品是免費(fèi)的,我們可以從 Oracle的官方網(wǎng)站()下載到程序安裝包,Oracle在 Windows下的安裝非常方便,安裝開始后,一直點(diǎn)擊安裝程序的“下一步”即可。1.下載 Oracle10g后,解壓到一個文件夾下,單擊“setup.exe”文件即可啟動安裝界面。如下圖:圖1 Oracle安裝啟動界面Oracle主目錄位置就是 Oracle準(zhǔn)備安裝的位置,稱為“

7、Oracle_Home”,一般 Oracle根據(jù)當(dāng)前計算機(jī)的硬盤大小默認(rèn)給出一個合適的位置。Oracle安裝時可以只安裝 Oracle軟件,然后單獨(dú)創(chuàng)建數(shù)據(jù)庫,也可以在上圖中選中“創(chuàng)建啟動數(shù)據(jù)庫”復(fù)選框,在安裝 Oracle產(chǎn)品時,同時創(chuàng)建一個數(shù)據(jù)庫,對初學(xué)者來說,推薦這樣安裝。填寫全局?jǐn)?shù)據(jù)庫名,以及管理員的密碼。全局?jǐn)?shù)據(jù)庫名是數(shù)據(jù)庫在服務(wù)器網(wǎng)絡(luò)中的唯一標(biāo)識。2.點(diǎn)擊“下一步”,就會出現(xiàn)如下圖內(nèi)容,開始對 Oracle服務(wù)器進(jìn)行環(huán)境檢查,主要查看服務(wù)器是否符合 Oracle安裝的條件,比如操作系統(tǒng)是否支持、系統(tǒng)內(nèi)存是否符合 Oracle安裝的最低要求等。 圖2 Oracle安裝前環(huán)境檢查3.O

8、racle檢查通過后,單擊“下一步”,就會列出所有安裝 Oracle過程中的默認(rèn)選項(xiàng)。圖3 Oracle默認(rèn)安裝設(shè)置4.單擊“安裝”按鈕,進(jìn)入安裝界面,這一過程經(jīng)歷時間比較長,根據(jù)計算機(jī)的性能不同有很大差別。 圖4 Oracle安裝5.上圖完成后,進(jìn)入了各種 Oracle工具的安裝階段,包括網(wǎng)絡(luò)配置向?qū)?,iSQL*plus等(后面課程中講解)。如下圖所示:圖5 Oracle各種工具的安裝6.接下來自動啟動 DBCA(Database Configuration Assistant)進(jìn)入創(chuàng)建默認(rèn)數(shù)據(jù)庫階段。 圖6 DBCA下安裝數(shù)據(jù)庫Oracle中的數(shù)據(jù)庫主要是指存放數(shù)據(jù)的文件,這些文件在 Or

9、acle安裝完成后,在計算機(jī)硬盤上都能找到,包括數(shù)據(jù)文件、控制文件和數(shù)據(jù)庫日志文件。數(shù)據(jù)庫創(chuàng)建后會有一系列為該數(shù)據(jù)庫提供服務(wù)的內(nèi)存空間和后臺進(jìn)程,稱為該數(shù)據(jù)庫的實(shí)例。每一個數(shù)據(jù)庫至少會有一個實(shí)例為其服務(wù)。實(shí)例中的內(nèi)存結(jié)構(gòu)稱為系統(tǒng)全局區(qū)(SGA),系統(tǒng)會根據(jù)當(dāng)前計算機(jī)系統(tǒng)的性能給 SGA分配非??捎^的內(nèi)存空間。Oracle創(chuàng)建數(shù)據(jù)庫不能像 SQL Server那樣用一個簡單的 CREATE DATABASE命令就能完成,在創(chuàng)建數(shù)據(jù)庫的過程中還需要配置各種參數(shù)。雖然有 DBCA工具向?qū)?,但是仍然需要進(jìn)行比較麻煩的配置。雖然一個 Oracle數(shù)據(jù)庫服務(wù)器中可以安裝多個數(shù)據(jù)庫,但是一個數(shù)據(jù)庫需要占用非

10、常大的內(nèi)存空間,因此一般一個服務(wù)器只安裝一個數(shù)據(jù)庫。每一個數(shù)據(jù)庫可以有很多用戶,不同的用戶擁有自己的數(shù)據(jù)庫對象(比如:數(shù)據(jù)庫表),一個用戶如果訪問其他用戶的數(shù)據(jù)庫對象,必須由對方用戶授予一定的權(quán)限。不同的用戶創(chuàng)建的表,只能被當(dāng)前用戶訪問。因此在 Oracle開發(fā)中,不同的應(yīng)用程序只需使用不同的用戶訪問即可。7.數(shù)據(jù)庫創(chuàng)建完畢后,需要設(shè)置數(shù)據(jù)庫的默認(rèn)用戶。Oracle中為管理員預(yù)置了兩個用戶分別是 SYS和 SYSTEM。同時 Oracle為程序測試提供了一個普通用戶 scott,口令管理中,可以對數(shù)據(jù)庫用戶設(shè)置密碼,設(shè)置是否鎖定。 Oracle客戶端使用用戶名和密碼登錄 Oracle系統(tǒng)后才能

11、對數(shù)據(jù)庫操作。 圖7 DBCA下的口令管理圖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會自動把這些內(nèi)容轉(zhuǎn)換為大寫,因此用戶操作時不需考慮大小寫問題,一般情況下,為了良好的程序風(fēng)格,程序中建議關(guān)鍵字用大寫,非關(guān)鍵字可以使用小寫。3. Oracle 客戶端工具Oracle服

12、務(wù)器安裝成功后,就可以通過客戶端工具連接 Oracle服務(wù)器了,可以到 Oracle官方下載 Oracle專用的客戶端軟件,大多客戶端工具都是基于 Oracle客戶端軟件的。接下來介紹幾種常用的 Oracle客戶端工具。² SQL*Plus 工具該工具是 Oracle系統(tǒng)默認(rèn)安裝下,自帶的一個客戶端工具。在 Windows命令行中輸入“sqlplusw”命令,就能夠啟動該工具了。圖9 SQL*Plus工具輸入用戶名和密碼后,如果 SQL*Plus與數(shù)據(jù)庫服務(wù)器在同一臺計算機(jī)上,并且當(dāng)前服務(wù)器下只有一個數(shù)據(jù)庫實(shí)例,那么“主機(jī)字符串”可以不用填寫。SQL*Plus工具雖然是 Oracle

13、自帶的工具,但是在現(xiàn)實(shí)開發(fā)中,基于該環(huán)境對開發(fā)不方便,因此很少使用。 SQL*Plus連接成功后就如圖所示:圖10 SQL*Plus工具登錄后² SQL*Plus 命令行工具該命令行工具,提供了與數(shù)據(jù)庫交互的能力和維護(hù)數(shù)據(jù)庫的能力,包括了 Oracle自帶的 SQL*Plus工具的全部功能,在 Oracle管理中經(jīng)常使用。在命令行中輸入:“sqlplus /nolog”即可啟動該工具。如下圖:圖11啟動 SQL*Plus命令行工具輸入“sqlplus /nolog”命令后,只是啟動了一個客戶端進(jìn)程,并沒有與服務(wù)器連接,連接到 Oracle服務(wù)器的命令是:conn用戶名/密碼 as連接

14、身份服務(wù)器連接字符串說明:1.連接身份:表示該用戶連接后擁有的權(quán)限。 Øsysdba :即數(shù)據(jù)庫管理員,權(quán)限包括:打開數(shù)據(jù)庫服務(wù)器、關(guān)閉數(shù)據(jù)庫服務(wù)器、備份數(shù)據(jù)庫、恢復(fù)數(shù)據(jù)庫、日志歸檔、會話限制、管理功能、創(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ù)庫、日志歸檔、會話限制。ØØnormal:即普通用戶,權(quán)限只有查詢某些數(shù)據(jù)表的數(shù)據(jù)。默認(rèn)的身份是 normal用戶。2.客戶端工具可以根據(jù)“服務(wù)器連接字符串”對服務(wù)器進(jìn)行連接

15、,有了連接字符串后客戶端就可以像操作本機(jī)一樣操作遠(yuǎn)程數(shù)據(jù)庫,因此“服務(wù)器連接字符串”的配置也叫本地網(wǎng)絡(luò)服務(wù)配置,如果 SQL*Plus工具啟動在服務(wù)器上,并且服務(wù)器上只有一個數(shù)據(jù)庫實(shí)例的情況下,連接字符串可以缺省,在連接字符串中包括連接服務(wù)器的協(xié)議,服務(wù)器的地址,服務(wù)器的端口等設(shè)置,Oracle服務(wù)名等,該配置文件在 Oracle安裝目錄下的: network/ADMIN/ tnsnames.ora。該文件是一個文本文件,用記事本打開后如下所示:圖12服務(wù)器連接字符串配置² 配置本地網(wǎng)絡(luò)服務(wù)名本地網(wǎng)絡(luò)服務(wù)名,即客戶端與服務(wù)器的連接字符串,本地網(wǎng)絡(luò)服務(wù)名是客戶端的配置,Oracle客戶

16、端安裝后,可以使用客戶端自帶的網(wǎng)絡(luò)配置向?qū)В∟et Configuration Assistant)進(jìn)行配置:1.啟動 Net Configuration Assistant。選擇“本地 Net服務(wù)名配置”選項(xiàng)。如下圖所示: 圖13啟動 Net Configuration Assistant2.選擇“下一步”,本步驟可以對本地網(wǎng)絡(luò)服務(wù)名進(jìn)行添加,刪除,測試是否正常連接等操作,選擇“添加”選項(xiàng)。圖14 Net Configuration Assistant3.點(diǎn)擊“下一步”,填寫服務(wù)名,該服務(wù)名就是 Oracle安裝時(圖 1),為數(shù)據(jù)庫取的全局?jǐn)?shù)據(jù)庫名。 圖15服務(wù)名配置4.點(diǎn)擊“下一步”,選

17、擇服務(wù)需要的協(xié)議,默認(rèn)是 TCP協(xié)議。推薦使用默認(rèn)的 TCP協(xié)議。圖16選擇協(xié)議5.點(diǎn)擊“下一步”,輸入主機(jī)名,主機(jī)名可以是計算機(jī)名稱,也可以是一個 IP地址,主機(jī)如果是本機(jī),可以使用本機(jī)計算機(jī)名稱、“l(fā)ocalhost”、“”、或者本機(jī)的 IP地址。 圖17輸入主機(jī)名和端口6.單擊“下一步”,選擇“是,進(jìn)行測試”選項(xiàng)。進(jìn)入下圖界面。圖18測試成功在測試時,默認(rèn)采用的用戶名和密碼是 system/manager進(jìn)行測試,如果用戶 system的密碼不是“manager”,有可能測試通不過,更改登錄后,輸入正確的用戶名和密碼后再進(jìn)行測試即可。7.測試成功后,單擊“下一步”,出現(xiàn)

18、如下界面,這一步是為本地網(wǎng)絡(luò)服務(wù)命名,即圖 12中的服務(wù)器連接字符串名。 圖19為網(wǎng)絡(luò)服務(wù)名命名點(diǎn)擊“下一步”,配置就完成了,進(jìn)入 tnsnames.ora文件中查看,就出現(xiàn)了如圖 12中的內(nèi)容。² PL/SQL Developer 工具在實(shí)際 Oracle開發(fā)中,經(jīng)常使用一個功能強(qiáng)大的第三方工具:“PL/SQL Developer”工具。PL/SQL Developer基本上可以實(shí)現(xiàn) Oracle開發(fā)中的任何操作。它運(yùn)行在客戶端時必須先安裝Oracle客戶端,并且通過網(wǎng)絡(luò)配置向?qū)渲镁W(wǎng)絡(luò)服務(wù)名后才能正常與服務(wù)器連接。圖20 PL/SQL Developer 4. Oracle 服務(wù)

19、Oracle在 windows中安裝完成后,會安裝很多服務(wù),下面介紹幾個主要的服務(wù)。圖21 Oracle服務(wù)ØØOracleService+服務(wù)名,該服務(wù)是數(shù)據(jù)庫啟動的基礎(chǔ),只有該服務(wù)啟動了,Oracle數(shù)據(jù)庫才能正常啟動。這是必須啟動的服務(wù)。OracleOraDb10g_home1TNSListener,該服務(wù)是服務(wù)器端為客戶端提供的監(jiān)聽服務(wù),只有該服務(wù)在服務(wù)器上正常啟動,客戶端才能連接到服務(wù)器。該監(jiān)聽服務(wù)接收客戶端發(fā)出的請求,然后將請求傳遞給數(shù)據(jù)庫服務(wù)器。一旦建立了連接,客戶端和數(shù)據(jù)庫服務(wù)器就能直接通信了。ØOracleOraDb10g_home1iSQL*P

20、lus,該服務(wù)提供了用瀏覽器對數(shù)據(jù)庫中數(shù)據(jù)操作的方式。該服務(wù)啟動后,就可以使用瀏覽器進(jìn)行遠(yuǎn)程登錄并進(jìn)行數(shù)據(jù)庫操作了。如下圖所示: 圖22 iSQL*PlusØOracleDBConsole+服務(wù)名,Oracle10g中的一個新服務(wù)。在 Oracle9i之前,Oracle官方提供了一個基于圖形界面的企業(yè)管理器(EM),從 Oracle10g開始,Oracle提供了一個基于 B/S的企業(yè)管理器,在操作系統(tǒng)的命令行中輸入命令:emctl startdbconsole,就可以啟動 OracleDbConsole服務(wù),如下圖所示:圖23 EM服務(wù)的啟動服務(wù)啟動之后,就可以在瀏覽器中輸入上圖中進(jìn)

21、入 EM的地址,使用 B/S方式管理 Oracle服務(wù)器。5. Oracle 啟勱和關(guān)閉OracleService啟動動后,就可以對數(shù)據(jù)庫進(jìn)行管理了,Oracle的啟動和關(guān)閉是最基本的命令,在 SQL*Plus中,啟動 Oracle必須是 sys用戶,命令格式是: startup open圖24 Oracle服務(wù)啟動Oracle服務(wù)關(guān)閉用命令:shutdown immediate圖25 Oracle服務(wù)關(guān)閉6. Oracle 用戶和權(quán)限Oracle中,一般不會輕易在一個服務(wù)器上創(chuàng)建多個數(shù)據(jù)庫,在一個數(shù)據(jù)庫中,不同的項(xiàng)目由不同的用戶訪問,每一個用戶擁有自身創(chuàng)建的數(shù)據(jù)庫對象,因此用戶的概念在 Or

22、acle中非常重要。Oracle的用戶可以用 CREATE USER命令來創(chuàng)建。其語法是:語法結(jié)構(gòu):創(chuàng)建用戶CREATE USER用戶名 IDENTIFIED BY口令 ACCOUNT LOCK|UNLOCK 語法解析:LOCK|UNLOCK創(chuàng)建用戶時是否鎖定,默認(rèn)為鎖定狀態(tài)。鎖定的用戶無法正常的登錄進(jìn)行數(shù)據(jù)庫操作。代碼演示:創(chuàng)建用戶SQL> CREATE USER jerry2 IDENTIFIED BY tom3 ACCOUNT UNLOCK;Oracle在 SQL*Plus中的命令以分號(;)結(jié)尾,代表命令完畢并執(zhí)行,系統(tǒng)同時會把該命令保存在緩存中,緩存中只保存最近執(zhí)行過的命令,如

23、果重新執(zhí)行緩存中的命令,直接使用左斜杠符號(/)。如果命令不以分號結(jié)尾,該命令只是寫入緩存保存起來,但并不執(zhí)行。盡管用戶成功創(chuàng)建,但是還不能正常的登錄 Oracle數(shù)據(jù)庫系統(tǒng),因?yàn)樵撚脩暨€沒有任何權(quán)限。如果用戶能夠正常登錄,至少需要 CREATE SESSION系統(tǒng)權(quán)限。Oracle用戶對數(shù)據(jù)庫管理或?qū)ο蟛僮鞯臋?quán)利,分為系統(tǒng)權(quán)限和數(shù)據(jù)庫對象權(quán)限。系統(tǒng)權(quán)限比如:CREATE SESSION,CREATE TABLE等,擁有系統(tǒng)權(quán)限的用戶,允許擁有相應(yīng)的系統(tǒng)操作。數(shù)據(jù)庫對象權(quán)限,比如對表中的數(shù)據(jù)進(jìn)行增刪改操作等,擁有數(shù)據(jù)庫對象權(quán)限的用戶可以對所擁有的對象進(jìn)行對應(yīng)的操作。還有一個概念就是數(shù)據(jù)庫角色(

24、role),數(shù)據(jù)庫角色就是若干個系統(tǒng)權(quán)限的集合。下面介紹幾個常用角色:ØØØCONNECT角色,主要應(yīng)用在臨時用戶,特別是那些不需要建表的用戶,通常只賦予他們 CONNECT role。CONNECT是使用 Oracle的簡單權(quán)限,擁有 CONNECT角色的用戶,可以與服務(wù)器建立連接會話(session,客戶端對服務(wù)器連接,稱為會話)。RESOURCE角色,更可靠和正式的數(shù)據(jù)庫用戶可以授予 RESOURCE role。RESOURCE提供給用戶另外的權(quán)限以創(chuàng)建他們自己的表、序列、過程(procedure)、觸發(fā)器(trigger)、索引(index)等。DBA角色

25、,DBA role擁有所有的系統(tǒng)權(quán)限-包括無限制的空間限額和給其他用戶授予各種權(quán)限的能力。用戶 SYSTEM擁有 DBA角色。一般情況下,一個普通的用戶(如 SCOTT),擁有 CONNECT和 RESOURCE兩個角色即可進(jìn)行常規(guī)的數(shù)據(jù)庫開發(fā)工作。 可以把某個權(quán)限授予某個角色,可以把權(quán)限、角色授予某個用戶。系統(tǒng)權(quán)限只能由 DBA用戶授權(quán),對象權(quán)限由擁有該對象的用戶授權(quán),授權(quán)語法是:語法結(jié)構(gòu):授權(quán)GRANT角色|權(quán)限 TO用戶(角色)代碼演示:授權(quán)SQL> GRANT CONNECT TO jerry;授權(quán)成功。SQL> GRANT RESOURCE TO jerry;授權(quán)成功。S

26、QL>語法結(jié)構(gòu):其他操作/回收權(quán)限REVOKE角色|權(quán)限 FROM用戶(角色)/修改用戶的密碼ALTER USER用戶名 IDENTIFIED BY新密碼/修改用戶處于鎖定(非鎖定)狀態(tài)ALTER USER用戶名 ACCOUNT LOCK|UNLOCK 7. 本章總結(jié)ØØØØOracle是基于對象的關(guān)系型數(shù)據(jù)庫,Oracle產(chǎn)品免費(fèi),服務(wù)收費(fèi)。Oracle安裝后默認(rèn)會有兩個管理員用戶(system,sys)和一個普通用戶 Scott。Sql*plus是 Oracle管理和數(shù)據(jù)操作的客戶端工具。客戶端鏈接服務(wù)器前,服務(wù)器要啟動監(jiān)聽服務(wù),并且客戶端工具

27、要安裝 Oracle客戶端,并且在客戶端要建立本地網(wǎng)絡(luò)服務(wù)名。ØØØOracle服務(wù)和監(jiān)聽啟動后才能對數(shù)據(jù)庫進(jìn)行操作。用 startup命令啟動數(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使用什么命令才能啟動和關(guān)閉。5.什么是 Oracle權(quán)限和角色?他們的關(guān)系是什么?6.創(chuàng)建一個用戶,并授權(quán) CONNECT和 RESO

28、URCE。 章節(jié)知識結(jié)構(gòu)圖 第 2 章SQL 數(shù)據(jù)操作和查詢主要內(nèi)容ü Oracle 數(shù)據(jù)類型ü SQL 建表和約束ü SQL 對數(shù)據(jù)增刪改ü SQL 查詢ü Oracle 偽列 1. SQL 簡介在第一學(xué)期的 SQL Server學(xué)習(xí)中,已經(jīng)知道,SQL是結(jié)構(gòu)化查詢語言(Structured QueryLanguage),專門用于數(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é)果返回給客戶端

29、。Oracle SQL語句由如下命令組成:Ø數(shù)據(jù)定義語言(DDL),包括 CREATE(創(chuàng)建)命令、ALTER(修改)命令、DROP(刪除)命令等。Ø數(shù)據(jù)操縱語言(DML),包括 INSERT(插入)命令、UPDATE(更新)命令、DELETE(刪除)命令、SELECT FOR UPDATE(查詢)等。ØØ數(shù)據(jù)查詢語言(DQL),包括基本查詢語句、Order By子句、Group By子句等。事務(wù)控制語言(TCL),包括 COMMIT(提交)命令、SAVEPOINT(保存點(diǎn))命令、ROLLBACK(回滾)命令。Ø數(shù)據(jù)控制語言(DCL),GRAN

30、T(授權(quán))命令、REVOKE(撤銷)命令。目前主流的數(shù)據(jù)庫產(chǎn)品(比如:SQL Server、Oracle)都支持標(biāo)準(zhǔn)的 SQL語句。數(shù)據(jù)定義語言,表的增刪改操作,數(shù)據(jù)的簡單查詢,事務(wù)的提交和回滾,權(quán)限的授權(quán)和撤銷等,Oracle與 SQL Server在操作上基本一致。2. Oracle 數(shù)據(jù)類型Oracle數(shù)據(jù)庫的核心是表,表中的列使用到的常見數(shù)據(jù)類型如下:類型含義CHAR(length)存儲固定長度的字符串。參數(shù) length指定了長度,如果存儲的字符串長度小于 length,用空格填充。默認(rèn)長度是 1,最長不超過 2000字節(jié)。存儲可變長度的字符串。length指定了該字符串的最大長度。

31、默認(rèn)長度是 1,最長不超過 4000字符。VARCHAR2(length)NUMBER(p,s)既可以存儲浮點(diǎn)數(shù),也可以存儲整數(shù),p表示數(shù)字的最大位數(shù)(如果是小數(shù)包括整數(shù)部分和小數(shù)部分和小數(shù)點(diǎn),p默認(rèn)是 38為),s是指小數(shù)位數(shù)。DATE存儲日期和時間,存儲紀(jì)元、4位年、月、日、時、分、秒,存儲時間 從公元前 4712年 1月 1日到公元后 4712年 12月 31日。不但存儲日期的年月日,時分秒,以及秒后 6位,同時包含時區(qū)。存儲大的文本,比如存儲非結(jié)構(gòu)化的XML文檔存儲二進(jìn)制對象,如圖形、視頻、聲音等。TIMESTAMPCLOBBLOB表1 Oracle的部分?jǐn)?shù)據(jù)類型對應(yīng) NUMBER類型

32、的示例:格式輸入的數(shù)字實(shí)際的存儲NUMBER1234.567123.456712345.671234.567123.46NUMBER(6,2)NUMBER(4,2)輸入的數(shù)字超過了所指定的精度,數(shù)據(jù)庫不能存儲表2 Number示例對于日期類型,可以使用 sysdate內(nèi)置函數(shù)可以獲取當(dāng)前的系統(tǒng)日期和時間,返回 DATE類型,用 systimestamp函數(shù)可以返回當(dāng)前日期、時間和時區(qū)。圖1 sysdate和 sysTimestampOracle的查詢中,必須使用“select列 from表”的完整語法,當(dāng)查詢單行函數(shù)的時候,from后面使用 DUAL表,dual表在系統(tǒng)中只有一行一列,該表在輸

33、出單行函數(shù)時為了selectfrom的語法完整性而使用。3. 創(chuàng)建表和約束Oracle創(chuàng)建表同 SQL Server一樣,使用 CREATE TABLE命令來完成。創(chuàng)建約束則使用如下命令: 語法格式:ALTER TABLE 命令A(yù)LTER TABLE表名 ADD CONSTRAINT約束名約束內(nèi)容。不論創(chuàng)建表還是約束,與 SQL Server基本相同,注意:在 Oracle中 default是一個值,而 SQL Server中 default是一個約束,因此 Oracle的 default設(shè)置可以在建表的時候創(chuàng)建。案例 1:創(chuàng)建一個學(xué)生信息(INFOS)表和約束代碼演示:Oracle 創(chuàng)建表和

34、約束CREATE TABLE INFOS(STUID VARCHAR2(7) NOT NULL,STUNAME VARCHAR2(10) NOT NULL, -姓名-學(xué)號學(xué)號=S+班號+2位序號GENDER VARCHAR2(2) NOT NULL,AGE NUMBER(2) NOT NULL,SEAT NUMBER(2) NOT NULL,-性別-年齡-座號ENROLLDATE DATE,-入學(xué)時間STUADDRESS VARCHAR2(50) DEFAULT '地址不詳',-住址-班號班號=學(xué)期序號+班級序號CLASSNO VARCHAR2(4) NOT NULL)/ALT

35、ER TABLE INFOS ADD CONSTRAINT PK_INFOS PRIMARY KEY(STUID)/ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_GENDERCHECK(GENDER = '男' OR GENDER = '女')/ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_SEATCHECK(SEAT >=0 AND SEAT <=50)/ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_AGECHECK(AGE >=

36、0 AND AGE<=100)/ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_CLASSNOCHECK(CLASSNO >='1001' AND CLASSNO<='1999') OR(CLASSNO >='2001' AND CLASSNO<='2999')/ ALTER TABLE INFOS ADD CONSTRAINTS UN_STUNAME UNIQUE(STUNAME)/代碼解析:在 Oracle代碼中,“/”執(zhí)行緩存區(qū)中的語句,由于緩沖區(qū)中只存儲一條

37、剛剛保存過語句,由于每條語句沒有用分號結(jié)尾,只是保存在緩沖區(qū),因此每條語句后面都有單獨(dú)一行“/”。創(chuàng)建一個主鍵約束。與一起創(chuàng)建各種 check約束。其中是唯一約束,表示該列值是唯一的,列中的值不能重復(fù)。Oracle中創(chuàng)建外鍵約束與 SQL Server相同。比如:現(xiàn)有成績表定義如下:案例 2:創(chuàng)建一個成績表(SCORES)表和約束代碼演示:Oracle 創(chuàng)建表和約束CREATE TABLE SCORES(ID NUMBER ,-IDTERM VARCHAR2(2),-學(xué)期 S1或S2-學(xué)號STUID VARCHAR2(7) NOT NULL,EXAMNO VARCHAR2(7) NOT NULL,-考號 E+班號+序號WRITTENSCORE NUMBER(4,1) NOT NULL, -筆試成績LABSCORE NUMBER(4,1) NOT NULL -機(jī)試成績)ALTER TABLE SCORESADD CONSTRAIN

溫馨提示

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

評論

0/150

提交評論