太原理工大學(xué)Oracle試驗(yàn)報(bào)告0001_第1頁(yè)
太原理工大學(xué)Oracle試驗(yàn)報(bào)告0001_第2頁(yè)
太原理工大學(xué)Oracle試驗(yàn)報(bào)告0001_第3頁(yè)
太原理工大學(xué)Oracle試驗(yàn)報(bào)告0001_第4頁(yè)
太原理工大學(xué)Oracle試驗(yàn)報(bào)告0001_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)由本人當(dāng)時(shí)親自完成 僅供參考,希望可以幫助大家 實(shí)驗(yàn)報(bào)告 課程名稱(chēng): 大型數(shù)據(jù)庫(kù)系統(tǒng) 實(shí)驗(yàn)項(xiàng)目: Oracle 實(shí)用教程 實(shí)驗(yàn)地點(diǎn): 逸夫樓 202 專(zhuān)業(yè)班級(jí): 00000000 班 學(xué)號(hào):00000000 學(xué)生姓名: 氣宇軒昂 指導(dǎo)教師: 2013 年13 月 13 日 太原理工大學(xué)實(shí)驗(yàn)報(bào)告 學(xué)院名稱(chēng) 軟件學(xué)院 專(zhuān)業(yè)班級(jí) 0000 實(shí)驗(yàn)成績(jī) 學(xué)生姓名 氣宇軒昂 學(xué)號(hào) 000000000 實(shí)驗(yàn)日期 13/13 課程名稱(chēng) Oracle 實(shí)驗(yàn)題目 Oracle11g的安裝與配置與創(chuàng)建表 實(shí)驗(yàn)內(nèi)容及完成情況: 一、實(shí)驗(yàn)?zāi)康暮鸵?1、了解數(shù)據(jù)庫(kù)的結(jié)構(gòu)以及一些基本概念。 2、安裝 Oracle 的

2、軟件,學(xué)會(huì)使用大型數(shù)據(jù)庫(kù)的軟件 3、了解表的結(jié)構(gòu)特點(diǎn)。 4、了解 Oracle 的基本數(shù)據(jù)類(lèi)型。 5、學(xué)會(huì)使用 DBCA 創(chuàng)建數(shù)據(jù)庫(kù)。 6、學(xué)會(huì)使用界面方式創(chuàng)建表。 7、學(xué)會(huì)使用 SQL 語(yǔ)句手工創(chuàng)建數(shù)據(jù)庫(kù)。 8、學(xué)會(huì)使用 SQL 語(yǔ)句創(chuàng)建表。 1、首先要明確,能夠創(chuàng)建數(shù)據(jù)庫(kù)的用戶(hù)必須是系統(tǒng)管理員,或是被授使用CREATE DATABASE 語(yǔ)句的用戶(hù)。 2、其次創(chuàng)建數(shù)據(jù)庫(kù)必須要確定數(shù)據(jù)庫(kù)名、 所有者 (及創(chuàng)建數(shù)據(jù)庫(kù)的用戶(hù)) 、數(shù)據(jù)庫(kù)大小、 SGA 分配和存儲(chǔ)數(shù)據(jù)庫(kù)文件。 3、然后,確定數(shù)據(jù)庫(kù)包含哪些表以及所包含的各表的結(jié)構(gòu),還要了解Oracle11g 的常 DBCA 創(chuàng)建和使用 PL/SQL

3、 的 用數(shù)據(jù)類(lèi)型,以創(chuàng)建數(shù)據(jù)庫(kù)的表。 4、此外還要了解兩種常用的數(shù)據(jù)庫(kù)、表的方法,即利用 CREATE DATABASE 語(yǔ)句創(chuàng)建。 二、實(shí)驗(yàn)內(nèi)容和原理 創(chuàng)建企業(yè)管理的員工管理數(shù)據(jù)庫(kù) YGGL ,包含 Employees (員工自然信息)表、 Departments(部門(mén)信息)表和 Salary(員工薪水情況)表。各表的結(jié)構(gòu)如下圖所示。 表 T1.1 Employees 表結(jié)構(gòu) 列名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 是否允許為空 說(shuō)明 Employees Char 6 員工編號(hào),主鍵 Name Char 10 姓名 Birthday Date 出生日期 Sex Number 1 性別 Address Char

4、 20 地址 Zip Char 6 郵編 PhoneNumber Char 12 電話號(hào)碼 DpartmentID Char 3 員工部門(mén)號(hào),外鍵 表 T1.2 Departments 表結(jié)構(gòu) 列名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 是否允許為空 說(shuō)明 DepartmentID Char 3 部門(mén)編號(hào),主鍵 DepartmentName Char 20 部門(mén)名 Note Varchar2 100 備注 表 T1.3 Salary 表結(jié)構(gòu) 列名 數(shù)據(jù)類(lèi)型 長(zhǎng)度 是否允許為空 說(shuō)明 EmployeesID Char 6 員工編號(hào),主鍵 InCome Number 8,2 收入 Outcome Numer 8,2 支

