WEB數(shù)據(jù)庫原理與應用-學習情境3(3)_第1頁
WEB數(shù)據(jù)庫原理與應用-學習情境3(3)_第2頁
WEB數(shù)據(jù)庫原理與應用-學習情境3(3)_第3頁
WEB數(shù)據(jù)庫原理與應用-學習情境3(3)_第4頁
WEB數(shù)據(jù)庫原理與應用-學習情境3(3)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、任務4 Oracle 10g 數(shù)據(jù)庫及其應用掌握Oracle 10g、安裝、基本操作,及其建表、數(shù)據(jù)庫關系圖、查詢、視圖、存儲過程、函數(shù)、觸發(fā)器等操作。按照網絡商店數(shù)據(jù)庫結構完成相關練習操作?;顒? 認識Oracle 10g Oracle 10g的基本介紹和特點ORACLE 數(shù)據(jù)庫系統(tǒng)是美國ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產品,是目前最流行的客戶/服務器(CLIENT/SERVER或B/S體系結構的數(shù)據(jù)庫之一。比如SilverStream就是基于數(shù)據(jù)庫的一種中間件。ORACLE數(shù)據(jù)庫是目前世界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),作為一個通用的數(shù)據(jù)庫系統(tǒng),它具有完整的數(shù)

2、據(jù)管理功能;作為一個關系數(shù)據(jù)庫,它是一個完備關系的產品;作為分布式數(shù)據(jù)庫它實現(xiàn)了分布式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。Oracle 具有如下特點 1、完整的數(shù)據(jù)管理功能: 數(shù)據(jù)的大量性 數(shù)據(jù)的保存的持久性 數(shù)據(jù)的共享性 數(shù)據(jù)的可靠性 2、完備關系的產品: 信息準則-關系型DBMS的所有信息都應在邏輯上用一中方法,即表中的值顯式地表示; 保證訪問的準則 視圖更新準則-只要形成視圖的表中的數(shù)據(jù)變化了,相應的視圖中的數(shù)據(jù)同時變化 數(shù)據(jù)物理性和邏輯性獨立準則 3、分布式處理功能: 4、用ORACLE能輕松的實現(xiàn)數(shù)據(jù)倉庫的操作。這是一個技術

3、發(fā)展的趨勢,不在這里討論。活動2 Oracle 10g 安裝 首先將ORACLE 10g的安裝光盤放入光驅,自動運行,會出現(xiàn)下圖安裝界面。 安裝-安裝方法界面在這里你要指定自己的安裝方法,ORACLE提供了兩種安裝方法:選擇安裝方法包括:基本安裝(I)和高級安裝(A) 基本安裝(I):使用標準配置選項(需要輸入的內容最少)執(zhí)行完整的10g安裝。注意:此選項使用文件系統(tǒng)進行存儲,并將一個口令用于所有數(shù)據(jù)庫帳戶(SYS、SYSTEM、SYSMAN、DBSNMP)。要設置安裝的主目錄、安裝類型和創(chuàng)建啟動數(shù)據(jù)庫。 高級安裝(A):高級選項,為不同的帳戶設置不同的口令,選擇數(shù)據(jù)庫語言,產品語言,自動備份

4、,定制安裝以及備用存儲選項(自動存儲管理)。選擇基本安裝,數(shù)據(jù)數(shù)據(jù)庫口令和確認口令,如圖3-35所示:圖 3-35 Oracle 10 安裝方法選擇 選擇下一步,測試產品安裝的先決條件,如圖3-36所示圖 3-36 Oracle 10 安裝產品特定的先決條件檢查 選擇下一步,顯示安裝信息,如圖3-37所示:圖 3-37 Oracle 10 安裝概述 選擇安裝,系統(tǒng)進入安裝界面,如圖3-38所示:圖 3-38 Oracle 10 安裝界面 選擇下一步,進入到安裝配置界面,如圖3-39所示:圖 3-39 Oracle 10 數(shù)據(jù)庫安裝 進入口令管理界面,如圖3-40所示。圖 3-40 Oracle

