![數(shù)據(jù)庫(kù)系統(tǒng)原理課程設(shè)計(jì)Oracle數(shù)據(jù)庫(kù)管理與設(shè)計(jì)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/3/fa50eacb-b774-4fb8-8df5-6b7fb0937443/fa50eacb-b774-4fb8-8df5-6b7fb09374431.gif)
![數(shù)據(jù)庫(kù)系統(tǒng)原理課程設(shè)計(jì)Oracle數(shù)據(jù)庫(kù)管理與設(shè)計(jì)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/3/fa50eacb-b774-4fb8-8df5-6b7fb0937443/fa50eacb-b774-4fb8-8df5-6b7fb09374432.gif)
![數(shù)據(jù)庫(kù)系統(tǒng)原理課程設(shè)計(jì)Oracle數(shù)據(jù)庫(kù)管理與設(shè)計(jì)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/3/fa50eacb-b774-4fb8-8df5-6b7fb0937443/fa50eacb-b774-4fb8-8df5-6b7fb09374433.gif)
![數(shù)據(jù)庫(kù)系統(tǒng)原理課程設(shè)計(jì)Oracle數(shù)據(jù)庫(kù)管理與設(shè)計(jì)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/3/fa50eacb-b774-4fb8-8df5-6b7fb0937443/fa50eacb-b774-4fb8-8df5-6b7fb09374434.gif)
![數(shù)據(jù)庫(kù)系統(tǒng)原理課程設(shè)計(jì)Oracle數(shù)據(jù)庫(kù)管理與設(shè)計(jì)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/3/fa50eacb-b774-4fb8-8df5-6b7fb0937443/fa50eacb-b774-4fb8-8df5-6b7fb09374435.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、oracle數(shù)據(jù)庫(kù)管理與設(shè)計(jì)oracle數(shù)據(jù)庫(kù)管理與設(shè)計(jì)姓名: 學(xué)號(hào):班級(jí): 計(jì)算機(jī) 信息工程學(xué)院計(jì)算機(jī)系2012年3月1日星期四oracle數(shù)據(jù)庫(kù)管理與設(shè)計(jì)目 錄目 錄i前 言ii第1部分 oracle管理技術(shù)1實(shí)驗(yàn)1 數(shù)據(jù)庫(kù)管理1實(shí)驗(yàn)2 角色和用戶管理7實(shí)驗(yàn)3 表和視圖管理10實(shí)驗(yàn)4 索引和序列管理20實(shí)驗(yàn)5 pl/sql編程23實(shí)驗(yàn)6 使用游標(biāo)、存儲(chǔ)過(guò)程和觸發(fā)器35實(shí)驗(yàn)7 表空間管理39實(shí)驗(yàn)8 文件管理51第2部分 oracle開(kāi)發(fā)技術(shù)65前 言數(shù)據(jù)庫(kù)技術(shù)是計(jì)算機(jī)科學(xué)中發(fā)展最快的領(lǐng)域之一。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,數(shù)據(jù)庫(kù)技術(shù)與網(wǎng)絡(luò)技術(shù)相結(jié)合,已經(jīng)廣泛應(yīng)用于工作和生活的各個(gè)領(lǐng)域。同時(shí),數(shù)據(jù)庫(kù)
2、技術(shù)及其應(yīng)用已經(jīng)成為國(guó)內(nèi)外高校計(jì)算機(jī)專(zhuān)業(yè)和許多非計(jì)算機(jī)專(zhuān)業(yè)的必修或選修課程。oracle是當(dāng)前最流行的大型關(guān)系數(shù)據(jù)庫(kù)之一,支持包括32位windows、64位windows、os、hp-ux、aix5l、solaris和linux等多種操作系統(tǒng),擁有廣泛的用戶和大量的應(yīng)用案例,已成為大型數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的首選后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)。本實(shí)驗(yàn)課程要求學(xué)生全面了解oracle數(shù)據(jù)庫(kù)的特點(diǎn)和功能。從安裝配置、安全性、可用性、互操作性、pl/sql、可開(kāi)發(fā)性、商業(yè)智能等多個(gè)方面,對(duì)oracle數(shù)據(jù)庫(kù)的各項(xiàng)技術(shù)進(jìn)行學(xué)習(xí)和實(shí)驗(yàn)。通過(guò)學(xué)習(xí)oracle數(shù)據(jù)庫(kù)安裝、管理及開(kāi)發(fā),為今后從事oracle數(shù)據(jù)庫(kù)管理和開(kāi)發(fā)工作打下
3、良好的基礎(chǔ)。本實(shí)驗(yàn)課程共分2個(gè)部分。第1部分為oracle的管理技術(shù),由實(shí)驗(yàn)1實(shí)驗(yàn)8組成,包括數(shù)據(jù)庫(kù)管理、角色和用戶管理、表和視圖管理、索引和序列管理、pl/sql編程、以及使用游標(biāo)、存儲(chǔ)過(guò)程和觸發(fā)器、表空間和文件管理等內(nèi)容。第2部分為oracle開(kāi)發(fā)技術(shù),要求完成基于一定背景的管理信息系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì),如學(xué)生信息管理系統(tǒng)、圖書(shū)管理系統(tǒng)、人事信息管理系統(tǒng)、網(wǎng)上購(gòu)物系統(tǒng)等。第1部分為基礎(chǔ)題、必做題,第2部分為提高題、選做題。2第1部分 oracle管理技術(shù)實(shí)驗(yàn)1 數(shù)據(jù)庫(kù)管理目的和要求(1)了解oracle數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu);(2)了解oracle enterprise manager的使
4、用情況;(3)學(xué)習(xí)關(guān)閉和啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例的方法;(4)學(xué)習(xí)使用sql語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)的方法;(5)學(xué)習(xí)使用sql語(yǔ)句刪除數(shù)據(jù)庫(kù)的方法。實(shí)驗(yàn)準(zhǔn)備首先要了解oracle數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),包括方案(schema)對(duì)象、數(shù)據(jù)塊(data block)、區(qū)間(extent)、段(segment)和表空間(tablespace)等。數(shù)據(jù)庫(kù)由若干個(gè)表空間組成,表空間由表組成,段由區(qū)間組成,區(qū)間則由數(shù)據(jù)塊組成。oracle數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)由構(gòu)成數(shù)據(jù)庫(kù)的操作系統(tǒng)文件所決定。每個(gè)oracle數(shù)據(jù)庫(kù)都由3種類(lèi)型的文件組成:數(shù)據(jù)文件、日志文件和控制文件。這些數(shù)據(jù)庫(kù)文件為數(shù)據(jù)庫(kù)信息提供真正的物理存儲(chǔ)。enterprise
5、manager 9i是oracle 9i提供的新的管理工具,簡(jiǎn)稱em。使用它可以完成啟動(dòng)、關(guān)閉數(shù)據(jù)庫(kù),創(chuàng)建、刪除數(shù)據(jù)庫(kù)等功能。只有系統(tǒng)管理員或擁有create database權(quán)限的用戶才能創(chuàng)建數(shù)據(jù)庫(kù)。可以在enterprise manager中通過(guò)圖形界面創(chuàng)建數(shù)據(jù)庫(kù),也可以使用create database語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)。實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)主要包括以下內(nèi)容。(1)練習(xí)使用不同方法啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù)實(shí)例。(2)練習(xí)使用不同方法創(chuàng)建和刪除數(shù)據(jù)庫(kù),要使操作的數(shù)據(jù)庫(kù)為用戶管理數(shù)據(jù)庫(kù)userman。1使用shutdown命令關(guān)閉數(shù)據(jù)庫(kù)實(shí)例練習(xí)使用shutdown命令關(guān)閉數(shù)據(jù)庫(kù)實(shí)例,分別按以下方式啟動(dòng)數(shù)據(jù)庫(kù)實(shí)
6、例。(1)正常關(guān)閉。等待當(dāng)前所有已連接的用戶斷開(kāi)與數(shù)據(jù)庫(kù)的連接,然后關(guān)閉數(shù)據(jù)庫(kù)。正常關(guān)閉的語(yǔ)句如下:shutdown normal(2)立即關(guān)閉。回退活動(dòng)事務(wù)處理并斷開(kāi)所有已連接的用戶,然后關(guān)閉數(shù)據(jù)庫(kù)。立即關(guān)閉的語(yǔ)句如下:shutdown immediate(3)事務(wù)處理關(guān)閉。完成事務(wù)處理后斷開(kāi)所有已連接的用戶,然后關(guān)閉數(shù)據(jù)庫(kù)。事務(wù)處理關(guān)閉的語(yǔ)句如下:shutdown transactional(4)中止關(guān)閉。中止數(shù)據(jù)庫(kù)實(shí)例,立即關(guān)閉數(shù)據(jù)庫(kù)。中止關(guān)閉的語(yǔ)句如下:shutdown abort每次執(zhí)行shutdown語(yǔ)句關(guān)閉數(shù)據(jù)庫(kù)實(shí)例之前,請(qǐng)執(zhí)行startup命令啟動(dòng)數(shù)據(jù)庫(kù)。2使用startup命
7、令啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例練習(xí)使用startup命令啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例,分別按以下方式啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例。(1)啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例時(shí)不裝載數(shù)據(jù)庫(kù)。執(zhí)行此操作的命令如下:startup nomount(2)啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例,裝載數(shù)據(jù)庫(kù),但不打開(kāi)數(shù)據(jù)庫(kù)。通常在數(shù)據(jù)庫(kù)維護(hù)時(shí)執(zhí)行此操作,對(duì)應(yīng)的命令如下:startup mount(3)啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例,裝載數(shù)據(jù)庫(kù),打開(kāi)數(shù)據(jù)庫(kù)。執(zhí)行此操作的命令如下:startup open(4)強(qiáng)制實(shí)例啟動(dòng)。在遇到特殊異常的情況時(shí),可以強(qiáng)制啟動(dòng)實(shí)例。強(qiáng)制啟動(dòng)實(shí)例的語(yǔ)句如下:startup force該語(yǔ)句將數(shù)據(jù)庫(kù)強(qiáng)行啟動(dòng)到open模式。(5)啟動(dòng)后限制對(duì)數(shù)據(jù)庫(kù)實(shí)例的訪問(wèn)。執(zhí)行此操作的命令如下:s
8、tartup restrict每次執(zhí)行startup語(yǔ)句啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例之前,請(qǐng)執(zhí)行shutdown命令關(guān)閉數(shù)據(jù)庫(kù)。3使用oracle enterprise manager關(guān)閉數(shù)據(jù)庫(kù)實(shí)例按照下面的步驟關(guān)閉數(shù)據(jù)庫(kù)實(shí)例。(1)在數(shù)據(jù)庫(kù)處于打開(kāi)狀態(tài)時(shí),使用sys用戶以sysdba身份登錄到enterprise manager。在主目錄頁(yè)面的“一般信息”欄目中,可以看到“關(guān)閉”按鈕。(2)單擊“關(guān)閉”按鈕,可以打開(kāi)“主機(jī)和目標(biāo)數(shù)據(jù)庫(kù)身份證明”頁(yè)面。用戶需要擁有管理員的權(quán)限才能關(guān)閉數(shù)據(jù)庫(kù)實(shí)例,包括主機(jī)操作系統(tǒng)的管理員和當(dāng)前數(shù)據(jù)庫(kù)實(shí)例的sysdba用戶。(3)輸入完成后,單擊“確定”按鈕,打開(kāi)“確認(rèn)關(guān)閉”頁(yè)
9、面。(4)單擊“是”按鈕,開(kāi)始關(guān)閉數(shù)據(jù)庫(kù)。關(guān)閉操作完成后,單擊“刷新”按鈕,打開(kāi)“啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例”頁(yè)面。 4使用oracle enterprise manager啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例按照下面的步驟啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例。(1)使用sys用戶以sysdba身份登錄到enterprise manager。(2)單擊“啟動(dòng)”按鈕,打開(kāi)“主機(jī)和目標(biāo)數(shù)據(jù)庫(kù)身份證明”頁(yè)面。用戶需要擁有管理員的權(quán)限才能啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例,包括主機(jī)操作系統(tǒng)的管理員和當(dāng)前數(shù)據(jù)庫(kù)實(shí)例的sysdba用戶。(3)輸入完成后,單擊“確定”按鈕,打開(kāi)“確認(rèn)打開(kāi)”頁(yè)面。(4)單擊“是”按鈕,開(kāi)始打開(kāi)數(shù)據(jù)庫(kù)。5使用sql語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)按照如下條件創(chuàng)建數(shù)據(jù)庫(kù)o
10、racledb(以sysdba的用戶身份連接到數(shù)據(jù)庫(kù))。(1)設(shè)置sys用戶的密碼為syspwd,設(shè)置system用戶的密碼為systempwd。(2)使用已有的控制文件。(3)指定日志文件組redo01.log,大小為100mb;指定日志文件組redo02.log,大小為100mb。設(shè)置最大的日志文件數(shù)量為10。(4)定義日志文件組中最大的日志文件數(shù)量為5。(5)定義最大的數(shù)據(jù)文件數(shù)量為100。(6)定義數(shù)據(jù)庫(kù)中最大的實(shí)例數(shù)量為1。(7)定義存儲(chǔ)數(shù)據(jù)的字符集為us7ascii。(8)定義數(shù)據(jù)文件名稱為sys01.dbf,初始大小為100mb。(9)定義默認(rèn)的表空間為tbs_1。(10)定義臨
11、時(shí)表空間為tempts1。(11)定義臨時(shí)文件為temp01.dbf,大小為10mb。create database語(yǔ)句實(shí)例:create database oracledb user sys identified by syspwd user system identified by systempwd controlfile reuse logfile group 1 (redo01.log) size 100m , group 2 (redo02.log) size 100m , maxlogfiles 10 maxlogmembers 5 maxdatafiles 100 maxins
12、tances 1 character set us7ascii datafile sys01.dbf size 100m reuse extent management local default tablespace tbs_1 default temporary tablespace tempts1 tempfile temp01.dbf size 10m reuse; 6使用sql語(yǔ)句刪除數(shù)據(jù)庫(kù)按照如下步驟刪除數(shù)據(jù)庫(kù)userman。(1)在刪除數(shù)據(jù)庫(kù)之前,需要用戶以sysdba或sysoper身份登錄,代碼如下:connect sys/syspwd as sysdba;其中syspwd為
13、sys用戶的密碼,請(qǐng)根據(jù)實(shí)際情況輸入。(2)關(guān)閉數(shù)據(jù)庫(kù),再以mount模式啟動(dòng)數(shù)據(jù)庫(kù),代碼如下:shutdown immediate;startup mount;(3)刪除數(shù)據(jù)庫(kù),代碼如下:drop database; 實(shí)驗(yàn)2 角色和用戶管理目的和要求(1)了解oracle數(shù)據(jù)庫(kù)用戶和角色的概念;(2)學(xué)習(xí)使用sql語(yǔ)句創(chuàng)建oracle用戶;(3)學(xué)習(xí)使用sql語(yǔ)句創(chuàng)建oracle角色;(4)學(xué)習(xí)使用sql語(yǔ)句指定用戶的角色。實(shí)驗(yàn)準(zhǔn)備(1)了解oracle數(shù)據(jù)庫(kù)用戶可以分為6種類(lèi)型,即數(shù)據(jù)庫(kù)管理員、安全官員、網(wǎng)絡(luò)管理員、應(yīng)用程序開(kāi)發(fā)員、應(yīng)用程序管理員和數(shù)據(jù)庫(kù)用戶;(2)了解角色是對(duì)用戶的一種分
14、類(lèi)管理辦法,不同權(quán)限的用戶可以分為不同的角色;(3)了解使用create role語(yǔ)句創(chuàng)建角色的方法;(4)了解使用drop role語(yǔ)句刪除角色的方法;(5)了解使用grant語(yǔ)句指定用戶角色的方法;(5)了解使用create user語(yǔ)句創(chuàng)建用戶的方法;(4)了解使用drop user語(yǔ)句刪除用戶的方法。實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)主要包括以下內(nèi)容。(1)練習(xí)使用sql語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)角色;(2)練習(xí)使用sql語(yǔ)句為數(shù)據(jù)庫(kù)角色授予權(quán)限;(3)練習(xí)使用sql語(yǔ)句指定用戶角色;(4)練習(xí)使用sql語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)用戶。1使用sql語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)角色參照下面的步驟練習(xí)使用create role語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)角色。
15、(1)以system用戶登錄到sql*plus。(2)使用create role語(yǔ)句創(chuàng)建角色usermanrole,密碼為myrolepwd,代碼如下:create role usermanrole identified by myrolepwd;2使用sql語(yǔ)句為數(shù)據(jù)庫(kù)角色授權(quán)參照下面的步驟練習(xí)使用grant語(yǔ)句為數(shù)據(jù)庫(kù)角色授權(quán)。(1)以system用戶登錄到sql*plus。(2)使用grant語(yǔ)句將角色usermanrole授予connect和resource權(quán)限,代碼如下:-設(shè)置角色權(quán)限grant connect to usermanrole ;grant resource to us
16、ermanrole ;3使用sql語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)用戶參照下面的步驟練習(xí)使用create user語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)用戶。(1)以system用戶登錄到sql*plus。(2)使用create user語(yǔ)句創(chuàng)建用戶usermanadmin,密碼為userpwd,代碼如下:create user usermanadmin identified by userpwd default tablespace users temporary tablespace temp;(3)使用grant語(yǔ)句對(duì)用戶usermanadmin授予系統(tǒng)權(quán)限unlimited tablespace,代碼如下:-設(shè)置系統(tǒng)權(quán)限gra
17、nt unlimited tablespace to usermanadmin ;4使用sql語(yǔ)句指定用戶角色參照下面的步驟將用戶userman指定為角色usermanrole。(1)以system用戶登錄到sql*plus。(2)使用grant語(yǔ)句將用戶userman指定為角色usermanrole,代碼如下:grant usermanrole to usermanadmin ;實(shí)驗(yàn)3 表和視圖管理目的和要求(1)了解oracle表和視圖的概念;(2)學(xué)習(xí)使用sql語(yǔ)句創(chuàng)建表;(3)學(xué)習(xí)使用select語(yǔ)句查詢數(shù)據(jù);(4)學(xué)習(xí)使用sql語(yǔ)句創(chuàng)建視圖。實(shí)驗(yàn)準(zhǔn)備(1)了解表是數(shù)據(jù)庫(kù)中最常用的數(shù)據(jù)
18、存儲(chǔ)單元,它包括所有用戶可以訪問(wèn)的數(shù)據(jù)。作為關(guān)系型數(shù)據(jù)庫(kù),oracle表由行和列組成。(2)視圖是一個(gè)虛擬的表,它在物理上并不存在。視圖可以把表或其它視圖的數(shù)據(jù)按照一定的條件組合起來(lái),所以也可以把它看成是一個(gè)存儲(chǔ)的查詢。視圖并不包含數(shù)據(jù),它只是從基表中讀取數(shù)據(jù)。(3)了解使用create table語(yǔ)句創(chuàng)建表的方法。(4)了解使用select語(yǔ)句查詢數(shù)據(jù)的方法。(5)了解使用sql語(yǔ)句創(chuàng)建視圖的方法。實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)主要包括以下內(nèi)容。(1)練習(xí)使用sql語(yǔ)句創(chuàng)建表;(2)練習(xí)使用sql語(yǔ)句向表中插入數(shù)據(jù);(3)練習(xí)使用sql語(yǔ)句修改表中的數(shù)據(jù);(4)練習(xí)使用sql語(yǔ)句刪除表中的數(shù)據(jù);(5)練習(xí)使
19、用select語(yǔ)句查詢數(shù)據(jù);(6)練習(xí)使用sql語(yǔ)句創(chuàng)建視圖。1使用sql語(yǔ)句創(chuàng)建表使用create table語(yǔ)句創(chuàng)建用戶信息表users,結(jié)構(gòu)如表1所示。表1 表users的結(jié)構(gòu)編 號(hào)字段名稱數(shù)據(jù)結(jié)構(gòu)說(shuō) 明1useridnumber用戶編號(hào)2usernamevarchar2 40用戶名3usertypenumber 1用戶類(lèi)型(1 管理員用戶,2 普通用戶)4userpwdvarchar2 40參照下面的步驟練習(xí)使用create table語(yǔ)句創(chuàng)建表users。(1)以實(shí)驗(yàn)2中創(chuàng)建的usermanadmin用戶登錄到sql*plus。(2)使用create table語(yǔ)句創(chuàng)建表users,
20、代碼如下:create table usermanadmin.users(useridnumber primary key, usernamevarchar2(40) not null, usertypenumber(1), userpwdvarchar2(40);使用create table語(yǔ)句創(chuàng)建用戶登錄信息表logininfo,結(jié)構(gòu)如表2所示。表2 表logininfo的結(jié)構(gòu)編 號(hào)字段名稱數(shù)據(jù)結(jié)構(gòu)說(shuō) 明1useridnumber用戶編號(hào)2logintimechar(20)登錄時(shí)間參照下面的步驟練習(xí)使用create table語(yǔ)句創(chuàng)建表logininfo。(1)以實(shí)驗(yàn)2中創(chuàng)建的userma
21、nadmin用戶登錄到sql*plus。(2)使用create table語(yǔ)句創(chuàng)建表logininfo,代碼如下:create table usermanadmin.logininfo(useridnumber, logintimechar(20) not null);2使用sql語(yǔ)句向表中插入數(shù)據(jù)使用insert語(yǔ)句向表users中插入用戶數(shù)據(jù),內(nèi)容如表3所示。表3 表users中的數(shù)據(jù)useridusernameusertypeuserpwd1admin1adminpwd2user2userpwd3zhangsan2zhangsanpwd4lisi2lisipwd參照下面的步驟練習(xí)使用in
22、sert語(yǔ)句向表users中插入數(shù)據(jù)。(1)以實(shí)驗(yàn)2中創(chuàng)建的usermanadmin用戶登錄到sql*plus。(2)使用insert語(yǔ)句向表users中插入數(shù)據(jù),代碼如下:insert into usermanadmin.users values(1, admin, 1, adminpwd);insert into usermanadmin.users values(2, user, 2, userpwd);insert into usermanadmin.users values(3, zhangsan, 2, zhangsanpwd);insert into usermanadmin.u
23、sers values(4, lisi, 2, lisipwd);commit;使用insert語(yǔ)句向表logininfo中插入數(shù)據(jù)。內(nèi)容如表4所示。參照下面的步驟練習(xí)使用insert語(yǔ)句向表logininfo中插入數(shù)據(jù)。(1)以實(shí)驗(yàn)2中創(chuàng)建的usermanadmin用戶登錄到sql*plus。(2)使用insert語(yǔ)句向表logininfo中插入數(shù)據(jù),代碼如下:insert into usermanadmin.logininfo values(1, 2010-5-15 10:33:02,);insert into usermanadmin.logininfo values(1, 2010-5
24、-16 08:34:13,);insert into usermanadmin.logininfo values(1, 2010-5-17 09:13:11,);insert into usermanadmin.logininfo values(2, 2010-5-15 07:35:02,);insert into usermanadmin.logininfo values(2, 2010-5-16 08:11:54,);insert into usermanadmin.logininfo values(2, 2010-5-17 09:13:11,);insert into usermanad
25、min.logininfo values(3, 2010-5-15 08:34:02,);insert into usermanadmin.logininfo values(3, 2010-5-16 09:34:13,);insert into usermanadmin.logininfo values(3, 2010-5-17 10:13:09,);insert into usermanadmin.logininfo values(4, 2010-5-15 11:34:02,);insert into usermanadmin.logininfo values(4, 2010-5-16 13
26、:34:13,);insert into usermanadmin.logininfo values(4, 2010-5-17 15:13:12,);commit; 表4 表logininfo中的數(shù)據(jù)useridlogintime12010-5-15 10:33:0212010-5-16 08:34:1312010-5-17 09:13:1122010-5-15 07:35:0222010-5-16 08:11:5422010-5-17 09:13:1132010-5-15 08:34:0232010-5-16 09:34:1332010-5-17 10:13:0942010-5-15 11:
27、34:0242010-5-16 13:34:1342010-5-17 15:13:123使用sql語(yǔ)句修改表中的數(shù)據(jù)使用update語(yǔ)句可以修改表users中的數(shù)據(jù)。參照下面的步驟練習(xí)將表users中admin用戶的密碼修改為adminpassword。(1)以system用戶登錄到sql*plus。(2)使用update語(yǔ)句將表users中admin用戶的密碼修改為adminpassword,代碼如下:update usermanadmin.users set userpwd=adminpassword where username=admin(3)使用select語(yǔ)句查看用戶admin的密
28、碼,代碼如下:select userpwd from usermanadmin.users where username=admin4使用sql語(yǔ)句刪除表中的數(shù)據(jù)使用delete語(yǔ)句可以刪除表users中的數(shù)據(jù)。參照下面的步驟練習(xí)將表users中zhansan用戶的記錄刪除。(1)以system用戶登錄到sql*plus。(2)使用delete語(yǔ)句將表users中zhangsan用戶的記錄刪除,代碼如下:delete from usermanadmin.users where username=zhangsan(3)使用select語(yǔ)句查看表users中的數(shù)據(jù),確認(rèn)用戶zhangsan的記錄是
29、否被刪除,代碼如下:select * from usermanadmin.users5使用select語(yǔ)句查詢數(shù)據(jù)使用select語(yǔ)句查詢數(shù)據(jù)庫(kù)中的用戶數(shù)據(jù),分別按以下方式查詢數(shù)據(jù)庫(kù)。(1)查詢表users中的所有數(shù)據(jù)。以system用戶登錄到sql*plus,然后執(zhí)行如下代碼:select * from usermanadmin.users*代表usermanadmin.users中的所有字段。(2)在返回結(jié)果中使用自定義標(biāo)題。以system用戶登錄到sql*plus,然后執(zhí)行如下代碼:select username as 用戶名, userpwd as 密碼 from usermanadm
30、in.users(3)設(shè)置查詢條件。查詢所有普通用戶的信息。以system用戶登錄到sql*plus,然后執(zhí)行如下代碼:select * from usermanadmin.users where usertype=2查詢用戶admin的密碼信息。以system用戶登錄到sql*plus,然后執(zhí)行如下代碼:select userpwd from usermanadmin.users where username=admin(4)對(duì)查詢結(jié)果進(jìn)行排序。查詢所有普通用戶的信息,并按用戶名的降序排列結(jié)果集。以system用戶登錄到sql*plus,然后執(zhí)行如下代碼:select * from user
31、manadmin.users order by username desc(5)對(duì)記錄進(jìn)行統(tǒng)計(jì)。統(tǒng)計(jì)表users中共有多少個(gè)用戶記錄。以system用戶登錄到sql*plus,然后執(zhí)行如下代碼:select count(*) from usermanadmin.users(6)實(shí)現(xiàn)連接查詢。查看每個(gè)用戶的登錄記錄。以system用戶登錄到sql*plus,然后執(zhí)行如下代碼:select u.username, a.logintime from usermanadmin.users u inner join usermanadmin.logininfo a on u.userid=a.useri
32、d;在上面的select語(yǔ)句中涉及兩個(gè)表:表users和表logininfo。在from子句中,為每個(gè)表指定一個(gè)別名,表users的別名為u,表logininfo的別名為a。6使用sql語(yǔ)句創(chuàng)建視圖使用create view語(yǔ)句創(chuàng)建用戶登錄信息表userlogin,代碼如下:create view userloginasselect u.username, a.logintime from usermanadmin.users u inner join usermanadmin.logininfo a on u.userid=a.userid;select * from userlogin;實(shí)
33、驗(yàn)4 索引和序列管理目的和要求(1)了解索引的概念和作用;(2)了解序列的概念和作用;(3)學(xué)習(xí)使用sql語(yǔ)句創(chuàng)建索引;(4)學(xué)習(xí)使用sql語(yǔ)句創(chuàng)建序列。實(shí)驗(yàn)準(zhǔn)備(1)了解索引是對(duì)數(shù)據(jù)庫(kù)表中一個(gè)或多個(gè)列的值進(jìn)行排序的結(jié)構(gòu)。可以利用索引快速訪問(wèn)數(shù)據(jù)庫(kù)表中的特定信息。(2)了解序列號(hào)是一個(gè)oracle整數(shù),最多可有38個(gè)數(shù)字。序列的作用是自動(dòng)生成整型數(shù)值,作為表中標(biāo)識(shí)字段的值。有許多表在創(chuàng)建時(shí)定義了一個(gè)標(biāo)識(shí)字段,此字段的值需要由系統(tǒng)自動(dòng)生成,每當(dāng)插入一條新記錄時(shí),此字段的值自動(dòng)加1。在oracle中,這個(gè)功能由序列來(lái)實(shí)現(xiàn)。(3)了解使用create index語(yǔ)句創(chuàng)建索引的方法。(4)了解使用cr
34、eate sequence語(yǔ)句創(chuàng)建序列的方法。實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)主要包括以下內(nèi)容。(1)練習(xí)使用sql語(yǔ)句創(chuàng)建索引;(2)練習(xí)使用sql語(yǔ)句創(chuàng)建序列;1使用sql語(yǔ)句創(chuàng)建索引使用create index語(yǔ)句在users表的username字段上創(chuàng)建索引。代碼如下:create index index_username on usermanadmin.users (username)tablespace users;2在創(chuàng)建表的同時(shí)創(chuàng)建索引在使用create table語(yǔ)句創(chuàng)建表的同時(shí),可以為指定字段創(chuàng)建索引。創(chuàng)建表employees,在字段empname上創(chuàng)建索引。表employees的結(jié)構(gòu)如表5
35、所示。表5 表employees的結(jié)構(gòu)編 號(hào)字段名稱數(shù)據(jù)結(jié)構(gòu)說(shuō) 明1empidnumber編號(hào)2empnamevarchar2(50)姓名3sexchar(2)性別4useridnumber用戶編號(hào)代碼如下:create table employees(empidnumber, empnamevarchar2(50) unique, sexchar(2), useridnumber);3使用sql語(yǔ)句創(chuàng)建序列使用create sequence語(yǔ)句創(chuàng)建序列。序列的最小值為1,并且沒(méi)有最大值限制。序列的初始值為1,序列間隔為1。代碼如下:create sequence emp_sminvalue
36、1nomaxvaluestart with 1increment by 1nocyclecache 20;2在插入數(shù)據(jù)時(shí)使用序列在使用insert語(yǔ)句向表employees中插入數(shù)據(jù)時(shí),可以使用序列emp_s生成字段empid的值,代碼如下:insert into employees (empid, empname) values(emp_s.nextval, employee1,);insert into employees (empid, empname) values(emp_s.nextval, employee2,);insert into employees (empid, emp
37、name) values(emp_s.nextval, employee3,);commit;select * from employees實(shí)驗(yàn)5 pl/sql編程目的和要求(1)了解pl/sql語(yǔ)言的結(jié)構(gòu);(2)了解pl/sql變量和常量的聲明和使用方法;(3)學(xué)習(xí)條件語(yǔ)句的使用方法;(4)學(xué)習(xí)分支語(yǔ)句的使用方法;(5)學(xué)習(xí)循環(huán)語(yǔ)句的使用方法;(6)學(xué)習(xí)使用oracle系統(tǒng)函數(shù)。實(shí)驗(yàn)準(zhǔn)備首先要了解pl/sql語(yǔ)言是結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言。塊(block)是pl/sql程序中最基本的結(jié)構(gòu),所有pl/sql程序都是由塊組成的。pl/sql的塊由變量聲明、程序代碼和異常處理代碼3部分組成。在pl/sq
38、l中,常量和變量在使用前必須聲明,可以使用declare對(duì)變量進(jìn)行聲明。實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)主要包括以下內(nèi)容。(1)練習(xí)條件語(yǔ)句的使用方法;(2)練習(xí)分支語(yǔ)句的使用方法;(3)練習(xí)循環(huán)語(yǔ)句的使用方法;(4)練習(xí)使用oracle系統(tǒng)函數(shù)。1使用條件語(yǔ)句參照下面的步驟練習(xí)使用條件語(yǔ)句。(1)以system用戶登錄到sql*plus。(2)執(zhí)行如下程序,觀察結(jié)果。set serveroutput on;declare num integer := -11;begin if num 0 then dbms_output.put_line( 正數(shù) ); else dbms_output.put_line( 0
39、 ); end if;end;2使用分支語(yǔ)句參照下面的步驟練習(xí)使用分支語(yǔ)句。(1)以system用戶登錄到sql*plus。(2)執(zhí)行如下程序,觀察結(jié)果。set serveroutput on;declare varday integer := 3; result varchar(20);begin result := case varday when 1 then 星期一 when 2 then 星期二 when 3 then 星期三 when 4 then 星期四 when 5 then 星期五 when 6 then 星期六 when 7 then 星期日 else 數(shù)據(jù)越界 end;
40、dbms_output.put_line( result );end;3使用循環(huán)語(yǔ)句loopexitend語(yǔ)句:此語(yǔ)句的功能是重復(fù)執(zhí)行循環(huán)體中的程序塊,直到執(zhí)行exit語(yǔ)句,退出循環(huán)。loopexit whenend:此語(yǔ)句的功能是重復(fù)執(zhí)行循環(huán)體中的程序塊,直到滿足exit when后面的判斷語(yǔ)句時(shí),退出循環(huán)。whileloopend loop語(yǔ)句:此語(yǔ)句的功能是當(dāng)while后面的條件語(yǔ)句成立時(shí),重復(fù)執(zhí)行循環(huán)體中的程序塊。參照下面的步驟練習(xí)使用循環(huán)語(yǔ)句。(1)以system用戶登錄到sql*plus。(2)執(zhí)行如下程序,觀察結(jié)果。程序一:set serveroutput on;declare
41、v_num integer := 1; v_sum integer := 0;begin loop v_sum := v_sum + v_num; dbms_output.put_line( v_num ); if v_num = 3 then exit; end if; dbms_output.put_line( + ); v_num := v_num + 1; end loop; dbms_output.put_line( = ); dbms_output.put_line( v_sum );end;程序二:set serveroutput on;declare v_num integer
42、 := 1; v_sum integer := 0;begin loop v_sum := v_sum + v_num; dbms_output.put_line( v_num ); exit when v_num = 3; dbms_output.put_line( + ); v_num := v_num + 1; end loop; dbms_output.put_line( = ); dbms_output.put_line( v_sum );end;程序三: set serveroutput on;declare v_num integer := 1; v_sum integer :=
43、 0;begin while v_num =3 loop v_sum := v_sum + v_num; dbms_output.put_line( v_num ); if v_num 3 then dbms_output.put_line( + ); end if; v_num := v_num + 1; end loop; dbms_output.put_line( = ); dbms_output.put_line( v_sum );end;4使用系統(tǒng)函數(shù)(1)數(shù)值型函數(shù)abs:返回給定數(shù)字表達(dá)式的絕對(duì)值。ceil:返回大于或等于所給數(shù)字表達(dá)式的最小整數(shù)。floor:返回小于或等于所給數(shù)
44、字表達(dá)式的最大整數(shù)。power:返回給定表達(dá)式指定次方的值。round:返回?cái)?shù)字表達(dá)式并四舍五入為指定的長(zhǎng)度或精度。(2)字符型函數(shù)ascii:返回字符表達(dá)式最左端字符的ascii代碼值。length:返回給定字符串表達(dá)式的字符(而不是字節(jié))個(gè)數(shù),其中不包含尾隨空格。upper:返回將小寫(xiě)字符數(shù)據(jù)轉(zhuǎn)換為大寫(xiě)的字符表達(dá)式。(3)日期型函數(shù)sysdate:返回當(dāng)前日期和時(shí)間。to_char:轉(zhuǎn)換日期為字符串。last_day:返回指定日期所在月份的最后一天的日期。這個(gè)函數(shù)可以被用來(lái)確定當(dāng)前月中還剩下多少天。months_between:返回兩個(gè)日期之間月的數(shù)目。(4)統(tǒng)計(jì)函數(shù)count:返回組中項(xiàng)
45、目的數(shù)量。max:返回表達(dá)式的最大值。min:返回表達(dá)式的最小值。參照下面的步驟練習(xí)使用系統(tǒng)函數(shù)。(1)以system用戶登錄到sql*plus。(2)執(zhí)行如下程序,觀察結(jié)果。程序一:set serveroutput on;begin dbms_output.put_line( abs(-4) );end;程序二:set serveroutput on;begin dbms_output.put_line( ceil(116.24) ); dbms_output.put_line( ceil(-112.75) ); dbms_output.put_line( ceil(0) );end;程序三
46、:set serveroutput on;begin dbms_output.put_line( floor(116.24) ); dbms_output.put_line( floor(-112.75) ); dbms_output.put_line( floor(0) );end;程序四:set serveroutput on;begin dbms_output.put_line( power(15, 4) );end;程序五:set serveroutput on;begin dbms_output.put_line( round(123.456, 2) ); dbms_output.p
47、ut_line( round(123.456, 1) ); dbms_output.put_line( round(123.456, 0) ); dbms_output.put_line( round(123.456, -1) ); dbms_output.put_line( round(123.456, -2) ); dbms_output.put_line( round(123.456, -3) );end;程序六:set serveroutput on;begin dbms_output.put_line( ascii(abc) );end;程序七:select username, le
48、ngth(username) from usermanadmin.userswhere usertype = 1;程序八:set serveroutput on;begin dbms_output.put_line( upper(abc) );end;程序九:set serveroutput on;begin dbms_output.put_line( sysdate );end;程序十:set serveroutput on;begin dbms_output.put_line( to_char(sysdate) );end;程序十一:set serveroutput on;begin db
49、ms_output.put_line( last_day(sysdate) );end;程序十二:set serveroutput on;declare date1 varchar(20) := 2010-05-17 ; date2 varchar(20) := 2010-10-17 ;begin dbms_output.put_line( months_between( to_date( date2, yyyy-mm-dd ), to_date( date1, yyyy-mm-dd ) ) ); end;程序十三:select count( username ) from usermanad
50、min.users;程序十四:select max( userid ) from usermanadmin.users;程序十五:select min( userid ) from usermanadmin.users;實(shí)驗(yàn)6 使用游標(biāo)、存儲(chǔ)過(guò)程和觸發(fā)器目的和要求(1)了解游標(biāo)的概念和工作原理;(2)了解存儲(chǔ)過(guò)程的分類(lèi)和使用方法;(3)了解觸發(fā)器的概念;(4)學(xué)習(xí)編寫(xiě)和執(zhí)行自定義過(guò)程;(5)學(xué)習(xí)編寫(xiě)和執(zhí)行自定義函數(shù);(6)學(xué)習(xí)創(chuàng)建和使用觸發(fā)器。實(shí)驗(yàn)準(zhǔn)備首先要了解游標(biāo)是映射在結(jié)果集中一行數(shù)據(jù)上的位置實(shí)體,有了游標(biāo),用戶就可以訪問(wèn)結(jié)果集中的任意一行數(shù)據(jù)了。將游標(biāo)放置到某行后,即可對(duì)該行數(shù)據(jù)進(jìn)行操作
51、,最常見(jiàn)的操作是提取當(dāng)前行數(shù)據(jù)。了解pl/sql包括3種存儲(chǔ)過(guò)程,即過(guò)程、函數(shù)和程序包。了解觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程,當(dāng)指定表中的數(shù)據(jù)發(fā)生變化時(shí)自動(dòng)運(yùn)行。實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)主要包括以下內(nèi)容。(1)練習(xí)創(chuàng)建和使用游標(biāo)的方法;(2)練習(xí)編寫(xiě)和執(zhí)行自定義過(guò)程的方法;(3)練習(xí)編寫(xiě)和執(zhí)行自定義函數(shù)的方法;(4)練習(xí)創(chuàng)建和使用觸發(fā)器的方法。1創(chuàng)建和使用游標(biāo)創(chuàng)建游標(biāo)mycursor,從表logininfo中讀取指定用戶的登錄信息,操作步驟如下:(1)以u(píng)sermanadmin用戶登錄到sql*plus。(2)執(zhí)行如下程序:/*打開(kāi)顯示模式*/set serveroutput on;declare curso
52、r mycursor( varusername varchar2 ) is select u.username, a.logintime from usermanadmin.users u, usermanadmin.logininfo a where u.userid = a.userid and u.username = varusername;begin -開(kāi)始程序體 for var_loginrecord in mycursor( admin ) loop /*顯示保存在記錄變量var_loginrecord中的數(shù)據(jù)*/ dbms_output.put_line( 用戶名: | var
53、_loginrecord.username | , 登錄時(shí)間: | var_loginrecord.logintime ); end loop;end; -結(jié)束程序體2編寫(xiě)和執(zhí)行自定義過(guò)程參照下面的步驟練習(xí)編寫(xiě)和執(zhí)行自定義過(guò)程:(1)以u(píng)sermanadmin用戶登錄到sql*plus。(2)執(zhí)行如下程序,觀察結(jié)果。/*創(chuàng)建示例過(guò)程resetpwd,此過(guò)程的功能是將表user中指定用戶的密碼重置為111111*/create or replace procedure usermanadmin.resetpwd( v_userid in number )asbegin update users set userpwd = 11111
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年三年級(jí)數(shù)學(xué)第二學(xué)期教學(xué)工作總結(jié)模版(3篇)
- 海水淡化土石運(yùn)輸合同范本
- 北京市裝修分期付款合同
- 水果蔬菜冷藏運(yùn)輸保險(xiǎn)協(xié)議
- 2025年度生態(tài)環(huán)境安全防護(hù)監(jiān)測(cè)協(xié)議書(shū)
- 淄博停車(chē)棚膜結(jié)構(gòu)施工方案
- 幼兒園制式裝修合同模板
- 旅游景區(qū)裝修項(xiàng)目合同樣本
- 印刷制品居間協(xié)議-@-1
- 履帶式襯砌機(jī)施工方案
- 2025集團(tuán)公司內(nèi)部借款合同范本
- 遼寧省名校聯(lián)盟2025屆高三上學(xué)期1月份聯(lián)合考試語(yǔ)文試題(含答案)
- 2025年山西地質(zhì)集團(tuán)社會(huì)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 四川省綿陽(yáng)市2025屆高三第二次診斷性考試思想政治試題(含答案)
- 2024-2025學(xué)年遼寧省沈陽(yáng)市沈河區(qū)七年級(jí)(上)期末英語(yǔ)試卷(含答案)
- 2024-2025學(xué)年初中七年級(jí)上學(xué)期數(shù)學(xué)期末綜合卷(人教版)含答案
- 體育活動(dòng)策劃與組織課件
- 公司違規(guī)違紀(jì)連帶處罰制度模版(2篇)
- T型引流管常見(jiàn)并發(fā)癥的預(yù)防及處理
- 2024-2025學(xué)年人教新版九年級(jí)(上)化學(xué)寒假作業(yè)(九)
- 內(nèi)業(yè)資料承包合同個(gè)人與公司的承包合同
評(píng)論
0/150
提交評(píng)論