5、出 三、主要儀器設(shè)備 Oracle。 Pc 電腦一臺(tái),并且安裝好 四、實(shí)驗(yàn)結(jié)果與分析 1.數(shù)據(jù)庫(kù)的安裝配置 安裝的過(guò)程: 圖 1.1 安裝 1 圖 1.2 安裝 2 圖 1.3 安裝 3 圖 1.4 安裝 4 圖 1.5 安裝 5 安裝好后的界面 OEM的界面: 圖 1.6 oem 的登錄界面 圖 1.7 打開(kāi)后的 oem SqlDeveloper 的界面: 2.利用 DBCA 創(chuàng)建數(shù)據(jù)庫(kù) 以下提示信息說(shuō)明數(shù)據(jù)庫(kù) YYGL 創(chuàng)建成功。 3.在 OEM 中分別創(chuàng)建表 啟動(dòng)數(shù)據(jù)庫(kù) YYGL 的 OEM 頁(yè)面,使用 SYSTEM 用戶(hù)登錄,在“方案”屬性頁(yè)中選擇 表”,單擊鼠標(biāo)左鍵,再出現(xiàn)的“表搜索

6、”頁(yè)面上單擊“創(chuàng)建”按鈕,進(jìn)入“創(chuàng)建表”頁(yè) 面,在該頁(yè)面的各個(gè)選項(xiàng)卡上輸入表 Employees 各個(gè)字段信息、 約束條件、 分區(qū)和存儲(chǔ)情況 等設(shè)置,單擊“確定”按鈕即可完成創(chuàng)建, Department 和 Salary 的創(chuàng)建與上相同。 如上就是創(chuàng)建表的頁(yè)面,當(dāng)出現(xiàn)下圖時(shí),表示,創(chuàng)建成功。 Departmens 和 Sarary 的創(chuàng)建與 Emploryees 相同。 4.在 OEM 中刪除已創(chuàng)建的表 點(diǎn)擊“使用選項(xiàng)刪除”出現(xiàn)下圖: 選擇第一項(xiàng),并且選中刪除所有引用完整性約束條件,就可以徹底刪除表。 面就用另一種工具 SQL Developer 去實(shí)現(xiàn)表的創(chuàng)建和刪除! 3.在 SQL Dev

7、eloper 中創(chuàng)建表 (1) 應(yīng)該創(chuàng)建一個(gè)連接,也就是說(shuō)用SQL Developer 連接到 YGGL 數(shù)據(jù)庫(kù),連接成功后會(huì)提 如上圖,表示 Emploryees 創(chuàng)建成功。 口中輸入表名 Emploryees ,選中 Adcanced”復(fù)選框,設(shè)置表 Emploryees 的各個(gè)列及約束 條件,單擊“確定”按鈕完成表 Emploryees。 完成好表的創(chuàng)建后,列表中就會(huì)有 Emploryees 的相應(yīng)信息,如下圖: 表 Departments 和表 Salary 的創(chuàng)建與創(chuàng)建表 Emploryees 相同。 示連接成功,并且可以出現(xiàn) yggl_ora 連接 YGGL 的所有列表,如圖: (

8、2)展開(kāi) yggl_ora 連接,右擊“ Table”節(jié)點(diǎn)選擇“ New Table ”菜單項(xiàng),在“ Create Table”窗 4. 使用 SQL Developer 刪除表 展開(kāi)“ Table”節(jié)點(diǎn),找到表 Emploryees,右擊鼠標(biāo),選擇“ Table”菜單項(xiàng)下的“ Drop ”子 菜單項(xiàng),在彈出的確認(rèn)對(duì)話框中單擊“應(yīng)用”按鈕即可刪除 Emploryees 表。 如上圖,點(diǎn)擊“應(yīng)用”后再“確定”就完成刪除了! 5. 使用 PL/SQL 語(yǔ)句創(chuàng)建表 打開(kāi) SQL/Plus ,連接到 system,然后鍵入相應(yīng)的創(chuàng)建表語(yǔ)句即可,如下圖: 如上圖所示,三個(gè)表都創(chuàng)建成功了,用 PL/SQL