5、 10 口令管理對SYS,SYSTEM 進行口令管理,輸入新的密碼,同時對用戶scott用戶名輸入新的密碼tiger,并且激活用戶。 安裝結束,顯示已安裝產品,這時服務器端安裝就已經完成,如圖3-41所示:圖 3-41 Oracle 10 安裝完成活動3 Oracle 10g 卸載Oracle 10g 安裝是個比較麻煩的事情,讀者可以按照下面的步驟,卸載Oracle 10g。卸載步驟: 開始設置控制面板管理工具服務> 停止所有Oracle服務。(沒有起動的就不用停用了 開始程序Oracle - OraDb10g_home1Oracle Installation ProductsUnive

6、rsal Installer卸裝所有Oracle產品;(不要按下一步,在上面有一個卸載產品點那個按扭! 運行regedit,選擇HKEY_LOCAL_MACHINESOFTWAREORACLE,按del鍵刪除這個入口。如果是別的盤那就找到它刪除! 運行regedit,選擇HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices,滾動這個列表,刪除所有Oracle入口 如果你按裝是用的默認的目錄在C盤下有一個以ORACLE命名的文件夾,刪除它! 重新啟動計算機,重起后才能完全刪除Oracle所在目錄 刪除與Oracle有關的文件,選擇Oracle所在的缺

7、省目錄C:Oracle,刪除這個入口目錄及所有子目錄, 并從Windows 2000目錄(一般為C:WINNT)下刪除以下文件 WIN.INI文件中若有ORACLE的標記段,刪除該段活動4 PL/SQL 安裝與使用PL/SQL(Procedural Language/SQL)是甲骨文公司專有的SQL擴展語言,應用在甲骨文公司的Oracle數(shù)據(jù)庫系統(tǒng)。一些的SQL數(shù)據(jù)庫管理系統(tǒng)也提供了類似的擴展SQL語言。 安裝PL/SQL,點擊plsqldev.exe 啟動安裝向導,選擇提取存放的位置,一路下一步即可,中文補丁可以到官方下載,如圖3-42所示:圖 3-42 PL/SQL 安裝界面 PL/SQL

8、 安裝成功,如下圖3-43所示。圖 3-43 PL/SQL 安裝完成 安裝完成以后,桌面出現(xiàn)如下圖標,單擊PL/SQL,可以進行賬戶登錄,如圖3-44所示。圖 3-44 啟動 PL/SQL 活動5 Oracle 10g 應用 創(chuàng)建數(shù)據(jù)庫安裝完成Oracle數(shù)據(jù)庫服務器后,就可以根據(jù)需要在數(shù)據(jù)庫服務器中創(chuàng)建數(shù)據(jù)庫。一個完整的數(shù)據(jù)庫通常由物理結構、邏輯結構、內存結構和進程結構等構成。 選擇“開始->程序->Oracle->配置和移植工具-> Database Configuration Assistant”,啟動DBCA(DBCA提供典型的數(shù)據(jù)庫類型標準模板,如下圖3-45

9、所示。圖 3-45 啟動 Database Configuration Assistant選擇“Database Configuration Assistant”出現(xiàn)如下圖3-46窗體所示圖 3-46 Database Configuration Assistant主界面 點擊“下一步”按鈕,進入下圖的操作選擇對話框,選擇要進行的操作,如圖3-47所示。圖 3-47 Database Configuration Assistant 創(chuàng)建數(shù)據(jù)庫在該對話框中選擇“創(chuàng)建數(shù)據(jù)庫”。 選擇創(chuàng)建數(shù)據(jù)庫,單擊“下一步”,出現(xiàn)下圖所示的數(shù)據(jù)庫模板選擇對話框,如圖3-48所示。圖 3-48 Database C

10、onfiguration Assistant 數(shù)據(jù)庫模板選擇 選擇“一般用途”,單擊“下一步”按鈕,進入下圖所示,進入數(shù)據(jù)庫標識設置對話框,如圖3-49所示。圖 3-49 Database Configuration Assistant 數(shù)據(jù)庫標識設置“全局數(shù)據(jù)庫名”和“SID” 使用Enterprise Manager配置數(shù)據(jù)庫。這里選擇默認,單擊“下一步”,如圖3-50所示。圖 3-50 Database Configuration Assistant 管理選項 設置數(shù)據(jù)庫身份證明,如圖3-51所示。圖 3-51 Database Configuration Assistant 數(shù)據(jù)庫身份

11、驗證選擇“所有賬戶使用同一口令”,輸入口令 選擇數(shù)據(jù)庫的存儲機制,如圖3-52所示。圖 3-52 Database Configuration Assistant 存儲選項使用默認選擇的“文件系統(tǒng)” 指定要創(chuàng)建的數(shù)據(jù)庫文件的位置,如圖3-53所示。圖 3-53 Database Configuration Assistant 數(shù)據(jù)庫文件位置設置選擇默認的“使用模板中的數(shù)據(jù)庫文件位置”。 默認選擇數(shù)據(jù)庫恢復選項。如圖3-54所示。圖 3-54 Database Configuration Assistant 恢復配置 創(chuàng)建示例方案,如圖3-55所示。圖 3-55 Database Configu

12、ration Assistant 示例數(shù)據(jù)庫這里不選擇創(chuàng)建“示例方案” 初始化參數(shù)設置,如圖3-56所示:圖 3-56 Database Configuration Assistant 初始化參數(shù)所有參數(shù)選擇默認設置。 設置完成數(shù)據(jù)庫相關初始化參數(shù)后,進入數(shù)據(jù)庫存儲設置對話框。在該對話框中,可以進行與數(shù)據(jù)庫物理結構和邏輯存儲相關的設置,能夠查看或修改數(shù)據(jù)庫控制文件、表空間數(shù)據(jù)文件、重做日志等存儲結構的信息,如圖3-57所示。圖 3-57 Database Configuration Assistant 數(shù)據(jù)庫存儲設置 創(chuàng)建數(shù)據(jù)庫,如圖3-58所示。圖 3-58 Database Configu

13、ration Assistant 數(shù)據(jù)庫創(chuàng)建選項單擊“完成”,完成Oracle數(shù)據(jù)庫創(chuàng)建工作,如圖3-59所示。圖 3-59 Database Configuration Assistant 數(shù)據(jù)庫安裝界面 數(shù)據(jù)庫創(chuàng)建完成以后,顯示創(chuàng)建完成結果,可以進入口令管理對用戶的口令進行設置,便于管理,如圖3-60所示。圖 3-60 Database Configuration Assistant 數(shù)據(jù)庫安裝完成口令管理如下圖所示,設置Scott用戶名的口令,并解鎖,如圖3-61所示:圖 3-61 Oracle10 數(shù)據(jù)庫口令管理 數(shù)據(jù)庫創(chuàng)建完成以后,可以使用PL/SQL用Scott打開數(shù)據(jù)庫,如圖3-

14、62所示:圖 3-62 PL/SQL 登錄界面 登陸成功如下圖3-63所示。圖 3-63 PL/SQL 登錄主界面 根據(jù)需求創(chuàng)建用戶表根據(jù)學習情境2,任務6 數(shù)據(jù)庫的設計舉例里面的活動2 E-R圖的設計,完成數(shù)據(jù)表的創(chuàng)建工作。數(shù)據(jù)庫名稱:Shopping表名: 客戶信息表(bClient字段名稱英文名稱類型長度客戶編號(GUIDUser_ID整數(shù)客戶姓名User_Name字符串類型30性別User_Sex字符串類型4出生日期User_Birthday日期類型VIP客戶類型User_Type整數(shù)地址User_Address字符串類型100聯(lián)系電話User_Tel字符串類型20表名: 客戶訂單表(

15、bOrder字段名稱英文名稱類型長度訂單編號Order_ID整數(shù)50下單日期Order_Date日期類型客戶編號User_ID整數(shù)50商品編號Goods_ID整數(shù)50訂單金額Order_Money雙精度數(shù)值12,2表名: 商品信息表(bGoods字段名稱英文名稱類型長度商品編號Goods_ID整數(shù)50商品名稱Goods_Name字符串類型50價格Goods_Price雙精度數(shù)值12,2 創(chuàng)建bClient數(shù)據(jù)表,如下圖所示。在左面的工具欄選擇“Tables”,單擊右鍵,選擇“New”,在Name輸入表名,如圖3-64所示。圖 3-64 PL/SQL 創(chuàng)建表這里表名是:bClient,字段類型設

16、置如下圖3-65所示。圖 3-65 PL/SQL 編輯表結構表主鍵設置如下圖,選擇user_id設置為表的主鍵,如圖3-66所示。圖 3-66 PL/SQL 編輯表主鍵SQL腳本創(chuàng)建如下:- Create tablecreate table BCLIENT(USER_ID INTEGER not null,USER_NAME NVARCHAR2(30,USER_SEX NVARCHAR2(4,USER_BIRTHDAY DATE,USER_TYPE INTEGER,USER_ADDRESS NVARCHAR2(100,USER_TEL NVARCHAR2(20tablespace USERSp

17、ctfree 10initrans 1maxtrans 255storage(initial 64Kminextents 1maxextents unlimited;- Create/Recreate primary, unique and foreign key constraints alter table BCLIENTadd constraint USER_ID_KEY primary key (USER_IDusing index tablespace USERSpctfree 10initrans 2maxtrans 255storage(initial 64Kminextents

18、 1maxextents unlimited; 創(chuàng)建客戶訂單表(bOrder,如下圖3-67所示圖 3-67 PL/SQL 編輯客戶訂單表SQL 腳本如下:- Create tablecreate table BORDER(ORDER_ID INTEGER not null,ORDER_DATE DATE,USER_ID INTEGER,GOODS_ID INTEGER,ORDER_MONEY NUMBER(12,2tablespace USERSpctfree 10initrans 1maxtrans 255storage(initial 64Kminextents 1maxextents

19、unlimited;- Create/Recreate primary, unique and foreign key constraints alter table BORDERadd constraint KEY_ORDER_ID primary key (ORDER_IDusing index tablespace USERSpctfree 10initrans 2maxtrans 255storage(initial 64Kminextents 1maxextents unlimited; 創(chuàng)建商品信息表(bGoods,如下圖3-68所示圖 3-68 PL/SQL 編輯商品信息表SQL

20、 腳本如下:- Create tablecreate table BGOODS(GOODS_ID INTEGER not null,GOODS_NAME VARCHAR2(100,GOODS_PRISE NUMBER(12,2tablespace USERSpctfree 10initrans 1maxtrans 255storage(initial 64Kminextents 1maxextents unlimited;- Create/Recreate primary, unique and foreign key constraints alter table BGOODSadd con

21、straint KEY_GOODS_ID primary key (GOODS_IDusing index tablespace USERSpctfree 10initrans 2maxtrans 255storage(initial 64Kminextents 1maxextents unlimited; 創(chuàng)建視圖視圖是基于一張表或多張表或另外一個視圖的邏輯表。視圖不同于表,視圖本身不包含任何數(shù)據(jù)。表是實際獨立存在的實體,是用于存儲數(shù)據(jù)的基本結構。而視圖只是一種定義,對應一個查詢語句。視圖的數(shù)據(jù)都來自于某些表,這些表被稱為基表。通過視圖來查看表,就像是從不同的角度來觀察一個(或多個表。 視圖

22、有如下一些優(yōu)點: 可以提高數(shù)據(jù)訪問的安全性,通過視圖往往只可以訪問數(shù)據(jù)庫中表的特定部分,限制了用戶訪問表的全部行和列。 簡化了對數(shù)據(jù)的查詢,隱藏了查詢的復雜性。視圖的數(shù)據(jù)來自一個復雜的查詢,用戶對視圖的檢索卻很簡單。 一個視圖可以檢索多張表的數(shù)據(jù),因此用戶通過訪問一個視圖,可完成對多個表的訪問。 視圖是相同數(shù)據(jù)的不同表示,通過為不同的用戶創(chuàng)建同一個表的不同視圖,使用戶可分別訪問同一個表的不同部分。 視圖可以在表能夠使用的任何地方使用,但在對視圖的操作上同表相比有些限制,特別是插入和修改操作。對視圖的操作將傳遞到基表,所以在表上定義的約束條件和觸發(fā)器在視圖上將同樣起作用。因為scott/tige

23、r沒有創(chuàng)建視圖的權限,所以需要使用system或sys用戶登陸,使用命令,為scott用戶分配創(chuàng)建視圖的權限。grant create view to scott在scott賬戶下創(chuàng)建用戶訂單視圖,SQL腳本如下:CREATE VIEW 用戶訂單create or replace view 用戶定單 asSELECT bOrder.Order_ID AS 訂單號碼, bOrder.Order_Date AS 下單日期, bOrder.User_ID AS 用戶編號, bClient.User_Name AS 用戶姓名, bClient.User_Tel AS 用戶電話, bClient.Use

24、r_Address AS 用戶地址, bGoods.Goods_Name AS 商品名稱, bOrder.Order_Money AS 訂單金額FROM bClient RIGHT OUTER JOIN bOrder ON bClient.User_ID = bOrder.User_ID 顯示結果如下圖3-69所示。圖 3-69 PL/SQL SQL 腳本編輯界面 數(shù)據(jù)表基本操作 用戶表插入新用戶Insert into bClient(User_ID,User_Name,User_Sex,User_Birthday,User_Type,User_Address,User_Telvalues (

25、1,'張三','男',to_date('1980-01-01','yyyy-mm-dd',1,注意:在使用Oracle的to_date函數(shù)來做日期轉換,例如下面的ORACLE SQL腳本Select to_date('2010-01-01 13:14:20','yyyy-MM-dd HH:mm:ss' from dual;24小時的形式顯示出來要用HH24Select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss' from dual;/mi是分鐘Se

26、lect to_char(sysdate,'yyyy-MM-dd HH24:mm:ss' from dual;/mm會顯示月份 商品表增加商品Insert into bGoods(Goods_ID,Goods_Name,Goods_Prisevalues (1,'聯(lián)想筆記本',2800.5;Insert into bGoods(Goods_ID,Goods_Name,Goods_Prisevalues (2,'蘋果MP3',120; 用戶訂單表增加用戶新的訂單Insert into bOrder(Order_ID,Order_Date,User_

27、ID,Goods_ID,Order_Moneyvalues (1,to_date('2010-04-29','yyyy-mm-dd',1 ,1,160; 修改用戶訂單表里面訂單編號為”1”的商品的價格為180元update bOrderset Order_Money=180where Order_ID=1 刪除用戶訂單表里面訂單編號為”1”的訂單信息delete from bOrder where Order_ID=1 查詢視圖” 用戶定單”,里面訂單號碼為”1”的訂單Select * from 用戶定單 where 訂單號碼=1查詢結果如下圖3-70所示圖 3

28、-70 SQL 查詢用戶訂單 創(chuàng)建存儲過程 修改用戶編號為”1”的姓名為”李四”,同時把該用戶的所有訂單在現(xiàn)在的訂單費用的基礎上減少10%, create or replace procedure update_Fun(p_User_ID in number,p_UserName in varchar2isbeginsavepoint point1; /*/*保存點*/update bClient set User_Name=p_UserName where User_ID=p_User_ID;update bOrder set Order_Money=Order_Money*0.9 wher

29、e bOrder.User_Id=p_User_ID;commit;savepoint point2;exceptionwhen others thenrollback to savepoint point1; /*/*異常處理,保存點下面的操作都不會被執(zhí)行*/return;end;調用存儲過程,SQL腳本如下。begin- Call the procedureupdate_fun(p_user_id => 1,p_username => '李四 'end; 查詢用戶定單視圖,統(tǒng)計總定單金額Select 用戶編號,用戶姓名,sum(訂單金額 as 訂單總金額from

30、 用戶定單group by 用戶編號,用戶姓名; 創(chuàng)建觸發(fā)器Oracle 對用戶主鍵不提供自動加1的功能,例如:商品表bGoods,商品編號Goods_ID需要自動加1。這里需要對商品表bGoods創(chuàng)建觸發(fā)器,Goods_ID字段完成自動加1的功能。在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。create sequence SE_RECORD_Goodsminvalue 1maxvalue 99999999999999999999999start with 41increment by 1cache 20;在bGoods表創(chuàng)建觸發(fā)

31、器create or replace trigger Tr_RECORD_Goodsbefore Insert on bGoodsfor each rowbeginSelect SE_RECORD_Goods.nextval into :new.Goods_ID from dual;end;這樣對商品表bGoods執(zhí)行插入操作的時候,Goods_ID會在現(xiàn)在Goods_ID最大值的基礎上加1。 應用游標創(chuàng)建自定義函數(shù),使用自定義函數(shù),查詢指定區(qū)間的訂單數(shù)據(jù)。首先創(chuàng)建types 結構定義為OBJECT,bOrder_type 結構與bOrder表結構一致。CREATE OR REPLACE TYPE bOrder_type AS OBJECT(Order_ID integer,Order_Date date,User_ID integer,Goods_ID integer,Order_Money number(12,2然后對類型進行說明 O

溫馨提示

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

評論

0/150

提交評論