9、 刪除表的操作是 DROP TABLE table_name , 在這里就不演示了,因?yàn)楝F(xiàn)在創(chuàng)建的表為下次實(shí)驗(yàn)使用。 五、討論、心得 通過(guò)這一節(jié)的實(shí)驗(yàn)首先我學(xué)會(huì)了如何安裝 Oracle ,安裝后由于 Oracle 占 用內(nèi)存很大,所以還學(xué)會(huì)了啟動(dòng) Oracle 所需要啟動(dòng)的服務(wù),這樣在不用 Oracle 的時(shí)候可以節(jié)省內(nèi)存,提高計(jì)算機(jī)運(yùn)行速率,再者就是學(xué)會(huì)了用 Oracle 提供的 DBCA 創(chuàng)建數(shù)據(jù)庫(kù),最后學(xué)會(huì)的是用三種工具如何創(chuàng)建和刪除一張表,其中我 認(rèn)為雖然 SQL Developer 使用起來(lái)更方便,更高效,但是對(duì)于軟件專(zhuān)業(yè)的我們 必須熟練用 SQL/Plus 去執(zhí)行各種命令,有時(shí)圖形

10、界面所提供的功能是很有限的, 而且如果想要提高數(shù)據(jù)庫(kù)的效率,有時(shí)在管理中為了不占用大量?jī)?nèi)存,只提供 控制臺(tái)的方式去管理數(shù)據(jù)庫(kù)。 教師簽字: 太原理工大學(xué)實(shí)驗(yàn)報(bào)告 學(xué)院名稱(chēng) 軟件學(xué)院 專(zhuān)業(yè)班級(jí) 0000 實(shí)驗(yàn)成績(jī) 學(xué)生姓名 氣宇軒昂 學(xué)號(hào) 000000000 實(shí)驗(yàn)日期 13/13 課程名稱(chēng) Oracle 實(shí)驗(yàn)題目 表的修改查詢(xún),視圖操作,索引 實(shí)驗(yàn)內(nèi)容及完成情況: 一、實(shí)驗(yàn)?zāi)康暮鸵?1、學(xué)會(huì)使用 PL/SQL 語(yǔ)句對(duì)數(shù)據(jù)庫(kù)表進(jìn)行插入、修改和刪除數(shù)據(jù)的操作。 2、學(xué)會(huì)使用 SQL/Developer 對(duì)數(shù)據(jù)庫(kù)表進(jìn)行插入、修改和刪除數(shù)據(jù)的操作。 3、了解數(shù)據(jù)更新操作時(shí)要注意數(shù)據(jù)完整性。 4、了解

11、PL/SQL 語(yǔ)句對(duì)表數(shù)據(jù)操作的靈活控制功能。 1、掌握 SELECT 語(yǔ)句的基本語(yǔ)法。 2、掌握子查詢(xún)的表示方法。 3、掌握鏈接查詢(xún)的表示方法。 4、掌握數(shù)據(jù)匯總的方法。 5、掌握 SELECT 語(yǔ)句的 GROUP BY 子句的作用和使用方法。 6、掌握 SELECT 語(yǔ)句的 ORDER BY 子句的作用和使用方法。 7、掌握視圖的使用方法。 1、了解 SELECT 語(yǔ)句的基本語(yǔ)法格式和執(zhí)行方法。 2、了解子查詢(xún)的表示方法、連接查詢(xún)和數(shù)據(jù)匯總的方法。 3、了解 SELECT 語(yǔ)句的 GROUP BY 子句的作用和使用方法。 4、了解 SELECT 語(yǔ)句的 ORDER BY 子句的作用。 5、

12、了解視圖的作用和創(chuàng)建視圖的方法。 6、了解視圖的使用方法。 1、首先了解對(duì)表數(shù)據(jù)的插入、刪除、修改都屬于表數(shù)據(jù)的更新操作。對(duì)表數(shù)據(jù)的操作 可以在 SQL Developer 中進(jìn)行,也可以有 PL/SQL 語(yǔ)句實(shí)現(xiàn)。 INSERT 、 2、其次要掌握 PL/SQL 中用于對(duì)表數(shù)據(jù)進(jìn)行插入、修改和刪除的命令分別是 UPDATE 、DELETE (或 TRANCA TE TABLE )。 3、要特別注意在執(zhí)行插入、刪除、修改等數(shù)據(jù)更新操作時(shí),必須保證數(shù)據(jù)完整性。 4、此外,還要了解使用 PL/SQL 語(yǔ)句對(duì)表數(shù)據(jù)進(jìn)行插入、修改及刪除時(shí),比在 SQL Developer 中操作表數(shù)據(jù)更靈活,功能更強(qiáng)

13、大。 二、實(shí)驗(yàn)內(nèi)容和原理 分別使用 SQL Deveploper 和 PL/SQL 語(yǔ)句,在實(shí)驗(yàn) 1 建立的數(shù)據(jù)庫(kù) YGGL 的三個(gè)表 Employees、 Departments 和 Salary 中分別插入多行數(shù)據(jù)記錄,然后修改和刪除一些記錄。 使用 PL/SQL 進(jìn)行有限的修改和刪除。 在實(shí)驗(yàn) 1 中,用于實(shí)驗(yàn)的 YGGL 數(shù)據(jù)庫(kù)中的三個(gè)表已經(jīng)建立,現(xiàn)在要講各表的樣本數(shù) 據(jù)添加到表中。樣本數(shù)據(jù)如表 T2.1 、表 T2.2 和表 T2.3 所示。 表 T2.1 Employees 表數(shù)據(jù)樣本 編號(hào) 姓名 出生日期 性別 住址 郵編 電話號(hào)碼 部門(mén)號(hào) 000001 王林 1966-01-2

14、3 1 中山路 32-1-508 210003 83355668 2 010008 伍容華 1976-03-28 1 北京東路 100-2 210001 83321321 1 020010 王向容 1982-12-09 1 四牌樓 10-0-108 210006 83792361 1 020018 李麗 1960-07-30 0 中山東路 102-2 210002 83413301 1 102201 劉明 1972-10-18 1 虎距路 100-2 210003 83606608 5 102208 朱俊 1965-09-28 1 牌樓巷 5-3-106 210004 84708817 5 1

15、08991 鐘敏 1979-08-10 0 中山路 10-3-106 210003 83346722 3 111006 張石兵 1974-10-01 1 解放路 34-1-203 210010 84563418 5 210678 林濤 1977-04-02 1 中山北路 24-35 210008 83467336 3 302566 李玉珉 1968-09-20 1 熱河路 209-3 210001 58765991 4 308759 葉凡 1978-11-18 1 北京西路 3-7-52 210002 83308901 4 504209 陳琳琳 1969-09-03 0 漢中路 120-4-1

16、2 210018 84468158 4 表 T2.2 Departments 表數(shù)據(jù)樣本 部門(mén)號(hào) 部門(mén)名稱(chēng) 備注 部門(mén)號(hào) 部門(mén)名稱(chēng) 備注 1 財(cái)務(wù)部 NULL 4 研發(fā)部 NULL 2 人力資源部 NULL 5 市場(chǎng)部 NULL 3 經(jīng)理辦公室 NULL 表 T2.3 Salary 表數(shù)據(jù)樣本 編號(hào) 收入 支出 編號(hào) 收入 支出 000001 2100.8 123.09 108991 3259.98 281.52 010008 1582.62 88.03 020010 2860.0 198.0 102201 2569.88 185.65 308759 2347.68 180.0 111006

17、1987.01 79.58 308759 2531.98 199.08 504209 2066.15 108.0 210678 2240.0 121.0 302566 2980.7 210.2 102208 1980.0 100.0 三、主要儀器設(shè)備 Pc 電腦一臺(tái) ,并且安裝好 Oracle。 四、實(shí)驗(yàn)結(jié)果與分析 1.使用 SQL Developer 操作數(shù)據(jù) SQL 文件,相當(dāng)于 SQl 腳本,有 用命令行的方式在 Employees 中插入數(shù)據(jù),要注意先建立 了這個(gè)腳本語(yǔ)言, 我們就不用每插一條記錄就提供一條命令, 而是可以把想插入的數(shù)據(jù)一次 性的用腳本語(yǔ)言表達(dá)出來(lái),如下圖 操作結(jié)果是

18、Employees 中插入例如所需要的數(shù)據(jù), 如圖: 2.用 SQL Developer 圖形界面的方式去插入數(shù)據(jù) 這是 Departments 表,用圖形界面的方式插入,這樣做的好處是比較直觀,一旦插入之后很 容易修改,效率更高。 3.用 PL/SQL 命令操作數(shù)據(jù) 如下圖: 寫(xiě)代碼不能提高修改數(shù)據(jù)的效率, 還是不容易, 而且邏輯思維亂套的話很容易造成不必要的錯(cuò)誤, 面看看輸入這些命令后插 入數(shù)據(jù)的情況,如下圖: 和第一種相比, 感覺(jué)是差不多, 總的來(lái)說(shuō)命令行修改數(shù)據(jù) 如上圖,這是 Salary 表,看見(jiàn)很是繁瑣,因?yàn)閷?xiě)完一行之后必須得執(zhí)行,這樣一行一行的 這樣三個(gè)表的數(shù)據(jù)已經(jīng)插入數(shù)據(jù)成功!

19、 4.使用 PL/SQL 命令修改表 Salary 中的某個(gè)記錄的字段值 從上圖可以看出更新的數(shù)據(jù)同步在 SQL Developer 中也改變了。 5.使用 DELETE 語(yǔ)句刪除 Salary 表中一行記錄。 從上圖可以看書(shū)操作成功! 查詢(xún): 1.SELECT 語(yǔ)句的基本使用 (1)對(duì)于實(shí)驗(yàn) 2 給出的數(shù)據(jù)庫(kù)表結(jié)構(gòu),查詢(xún)每個(gè)雇員的所有數(shù)據(jù)。 6.使用 TRUNCATE TABLE 語(yǔ)句刪除 Salary 表中所有行。 注意:由于在 PL/SQL 中顯示的行感覺(jué)很亂,而且使用 set linesize 和 set pagesize 也起不到 好的效果,所以這里就用 SQL Developer

20、中的命令行代替 PL/SQL ,其實(shí)效果是 樣的。 從上圖中可以看出 Salary 中的所有記錄都被刪除了。 這里指查詢(xún)表 Employees,表 Dpartments 和表 Salary 的查詢(xún)類(lèi)似) (2)查詢(xún)每個(gè)雇員的地址和電話。 (3) 查詢(xún) EmployeesID 問(wèn) 000001 的雇員的地址和電話。 (4)查詢(xún) Employees 表中所有女雇員的地址和電話,是有as 子句將結(jié)果中各列的標(biāo)題分別指 定為地址和電話。 (5)計(jì)算給個(gè)雇員的實(shí)際收入。 (6)找出所有姓王的雇員的部門(mén)號(hào)。 2. 子查詢(xún)的使用 (1)查找財(cái)務(wù)部工作的雇員情況 (7) 找出所有收入在 2000 元3000

21、元之間的雇員號(hào)碼。 (2)查找財(cái)務(wù)部年齡不低于所有研發(fā)部雇員年齡的雇員的名字。 繁瑣。下面根據(jù)書(shū)中提供的答案對(duì)照一下。 從寫(xiě)的 SQL 語(yǔ)句來(lái)看,思路一致。 (3)查找比所有財(cái)務(wù)部的雇員收入都高的雇員的姓名。 這是我自己想的查詢(xún)方法, 不僅用了子查詢(xún), 還用了把查詢(xún)到的結(jié)果作為表來(lái)處理, 有點(diǎn)而 如下圖 3. 連接查詢(xún) (1)查詢(xún)每個(gè)雇員的情況及薪水的情況。 (2) 查詢(xún)財(cái)務(wù)部收入在 2200 元以上的雇員姓名及其薪水詳情。 4. 數(shù)據(jù)匯總 (1)求財(cái)務(wù)部雇員的平均收入 用書(shū)上的方法也可得出正確結(jié)果,如下圖: 書(shū)上的方法采用的是子查詢(xún)的方法, 但是自我認(rèn)為這種方法邏輯性很強(qiáng), 表少的話可以很容

22、 易的想到, 但是當(dāng)表過(guò)大的話用這種方法就顯得比較繁瑣, 所以我覺(jué)的把所有的表整合起來(lái) 查詢(xún)比較好理解,而且條件也比較明了。 (2)求財(cái)務(wù)部雇員的平均實(shí)際收入。 這個(gè)題上上一個(gè)題沒(méi)有什么區(qū)別只需要做很小的改動(dòng)就 OK 了,如下圖: (3)求財(cái)務(wù)部雇員的總?cè)藬?shù)。 5. GROUP BY 和 ORDER BY 子句的使用 (1)求各部門(mén)的雇員數(shù)。 書(shū)上的 SQL 語(yǔ)句只是簡(jiǎn)單的統(tǒng)計(jì)了一下各部門(mén)的人數(shù),但沒(méi)有對(duì)應(yīng)各個(gè)部門(mén)人數(shù)的情況, 表意不明確。 (2)將各雇員的情況按收入由低到高排列 在寫(xiě)之前先寫(xiě)一下思路, 查詢(xún)按兩張表查詢(xún), 然后根據(jù)題中所要求的按收入的由低到高排列, 用到 ORDER BY 子

23、句,如下圖: 6. 使用視圖 (1)創(chuàng)建視圖 1 限制查看雇員的某些情況。 如限制財(cái)務(wù)部經(jīng)理想查看自己部門(mén)雇員 并且在 SQL Developer view 下也有此視圖 2 限制各部門(mén)經(jīng)歷只能查找本部門(mén)雇員的薪水情況, 姓名及其薪水詳情。 (2)使用視圖 1 查詢(xún)財(cái)務(wù)部雇員薪水情況 視圖也可以限制查詢(xún)。 2 查詢(xún)雇員信息 3 向表 Employees 中插入一條記錄 通過(guò)上圖可知,插入成功! 4 將張無(wú)忌從經(jīng)理辦公室轉(zhuǎn)到市場(chǎng)部 5 把張無(wú)忌從表 Employees 中刪除 索引: 1. 建立索引 對(duì) YGGL 數(shù)據(jù)庫(kù)中 Employees 表的 DepartmentID 列建立索引。 從上兩

24、個(gè)圖可以看出,創(chuàng)建索引成功! 2. 實(shí)現(xiàn)域完整性 為 YGGL 數(shù)據(jù)庫(kù)中的 Employees 表的 PhoneName 列建立 check 約束 3.實(shí)現(xiàn)實(shí)體完整性 (1) 創(chuàng)建一個(gè)新表 Departments0 (2) 為表 Departments0 的 Departments0name 列建立唯一性索引 (4)實(shí)現(xiàn)參照完整性 由上表可以看出 Departments0id 設(shè)為主鍵,并且取名為 PK_Departments0 。 在 Employees 表中的 DepartmentID 列建立外鍵 五、討論、心得 從這節(jié)實(shí)驗(yàn)中我學(xué)會(huì)了用兩種不同的工具插入數(shù)據(jù), 因?yàn)樵谇捌诓迦霐?shù)據(jù) 較多所以

25、在這里我只說(shuō)在插入數(shù)據(jù)時(shí)所遇到的問(wèn)題, 和解決的方案, 當(dāng)我用 SQL Developer 插入數(shù)據(jù)時(shí)很不留神的就點(diǎn)擊了提交,結(jié)果在 PL/SQL 上查詢(xún)的時(shí)候 可以查詢(xún)到所需要的結(jié)果,當(dāng)我用 PL/SQL 插入數(shù)據(jù)時(shí)在 SQL Developer 中卻 找不到想得到的結(jié)果,而在 PL/SQL 中卻能得到結(jié)果,然后我以為是電腦出問(wèn) 題了,重新啟動(dòng)后又是同樣的問(wèn)題, 當(dāng)自己要放棄的時(shí)候才想起自己在操作 SQL Developer 時(shí)每次都需要提交,之后我在 PL/SQL 鍵入 commit 后問(wèn)題解決了, 也許這就是這節(jié)實(shí)驗(yàn)最大的收獲,因?yàn)樽约好靼琢嗽诟聰?shù)據(jù)時(shí)必須慎重,否 則會(huì)出現(xiàn)意想不到的結(jié)

26、果,所以 Oracle 才提供了提交機(jī)制,我不知道其他數(shù)據(jù) 庫(kù)有沒(méi)有這種機(jī)制,但是很有必要!但是 truncate 這個(gè)命令是不需要提交的, 只要在 PL/SQL 執(zhí)行后立即生效,唉,白寫(xiě)了很多數(shù)據(jù) 關(guān)于后邊的刪除記錄 和更新都是一個(gè)道理, 挺好的, 不知不覺(jué)又明白了一個(gè)小知識(shí)點(diǎn)。 但是,在 SQL Developer 中使用導(dǎo)入 excle 數(shù)據(jù)還有很多問(wèn)題, 解決了 n 長(zhǎng)時(shí)間沒(méi)有能夠解決, 希望在下幾節(jié)實(shí)驗(yàn)中可以解決這個(gè)問(wèn)題。 通過(guò)這節(jié)實(shí)驗(yàn)首先對(duì)我的邏輯思維是個(gè)考驗(yàn), 對(duì)于單表的各種查詢(xún)還沒(méi)問(wèn) 題,但對(duì)于多表查詢(xún)邏輯性就相對(duì)有點(diǎn)兒高,但是通過(guò)不停的練習(xí),在實(shí)驗(yàn)過(guò) 程中基本不看答案,先寫(xiě)下

27、自己的思路,然后在和書(shū)上的對(duì)照,這點(diǎn)在實(shí)驗(yàn)中 可以看出,有些查詢(xún)的思路基本和書(shū)上的不一致,還有一點(diǎn)我想說(shuō)的是,這種 查詢(xún)的力度還遠(yuǎn)遠(yuǎn)不夠,因?yàn)槲疑婕斑^(guò)將查詢(xún)后的結(jié)果當(dāng)成又一個(gè)表查詢(xún)的, 而且在條件相同的情況下,我們練習(xí)的只是一個(gè)字段相同,沒(méi)有涉及到多個(gè)字 段,最后我得到的一點(diǎn)啟發(fā)是子查詢(xún)?cè)诒砗苌俚那闆r下用比較好,如果表較多 的情況下建議不實(shí)用多級(jí)嵌套子查詢(xún),而是直接根據(jù)想等條件連接表。視圖這 個(gè)概念在大二學(xué)習(xí)的時(shí)候不是很清晰,但通過(guò)本次實(shí)驗(yàn)也是頗有感想,他控制 了用戶(hù)對(duì)表的隨意操作。 本次實(shí)驗(yàn)我學(xué)會(huì)了如何創(chuàng)建索引,如何實(shí)現(xiàn)完整性約束,如何修改約束條 件,但是還是練習(xí)的有點(diǎn)兒少,而且對(duì)這節(jié)實(shí)驗(yàn)中

28、建立索引后所涉及的參數(shù)有 的不懂,還在迷糊階段,總的來(lái)說(shuō)還需在這個(gè)環(huán)節(jié)繼續(xù)投入精力才能夠掌握到 一定程度! 教師簽字: 太原理工大學(xué)實(shí)驗(yàn)報(bào)告 學(xué)院名稱(chēng) 軟件學(xué)院 專(zhuān)業(yè)班級(jí) 0000 實(shí)驗(yàn)成績(jī) 學(xué)生姓名 氣宇軒昂 學(xué)號(hào) 0000000000 實(shí)驗(yàn)日期 13/13 課程名稱(chēng) Oracle 實(shí)驗(yàn)題目 用戶(hù)管理權(quán)限和顯示游標(biāo) 實(shí)驗(yàn)內(nèi)容及完成情況: 一、實(shí)驗(yàn)?zāi)康暮鸵?1、掌握數(shù)據(jù)庫(kù)的安全性能。 2、掌握使用用戶(hù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全性。 3、掌握使用概要文件實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全性。 1、了解數(shù)據(jù)庫(kù)安全性管理。 2、了解數(shù)據(jù)庫(kù)安全性包括的幾個(gè)方面。 3、了解使用用戶(hù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全性的方法。 4、了解使用角色實(shí)現(xiàn)數(shù)據(jù)庫(kù)

29、安全性的方法。 5、了解使用概要文件實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全性的方法。 1、了解游標(biāo)的使用方法。 2、熟練使用游標(biāo)。 二、主要儀器設(shè)備 Pc 電腦一臺(tái),并且安裝好 Oracle 。 三、實(shí)驗(yàn)內(nèi)容與結(jié)果以及分析 說(shuō)明:這節(jié)實(shí)驗(yàn)用 SQL/Plus 來(lái)做,因?yàn)檫@節(jié)的實(shí)驗(yàn)結(jié)果數(shù)據(jù)量不大,而且提示信息簡(jiǎn) 單,且運(yùn)行方便。 1. 創(chuàng)建用戶(hù) 在 YGGL 數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)用戶(hù) MANAGER ,授予 DBA 角色和 SYSDBA 系統(tǒng)權(quán)限, 它可以代替 system 系統(tǒng)用戶(hù)。 (1)創(chuàng)建用戶(hù),并初始化 (2)賦予用戶(hù)權(quán)限 最后一個(gè)替代 system 系統(tǒng)用戶(hù)不能授權(quán),不知為何。 2.創(chuàng)建角色 在 YGGL 數(shù)據(jù)庫(kù)

30、中創(chuàng)建一個(gè)角色 admin,授予 dba 角色和 sysdba系統(tǒng)權(quán)限 (2)授權(quán) 系統(tǒng)權(quán)限不能夠授權(quán),內(nèi)置角色卻可以授權(quán)。 3. 創(chuàng)建概要文件 在 YGGL 數(shù)據(jù)庫(kù)中創(chuàng)建概要文件 YGGL PROFILE 并分配給用戶(hù) manager 1. 使用游標(biāo)和 loop 循環(huán)來(lái)顯示所有部門(mén)的名稱(chēng); 說(shuō)明:如上圖所示用游標(biāo)打印出相關(guān)信息。 2. 接受用戶(hù)輸入的部門(mén)編號(hào),用 for 循環(huán)和游標(biāo),顯示此部門(mén)的所有雇員的所有信息。 說(shuō)明:在對(duì)話框中輸入 1,得到上面的結(jié)果。 五、討論、心得 實(shí)驗(yàn)主要涉及到用戶(hù)管理, 或者說(shuō)是系統(tǒng)管理, 涉及到數(shù)據(jù)庫(kù)的安全問(wèn)題, 我覺(jué)得學(xué)好管理學(xué)這個(gè)應(yīng)該不是個(gè)問(wèn)題,因?yàn)樽晕艺J(rèn)

31、為管理方式都是實(shí)際生活 中的管理方式,我覺(jué)的還是得學(xué)精這些東西吧,在學(xué)校學(xué)習(xí)的時(shí)間真的很有限, 感覺(jué)只學(xué)了一點(diǎn)點(diǎn),但是基礎(chǔ)是根本,打好這個(gè)基礎(chǔ)以后學(xué)什么都變的很容易 了! 通過(guò)這一節(jié)的實(shí)驗(yàn)我學(xué)會(huì)了如何使用游標(biāo), 在實(shí)驗(yàn)過(guò)程中問(wèn)題沒(méi)有遇到什 么,只是學(xué)會(huì)動(dòng)態(tài)的輸入變量的方法,總之還是得熟練! 教師簽字: 太原理工大學(xué)實(shí)驗(yàn)報(bào)告 學(xué)院名稱(chēng) 軟件學(xué)院 專(zhuān)業(yè)班級(jí) 0000 實(shí)驗(yàn)成績(jī) 學(xué)生姓名 氣宇軒昂 學(xué)號(hào) 0000000000 實(shí)驗(yàn)日期 13/13 課程名稱(chēng) Oracle 實(shí)驗(yàn)題目 創(chuàng)建存儲(chǔ)過(guò)程和函數(shù)以及觸發(fā)器 實(shí)驗(yàn)內(nèi)容及完成情況: 一、實(shí)驗(yàn)?zāi)康暮鸵?1、掌握變量的分類(lèi)及其使用。 2、掌握各種運(yùn)算符

32、的使用。 3、掌握各種控制語(yǔ)句的使用。 1、了解 PL/SQL 支持的各種基本數(shù)據(jù)類(lèi)型。 2、了解 PL/SQL 各種運(yùn)算符、控制語(yǔ)句的功能及使用方法。 3、了解系統(tǒng)函數(shù)的調(diào)用方法。 4、了解用戶(hù)自定義函數(shù)使用的一般步驟。 1、了解存儲(chǔ)過(guò)程的使用方法。 2、理解數(shù)據(jù)完整性的概念及分類(lèi)。 3、了解觸發(fā)器的類(lèi)型。 4、了解觸發(fā)器的使用方法。 二、主要儀器設(shè)備 Pc 電腦一臺(tái),并且安裝好 Oracle 。 三、實(shí)驗(yàn)內(nèi)容與結(jié)果以及分析 說(shuō)明:由于用到課本中的幾個(gè)表,所以我提前已經(jīng)建立好了那幾個(gè)表,并且插好了數(shù) 據(jù),可以方便使用。 1.條件結(jié)構(gòu)的使用 (1)查詢(xún)總學(xué)分大雨 50 的學(xué)生人數(shù)。 SQL D

33、eveloper 工具更容易操作 說(shuō)明:用 SQL/Plus 也可以得出同樣的結(jié)果,但是,使用 均成績(jī)小于 75 (2)判斷計(jì)算機(jī)系總學(xué)分大于 40的人數(shù)是否超過(guò) 10 人。 在者,用 SQL Developer 是要打開(kāi)輸出緩沖。 (3) 如果“數(shù)據(jù)庫(kù)原理”課程的平均成績(jī)高與75,則顯示“平均成績(jī)大于 75”,否則顯示“平 (4)求 X 2+4X+3=0 的根。 這道題的目的其實(shí)實(shí)質(zhì)不是要我們?nèi)チ私?SQL 語(yǔ)句,反而是要我們借著這個(gè)題去熟練的掌 握 PL/SQL 的條件控制語(yǔ)句, 用我們初中學(xué)過(guò)的公式然后得出最后結(jié)果, 而且得出的任何解 都有條件制約,如下圖的程序: 2. 循環(huán)結(jié)構(gòu)的使用

34、(1)求 10 的階乘。 (2)用 loop-exit-when-end 求 10 的循環(huán)。 (3) 用 while-loop-end 循環(huán)結(jié)構(gòu)求 10 的階乘。 (4) 用 for-in-loop-end 循環(huán)結(jié)構(gòu)求 10 的階乘。 結(jié)果同樣和上邊的結(jié)果一致! 3. 選擇和跳轉(zhuǎn)語(yǔ)句 (1)case 語(yǔ)句的應(yīng)用。 (2) 設(shè)有一表 temp(xh char(6),xb char(2),xm char(8) ,初始化表 temp。 4. 自定義函數(shù)的使用 (1) 定義一個(gè)函數(shù)實(shí)現(xiàn)如下功能。 對(duì)于給定的 DepartmentID 值,查詢(xún)?cè)撝翟?Departments 表中 是否存在。若存在返回

35、0,否則返回 -1。 (2) 寫(xiě)一段 PL/SQL 腳本程序調(diào)用上述函數(shù)。 當(dāng)向 Employees 表插入一條記錄時(shí), 首先調(diào)用函 數(shù) check_id 檢索該記錄的 DepartmentID 值在表 Dpartments 的 Departmentid 字段中是否存在 對(duì)應(yīng)值,若存在,則將該記錄插入 Employees 表。 1. 創(chuàng)建觸發(fā)器 對(duì)于 YGGL 數(shù)據(jù)庫(kù),表 Empolyees 的 DepartmentID 列與表 Departments 的 DepartmentID 列盲足參照完整性規(guī)則,規(guī)則如下: 向 Employees 表添加一記錄時(shí),該記錄的 DepartmentID 值在 Departments 表中應(yīng)存在; 修改 Departments 表 DepartmentID 字段值時(shí), 該字段在 Employees 表中的對(duì)應(yīng)值也應(yīng)修

溫馨提示

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

評(píng)論

0/150

提交評(píng)論