久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

Oracle數(shù)據(jù)庫 圖書管理系統(tǒng)實驗報告

時間:2019-05-14 02:20:45下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《Oracle數(shù)據(jù)庫 圖書管理系統(tǒng)實驗報告》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《Oracle數(shù)據(jù)庫 圖書管理系統(tǒng)實驗報告》。

第一篇:Oracle數(shù)據(jù)庫 圖書管理系統(tǒng)實驗報告

圖書管理系統(tǒng)(Oracle)

1、創(chuàng)建表空間student_library

2、(1)創(chuàng)建表Administrator

(2)創(chuàng)建表library

(3)創(chuàng)建表student

(4)創(chuàng)建表lent_library

(5)創(chuàng)建表booktype

3、(1)創(chuàng)建表空間student_library

create tablespace student_library datafile 'C:oracleproduct10.2.0oradataorclstudent_library' size 100M autoextend on;

(2)創(chuàng)建表Administrator create table Administrator(AdministratorID number(20)primary key,AdministratorName varchar2(25),sex varchar2(5),beizhu varchar2(30),bookID varchar2(20), foreign key(bookID)references library(bookID))tablespace student_library;

向Administrator表插入數(shù)據(jù) insert into Administrator values(100421101,'張三','男',' ',100421)insert into Administrator values(100421102,'李四','女',' ',100422)insert into Administrator values(100421103,'王五','男',' ',100423)對Administrator表刪除數(shù)據(jù)

delete from Administrator where AdministratorID=100421103 ——刪除Administrator表中管理員編號為‘100421103’的一行數(shù)據(jù) 對Administrator表查詢數(shù)據(jù)

select * from Administrator order by AdministratorID ——按照管理員的ID號對Administrator表進行排列 向Administrator表修改數(shù)據(jù)

update Administrator set AdministratorName=‘王明’where AdministratorID=100421101 ——對Administrator表中管理員編號為‘100421101’的姓名改為“王明” update Administrator set sex=‘女’where AdministratorID=100421103 ——對Administrator表中管理員編號為‘100421103’的性別改為“女”(3)創(chuàng)建表library create table library(bookID number(20)primary key,bookName varchar2(20),author varchar2(10),press varchar2(20),publishDate varchar2(50),price number(20),leibienumber number(20),state varchar2(8),studentID number(20),foreign key(studentID)references student(studentID))tablespace student_library;

向library表插入數(shù)據(jù) insert into library

values(100421,'Oracle數(shù)據(jù)庫管理','馬曉玉','清華大學出版社','2011-11-8',40,'013999',' ',100421203)insert into library

values(100422,'ASP.NET網(wǎng)站設(shè)計','唐慧','南京大學出版社','2011-5-18',32,'165923',' ',100421205)insert into library

values(100423,'JavaScript程序設(shè)計','徐元','蘇州大學出版社','2011-2-12',28,'265894',' ',100421207)對library表刪除數(shù)據(jù)

delete from library where bookID=100422 ——刪除library表中書籍編號為‘100422’的一行數(shù)據(jù) 向library表查詢數(shù)據(jù)

select bookID,bookName,author,press,publishDate,price from library order by bookID ——查詢library表中的bookID,bookName,author,press,publishDate,price的數(shù)據(jù)根據(jù)書籍的編號進行排序

向library表修改數(shù)據(jù)

update library set author=‘張敏’where bookID=100422 ——對library表中書籍編號為‘100422’的作者改為“張敏”

(4)創(chuàng)建表student create table student(studentID number(20)primary key,studentName varchar2(50),sex varchar2(2),department varchar2(10),studentPhone number(15),borrowID number(20),password number(10))tablespace student_library;

向student表插入數(shù)據(jù) insert into student values(100421203,'王逸','男','信電系','***','123456','521568')insert into student values(100421205,'劉娟','女','食品系','***','256302','269756')insert into student values(100421207,'張一凡','男','園林園藝系','***','687456','305621')對student表刪除數(shù)據(jù)

delete from student where studentName=‘張一凡’

——刪除student表中學生姓名為‘張一凡’的一行數(shù)據(jù) 向student表修改數(shù)據(jù)

update student set department=‘經(jīng)貿(mào)系’where studentID=100421205 ——對student表中學生學號為‘100421205’的系部名稱改為“經(jīng)貿(mào)系”

(5)創(chuàng)建表lent_library create table lent_library(lentID number(20)primary key,bookID number(20),borrowbookID number(20),borrowDate varchar2(50),borrowState varchar2(30),foreign key(bookID)references library(bookID))tablespace student_library;

向lent_library表插入數(shù)據(jù) insert into lent_library values(12345,'100421','1360','2012-3-15','還未歸還')insert into lent_library values(21350,'100422','2035','2012-1-6','已經(jīng)歸還')insert into lent_library values(13056,'100423','1503','2012-3-22','還未歸還')向lent_library表刪除數(shù)據(jù) delete from lent_library where bookID=‘100423’

——刪除lent_library表中書籍編號為‘100423’的一行數(shù)據(jù) 向lent_library表查詢數(shù)據(jù)

select lentID,bookID,borrowbookID,borrowState from lent_library where bookID=‘10042%’ ——查詢lent_library表中的lentID,bookID,borrowbookID,borrowState數(shù)據(jù)根據(jù)書籍編號前五位數(shù)位‘10042’進行排序

(6)創(chuàng)建表booktype create table booktype(Leibienumber number(20)primary key,booktype varchar2(20))tablespace student_library;

向booktype表插入數(shù)據(jù) insert into booktype values('4630','文學類')insert into booktype values('1623','科普類')insert into booktype values('2412','理工科類')向booktype表刪除數(shù)據(jù)

delete from booktype where leibienumber=‘1623’

——刪除booktype表中類別編號為‘1623’的一行數(shù)據(jù) 向booktype表修改數(shù)據(jù)

update booktype set booktype=‘計算機類’where leibienumber=‘2412’ ——對booktype表中類別編號為‘2412’的書籍類型改為“計算機類”

4、(1)創(chuàng)建索引

【1】create index AdministratorID _index on Administrator(AdministratorID)tablespace users;

—在Administrator表的AdministratorID列創(chuàng)建一個名為Aid_index的索引

【2】create bitmap index studentName_index on student(studentName)tablespace users;—在student表的學生姓名列上創(chuàng)建位圖索引

(2)創(chuàng)建視圖

create or replace view view_library as select bookID,bookName,author,press,publishDate,price from library;—創(chuàng)建視圖view_library,查詢library表中的bookID,bookName,author,press,publishDate,price

5、(1)創(chuàng)建匿名塊

set serveroutput on declare out_text varchar2(50);begin out_text:='程序塊示例';dbms_output.put_line(out_text);exception when others then dbms_output.put_line('捕獲一個異常');end;

(2)創(chuàng)建存儲過程

create or replace procedure InsertAdministrator as begin insert into Administrator(AdministratorID,administratorName,sex)values(100421105,'李凡','男');exception when dup_val_on_index then

dbms_output.put_line('重復的編號');when others then

dbms_output.put_line('發(fā)生其他錯誤!');end InsertAdministrator;—創(chuàng)建一個存儲過程InsertAdministrator,向Administrator表的AdministratorID,administratorName和sex列分別插入數(shù)據(jù)100421105,李凡和男三個值。

(3)創(chuàng)建函數(shù)

create or replace function Factorial(n in number)return number as result number: =1;begin for i in 1...n loop result: =result*i;end loop;return(result);end Factorial;(4)創(chuàng)建觸發(fā)器 create table student_log(studentID number(20),studentName varchar2(50),sex varchar2(2),department varchar2(10));—創(chuàng)建一個日志表,記錄對student表所做的修改,日志表名為student_log create or replace trigger insertlog_trigger after insert on student begin insert into student_log values(100421230,'路奇', '女', '園林系');end;—在student表上創(chuàng)建一個語句級Insert觸發(fā)器

6、用戶權(quán)限和角色管理

(1)創(chuàng)建用戶user_student create user user_student identified by student default tablespace student_library

(2)為用戶user_student設(shè)置系統(tǒng)權(quán)限 grant create session to user_student;

(3)為用戶user_student撤銷系統(tǒng)權(quán)限

revoke create session from user_student;

(4)創(chuàng)建角色user_library

create role user_library identified by student

(5)為角色user_library授予權(quán)限

grant user_library to public;

(6)啟用角色user_library

set role user_library identified by student

第二篇:Oracle數(shù)據(jù)庫實驗報告

中南林業(yè)科技大學

實驗報告

課程名稱:

Oracle數(shù)據(jù)庫 專業(yè)班級: 姓名:

學號:

****年**月**日

實驗一

安裝和使用Oracle數(shù)據(jù)庫

【實驗目的】

1.掌握Oracle軟件安裝過程,選擇安裝組件 2.掌握建立Oracle數(shù)據(jù)庫,配置網(wǎng)絡(luò)連接 3.掌握Oracle企業(yè)管理器的基本操作 4.使用SQL*Plus,登錄到實例和數(shù)據(jù)庫 5.掌握命令方式的關(guān)閉和啟動實例及數(shù)據(jù)庫 【實驗內(nèi)容】

1.查看已安裝的Oracle組件

2.查看服務(wù),記錄下和數(shù)據(jù)庫有關(guān)的服務(wù)名,將他們設(shè)為手動方式,啟動相關(guān)服務(wù)。

3.配置監(jiān)聽器,查看是否在服務(wù)中有LISTENER,是否能啟動。4.配置本地net服務(wù),提示:設(shè)置正確的服務(wù)器地址和端口號。5.打開SQL*Plus,用SYS和SYSTEM用戶名和密碼登錄。6.思考題:有幾種打開SQL*Plus的方法?分別是什么? 7.用命令關(guān)閉實例和數(shù)據(jù)庫,記錄命令

8.用命令以NOMOUNT的方式啟動實例,再加載數(shù)據(jù)庫,打開數(shù)據(jù)庫。

【實驗結(jié)論】

1.查看已安裝的Oracle組件

2.查看服務(wù),記錄下和數(shù)據(jù)庫有關(guān)的服務(wù)名,將他們設(shè)為手動方式,啟動相關(guān)服務(wù)。

3.配置監(jiān)聽器,查看是否在服務(wù)中有LISTENER,是否能啟動。

4.配置本地net服務(wù),提示:設(shè)置正確的服務(wù)器地址和端口號。

5.打開SQL*Plus,用SYS和SYSTEM用戶名和密碼登錄。

6.思考題:有幾種打開SQL*Plus的方法?分別是什么?(1)直接打開 sql plus 即窗口方式(2)cmd 命令行方式

(3)WEB 頁面中 iSQL*Plus 方式 7.用命令關(guān)閉實例和數(shù)據(jù)庫,記錄命令 SQL>shutdown immediate

8.用命令以NOMOUNT的方式啟動實例,再加載數(shù)據(jù)庫,打開數(shù)據(jù)庫。

sql>startup nomount sql>alter database mount;sql>alter database open;sql>startup

(1).用SQLplus 命令:show parameters參數(shù)名

(2).用select [列名] from 表名

2.初始化文件有幾種?默認的保存位置在哪里?

初始化文件有三種:數(shù)據(jù)文件,日志文件,控制文件; 默認的保存位置E:oracleproduct10.2.0oradataorcl

4.打開OEM,查看三類物理文件信息

三類物理文件:數(shù)據(jù)文件、控制文件、日志文件 數(shù)據(jù)文件:.DBF存儲表、索引及數(shù)據(jù)結(jié)構(gòu)信息

日志文件:.LOG記錄對數(shù)據(jù)庫的所有修改信息,用于恢復

控制文件:.CTL二進制文件,記錄數(shù)據(jù)庫名、文件標識、檢查點

5.分別用select命令查詢V$parameter動態(tài)性能視圖,用show命令查看全局數(shù)據(jù)庫名、實例名、是否啟動自動歸檔、標準數(shù)據(jù)塊大小這四個參數(shù)的值,記錄命令和結(jié)果。用select命令查詢V$parameter動態(tài)性能視圖

用show命令查看全局數(shù)據(jù)庫名、實例名

用show命令查看是否啟動自動歸檔、標準數(shù)據(jù)塊大小

6.如何用命令查看數(shù)據(jù)文件、控制文件的文件名、存儲位置和狀態(tài)信息?

(1).查看數(shù)據(jù)文件的文件名、存儲位置和狀態(tài)信息

(2).查看控制文件的文件名、存儲位置和狀態(tài)信息

0

和服務(wù)器型文件都要找到),查看各類默認位置并記錄下來(包括物理文件所在目錄,該數(shù)據(jù)庫相關(guān)的各個目錄等),登錄到mydb數(shù)據(jù)庫。

2.用命令方式手工創(chuàng)建數(shù)據(jù)庫testorcl

(1)創(chuàng)建批處理文件,建立必需的各級目錄,參考第一題MYDB數(shù)據(jù)庫的默認目錄。

(4)運行數(shù)據(jù)庫建立腳本,更改相關(guān)服務(wù)為手動啟動方式

(5)運行數(shù)據(jù)字典等創(chuàng)建腳本

3.在DBCA中刪除MYDB數(shù)據(jù)庫。

Enter valuefor 4:runner Specify log path as parameter 5: Enter valuefor 5: D:oracleproduct10.2.0db_2RDBMSlog

二、完成下面的查詢,記錄查詢命令和結(jié)果。1.查詢HR方案種有哪些表,列出表名 2.設(shè)置行寬為160,每頁行數(shù)為40 3.查詢employees表中所有薪水在3000到6000元之間的員工編號、姓、名、受聘日期、工作代號、薪水、經(jīng)理代號、部門號,按部門號升序排列,同一部門按員工編號降序排列

4.查詢每個部門的人數(shù)、平均薪水、最高薪水、最低薪水,按部門編號升序排列

5.查詢first_name的第三個字母是t的員工編號,first_name,電話號碼,部門編號,部門名稱

6.在job_history表中查詢?nèi)温殨r間超過1年的員工編號,任職歷時月份(保留整數(shù)),工作代號,部門代號。

7.查詢每個部門經(jīng)理的員工編號、姓名、薪水、部門號。

【實驗結(jié)論】

一、需要訪問HR示例方案中的表,如果機器上沒有該示例方案,則運行相關(guān)包和相應(yīng)配置裝入HR方案。

1.將hr.rar解壓到D:oracleproduct10.2.0db_2demoschema human_resources目錄下,然后在SQL*PLUS 中執(zhí)行 hr_main.sql

二、完成下面的查詢,記錄查詢命令和結(jié)果。1.查詢HR方案種有哪些表,列出表名

5.查詢first_name的第三個字母是t的員工編號,first_name,電話號碼,部門編號,部門名稱

738

實驗五

PL/SQL編程

【實驗目的】

1.熟悉PL/SQL的數(shù)據(jù)類型和書寫規(guī)則 2.熟悉控制結(jié)構(gòu)和游標的使用 3.編寫和運行函數(shù)、過程和觸發(fā)器 【實驗內(nèi)容】

編寫腳本文件,調(diào)試運行腳本文件,并記錄結(jié)果。

1.在SQL*Plus中編寫一個PL/SQL塊,功能用于打印學生信息 在DECLARE部分完成:

(2)建立學生信息記錄類型stu_record_type,包括學號,姓名,性別,籍貫,學習成績和活動成績。均為可變長字符類型(3)編寫本地子過程:學生信息打印過程PrintStuRecord,把(1)中定義的記錄類型作為參數(shù)(4)定義學生信息記錄變量stu_record 在BEGIN…END部分完成:

(1)為stu_record變量的各個元素賦值如下: 學號:‘2001001’ 姓名:’李新’

性別:‘m’

籍貫:‘黑龍江省哈爾濱市’ 學習成績:‘Excellent’

0

(1)建立學生信息記錄類型stu_record_type,包括學號,姓名,性別,籍貫,學習成績和活動成績。均為可變長字符類型

set serveroutput on declare type stu_record_type is record

(s_no varchar2(8), s_name varchar2(10), s_sex varchar2(2), s_address varchar2(20), s_studyscore varchar2(10), s_activescore varchar2(10));(2)編寫本地子過程:學生信息打印過程PrintStuRecord,把中定義的記錄類型作為參數(shù)

procedure PrintStuRecord as begin dbms_output.put_line('學號:'|| stu_record.s_no);dbms_output.put_line('姓名 :'|| stu_record.s_name);dbms_output.put_line('性別:'|| stu_record.s_sex);dbms_output.put_line('籍貫:'|| stu_record.s_address);dbms_output.put_line('學習成績:'|| stu_record.s_studyscore);dbms_output.put_line('活動成績:'|| stu_record.s_activescore);end PrintStuRecord;(3)定義學生信息記錄變量stu_record stu_record stu_record_type;在BEGIN…END部分完成:

(4)為stu_record變量的各個元素賦值如下: 學號:‘2001001’ 姓名:’李新’

性別:‘m’

籍貫:‘黑龍江省哈爾濱市’

2.建立對bookinfo表的DML觸發(fā)器,一旦bookinfo表發(fā)生了任何變化,立即觸發(fā),對bookinfo表的數(shù)據(jù)進行統(tǒng)計,結(jié)果存儲在數(shù)據(jù)統(tǒng)計表中

(1)如果沒有則建立bookinfo表,選擇建立在scott用戶下,表結(jié)構(gòu)為(bookno varchar2(36)Primary key, bookname varchar2(40)not null, authorname varchar2(10)not null, publishtime date, bookprice float)

create table bookinfo(bookno varchar2(36)Primary key,4

Selectcount(bookno),count(distinct authorname)from bookinfo;end;/

(4)在bookinfo表中插入、刪除和更新信息,再查看major_stats表中數(shù)據(jù)的變化 <1>插入

647

實驗六

模式對象管理與安全管理

【實驗目的】

1.了解模式對象的類型

2.掌握在OEM中操作模式對象的方法

3.掌握命令方式建立表、視圖、索引等常見對象的方法 4.熟悉Oracle中權(quán)限分類和設(shè)置,理解系統(tǒng)提供用戶的角色和權(quán)限

5.熟練使用建立用戶、角色,為用戶授權(quán)、授予角色的命令

【實驗內(nèi)容】

1.創(chuàng)建一個TESTUSET用戶,密碼為test,默認表空間為user表空間

2.創(chuàng)建用戶后為其授予登錄數(shù)據(jù)庫和創(chuàng)建數(shù)據(jù)庫對象的權(quán)限 3.用TESTUSER用戶登錄數(shù)據(jù)庫

4.創(chuàng)建學生信息表(學號,姓名,性別,入學成績),定義主鍵和輸入數(shù)據(jù)(至少5條數(shù)據(jù)),提交添加的數(shù)據(jù)。并完成下面的題目:

(1)再繼續(xù)添加2條數(shù)據(jù),設(shè)置一個保存點savepoint,再添加1條數(shù)據(jù),執(zhí)行回退到保存點的回退命令。查看此時表中數(shù)據(jù)(2)查詢?nèi)雽W成績大于480的學生信息(3)建立男生信息視圖

(4)在“成績”字段上建立B-樹索引

5.創(chuàng)建一個表簇,名為empl_dep,容納empl表和dep表,有公

第三篇:Oracle課程設(shè)計 圖書管理系統(tǒng)

數(shù)據(jù)庫課程設(shè)計

設(shè)計名稱:圖書管理系統(tǒng)

組員:尚靖偉(122068)

張紅凱(122072)班級:計G121班

信息工程學院計算機系

2013年6月27日

“Oracle數(shù)據(jù)庫應(yīng)用設(shè)計”指導書

Oracle數(shù)據(jù)庫管理與設(shè)計

目 錄

目錄.........................................................................................................................I 前言.......................................................................................................................II 第1部分

Oracle管理技術(shù)........................................................................................1

實驗1 實驗2 實驗3 實驗4 實驗5 實驗6 實驗7 實驗8 第2部分

數(shù)據(jù)庫管理................................................................................................................1 角色和用戶管理........................................................................................................6 表和視圖管理............................................................................................................8 索引和序列管理......................................................................................................12 PL/SQL編程...........................................................................................................14 使用游標、存儲過程和觸發(fā)器..............................................................................22 表空間管理..............................................................................................................26 文件管理..................................................................................................................30

Oracle開發(fā)技術(shù)......................................................................................36

I

Oracle數(shù)據(jù)庫管理與設(shè)計

前 言

數(shù)據(jù)庫技術(shù)是計算機科學中發(fā)展最快的領(lǐng)域之一。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,數(shù)據(jù)庫技術(shù)與網(wǎng)絡(luò)技術(shù)相結(jié)合,已經(jīng)廣泛應(yīng)用于工作和生活的各個領(lǐng)域。同時,數(shù)據(jù)庫技術(shù)及其應(yīng)用已經(jīng)成為國內(nèi)外高校計算機專業(yè)和許多非計算機專業(yè)的必修或選修課程。

Oracle是當前最流行的大型關(guān)系數(shù)據(jù)庫之一,支持包括32位Windows、64位Windows、OS、HP-UX、AIX5L、Solaris和Linux等多種操作系統(tǒng),擁有廣泛的用戶和大量的應(yīng)用案例,已成為大型數(shù)據(jù)庫應(yīng)用系統(tǒng)的首選后臺數(shù)據(jù)庫系統(tǒng)。

本實驗課程要求學生全面了解Oracle數(shù)據(jù)庫的特點和功能。從安裝配置、安全性、可用性、互操作性、PL/SQL、可開發(fā)性、商業(yè)智能等多個方面,對Oracle數(shù)據(jù)庫的各項技術(shù)進行學習和實驗。

通過學習Oracle數(shù)據(jù)庫安裝、管理及開發(fā),為今后從事Oracle數(shù)據(jù)庫管理和開發(fā)工作打下良好的基礎(chǔ)。

本實驗課程共分2個部分。第1部分為Oracle的管理技術(shù),由實驗1至實驗8組成,內(nèi)容包括:(1)數(shù)據(jù)庫管理;(2)角色和用戶管理;(3)表和視圖管理;(4)索引和序列管理;(5)PL/SQL編程;(6)使用游標、存儲過程和觸發(fā)器;(7)表空間;(8)文件管理。第2部分為Oracle開發(fā)技術(shù),要求完成基于一定背景的管理信息系統(tǒng)的數(shù)據(jù)庫設(shè)計,如學生信息管理系統(tǒng)、圖書管理系統(tǒng)、人事信息管理系統(tǒng)、網(wǎng)上購物系統(tǒng)等。

II

第1部分 Oracle管理技術(shù)

第1部分 Oracle管理技術(shù)

實驗1 數(shù)據(jù)庫管理

目的和要求

(1)了解Oracle數(shù)據(jù)庫的邏輯結(jié)構(gòu)和物理結(jié)構(gòu);(2)了解Oracle Enterprise Manager的使用情況;(3)學習關(guān)閉和啟動數(shù)據(jù)庫實例的方法;(4)學習使用SQL語句創(chuàng)建數(shù)據(jù)庫的方法;(5)學習使用SQL語句刪除數(shù)據(jù)庫的方法。

實驗準備

首先要了解Oracle數(shù)據(jù)庫的邏輯結(jié)構(gòu),包括方案(schema)對象、數(shù)據(jù)塊(data block)、區(qū)間(extent)、段(segment)和表空間(tablespace)等。數(shù)據(jù)庫由若干個表空間組成,表空間由表組成,段由區(qū)間組成,區(qū)間則由數(shù)據(jù)塊組成。Oracle數(shù)據(jù)庫的物理結(jié)構(gòu)由構(gòu)成數(shù)據(jù)庫的操作系統(tǒng)文件所決定。每個Oracle數(shù)據(jù)庫都由3種類型的文件組成:數(shù)據(jù)文件、日志文件和控制文件。這些數(shù)據(jù)庫文件為數(shù)據(jù)庫信息提供真正的物理存儲。

Enterprise Manager 9i是Oracle 9i提供的新的管理工具,簡稱EM。使用它可以完成啟動、關(guān)閉數(shù)據(jù)庫,創(chuàng)建、刪除數(shù)據(jù)庫等功能。只有系統(tǒng)管理員或擁有CREATE DATABASE權(quán)限的用戶才能創(chuàng)建數(shù)據(jù)庫。可以在Enterprise Manager中通過圖形界面創(chuàng)建數(shù)據(jù)庫,也可以使用CREATE DATABASE語句創(chuàng)建數(shù)據(jù)庫。

實驗內(nèi)容

本實驗主要包括以下內(nèi)容。

(1)練習使用不同方法啟動和關(guān)閉數(shù)據(jù)庫實例。

(2)練習使用不同方法創(chuàng)建和刪除數(shù)據(jù)庫,要使操作的數(shù)據(jù)庫為用戶管理數(shù)據(jù)庫UserMan。

1.使用SHUTDOWN命令關(guān)閉數(shù)據(jù)庫實例

練習使用SHUTDOWN命令關(guān)閉數(shù)據(jù)庫實例,分別按以下方式啟動數(shù)據(jù)庫實例。

(1)正常關(guān)閉。等待當前所有已連接的用戶斷開與數(shù)據(jù)庫的連接,然后關(guān)閉數(shù)據(jù)庫。正常關(guān)閉的語句如下:

SHUTDOWN NORMAL

(2)立即關(guān)閉。回退活動事務(wù)處理并斷開所有已連接的用戶,然后關(guān)閉數(shù)據(jù)庫。立即關(guān)閉的語句如下:

SHUTDOWN IMMEDIATE

第1部分 Oracle管理技術(shù)

(3)事務(wù)處理關(guān)閉。完成事務(wù)處理后斷開所有已連接的用戶,然后關(guān)閉數(shù)據(jù)庫。事務(wù)處理關(guān)閉的語句如下:

SHUTDOWN TRANSACTIONAL

(4)中止關(guān)閉。中止數(shù)據(jù)庫實例,立即關(guān)閉數(shù)據(jù)庫。中止關(guān)閉的語句如下:

SHUTDOWN ABORT

每次執(zhí)行SHUTDOWN語句關(guān)閉數(shù)據(jù)庫實例之前,請執(zhí)行STARTUP命令啟動數(shù)據(jù)庫。2.使用STARTUP命令啟動數(shù)據(jù)庫實例

練習使用STARTUP命令啟動數(shù)據(jù)庫實例,分別按以下方式啟動數(shù)據(jù)庫實例。(1)啟動數(shù)據(jù)庫實例時不裝載數(shù)據(jù)庫。執(zhí)行此操作的命令如下:

STARTUP NOMOUNT

(2)啟動數(shù)據(jù)庫實例,裝載數(shù)據(jù)庫,但不打開數(shù)據(jù)庫。通常在數(shù)據(jù)庫維護時執(zhí)行此操作,對應(yīng)的命令如下:

STARTUP MOUNT

(3)啟動數(shù)據(jù)庫實例,裝載數(shù)據(jù)庫,打開數(shù)據(jù)庫。執(zhí)行此操作的命令如下:

STARTUP OPEN

第1部分 Oracle管理技術(shù)

(4)強制實例啟動。在遇到特殊異常的情況時,可以強制啟動實例。強制啟動實例的語句如下:

STARTUP FORCE

該語句將數(shù)據(jù)庫強行啟動到OPEN模式。

(5)啟動后限制對數(shù)據(jù)庫實例的訪問。執(zhí)行此操作的命令如下:

STARTUP RESTRICT

每次執(zhí)行STARTUP語句啟動數(shù)據(jù)庫實例之前,請執(zhí)行SHUTDOWN命令關(guān)閉數(shù)據(jù)庫。3.使用ORACLE Enterprise Manager關(guān)閉數(shù)據(jù)庫實例 按照下面的步驟關(guān)閉數(shù)據(jù)庫實例。

(1)在數(shù)據(jù)庫處于打開狀態(tài)時,使用SYS用戶以SYSDBA身份登錄到Enterprise Manager。在主目錄頁面的“一般信息”欄目中,可以看到“關(guān)閉”按鈕。

(2)單擊“關(guān)閉”按鈕,可以打開“主機和目標數(shù)據(jù)庫身份證明”頁面。用戶需要擁有管理員的權(quán)限才能關(guān)閉數(shù)據(jù)庫實例,包括主機操作系統(tǒng)的管理員和當前數(shù)據(jù)庫實例的SYSDBA用戶。

(3)輸入完成后,單擊“確定”按鈕,打開“確認關(guān)閉”頁面。

(4)單擊“是”按鈕,開始關(guān)閉數(shù)據(jù)庫。關(guān)閉操作完成后,單擊“刷新”按鈕,打開“啟動數(shù)據(jù)庫實例”頁面。

4.使用ORACLE Enterprise Manager啟動數(shù)據(jù)庫實例 按照下面的步驟啟動數(shù)據(jù)庫實例。

第1部分 Oracle管理技術(shù)

(1)使用SYS用戶以SYSDBA身份登錄到Enterprise Manager。

(2)單擊“啟動”按鈕,打開“主機和目標數(shù)據(jù)庫身份證明”頁面。用戶需要擁有管理員的權(quán)限才能啟動數(shù)據(jù)庫實例,包括主機操作系統(tǒng)的管理員和當前數(shù)據(jù)庫實例的SYSDBA用戶。

(3)輸入完成后,單擊“確定”按鈕,打開“確認打開”頁面。(4)單擊“是”按鈕,開始打開數(shù)據(jù)庫。5.使用SQL語句創(chuàng)建數(shù)據(jù)庫

按照如下條件創(chuàng)建數(shù)據(jù)庫OracleDB(以SYSDBA的用戶身份連接到數(shù)據(jù)庫)。

(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ù)庫中最大的實例數(shù)量為1。(7)定義存儲數(shù)據(jù)的字符集為US7ASCII。

(8)定義數(shù)據(jù)文件名稱為SYS01.dbf,初始大小為100MB。(9)定義默認的表空間為tbs_1。(10)定義臨時表空間為tempts1。

(11)定義臨時文件為temp01.dbf,大小為10MB。CREATE DATABASE語句實例:

CREATE DATABASE OracleDB

USER SYS IDENTIFIED BY bipt123

USER SYSTEM IDENTIFIED BY bipt123

CONTROLFILE REUSE MAXLOGFILES 10

MAXLOGMEMBERS 5

MAXDATAFILES 100

MAXINSTANCES 1

LOGFILE GROUP 1(‘E:redo01.log’)SIZE 100M ,GROUP 2(E:redo02.log’)SIZE 100M ,CHARACTER SET US7ASCII

DATAFILE ‘E:sys01.dbf’ SIZE 100M REUSE

EXTENT MANAGEMENT LOCAL

DEFAULT TABLESPACE tbs_1

DEFAULT TEMPORARY TABLESPACE tempts1

TEMPFILE ‘E:temp01.dbf’ SIZE 10M REUSE;6.使用SQL語句刪除數(shù)據(jù)庫

按照如下步驟刪除數(shù)據(jù)庫UserMan。

(1)在刪除數(shù)據(jù)庫之前,需要用戶以SYSDBA或SYSOPER身份登錄,代碼如下:

CONNECT SYS/SYSPWD AS SYSDBA;其中SYSPWD為SYS用戶的密碼,請根據(jù)實際情況輸入。(2)關(guān)閉數(shù)據(jù)庫,再以MOUNT模式啟動數(shù)據(jù)庫,代碼如下:

第1部分 Oracle管理技術(shù)

SHUTDOWN IMMEDIATE;STARTUP MOUNT;(3)刪除數(shù)據(jù)庫,代碼如下:

DROP DATABASE;

第1部分 Oracle管理技術(shù)

實驗2 角色和用戶管理

目的和要求

(1)了解Oracle數(shù)據(jù)庫用戶和角色的概念;(2)學習使用SQL語句創(chuàng)建Oracle用戶;(3)學習使用SQL語句創(chuàng)建Oracle角色;(4)學習使用SQL語句指定用戶的角色。

實驗準備

(1)了解Oracle數(shù)據(jù)庫用戶可以分為6種類型,即數(shù)據(jù)庫管理員、安全官員、網(wǎng)絡(luò)管理員、應(yīng)用程序開發(fā)員、應(yīng)用程序管理員和數(shù)據(jù)庫用戶;

(2)了解角色是對用戶的一種分類管理辦法,不同權(quán)限的用戶可以分為不同的角色;(3)了解使用CREATE ROLE語句創(chuàng)建角色的方法;(4)了解使用DROP ROLE語句刪除角色的方法;(5)了解使用GRANT語句指定用戶角色的方法;(5)了解使用CREATE USER語句創(chuàng)建用戶的方法;(4)了解使用DROP USER語句刪除用戶的方法。

實驗內(nèi)容

本實驗主要包括以下內(nèi)容。

(1)練習使用SQL語句創(chuàng)建數(shù)據(jù)庫角色;

(2)練習使用SQL語句為數(shù)據(jù)庫角色授予權(quán)限;(3)練習使用SQL語句指定用戶角色;(4)練習使用SQL語句創(chuàng)建數(shù)據(jù)庫用戶。

1.使用SQL語句創(chuàng)建數(shù)據(jù)庫角色

參照下面的步驟練習使用CREATE ROLE語句創(chuàng)建數(shù)據(jù)庫角色。(1)以SYSTEM用戶登錄到SQL*PLUS。

(2)使用CREATE ROLE語句創(chuàng)建角色UserManRole,密碼為myrolepwd,代碼如下:

CREATE ROLE UserManRole IDENTIFIED BY myrolepwd;

2.使用SQL語句為數(shù)據(jù)庫角色授權(quán)

參照下面的步驟練習使用GRANT語句為數(shù)據(jù)庫角色授權(quán)。(1)以SYSTEM用戶登錄到SQL*PLUS。

第1部分 Oracle管理技術(shù)

(2)使用GRANT語句將角色UserManRole授予CONNECT和RESOURCE權(quán)限,代碼如下:

--設(shè)置角色權(quán)限

GRANT CONNECT TO UserManRole;GRANT RESOURCE TO UserManRole;

3.使用SQL語句創(chuàng)建數(shù)據(jù)庫用戶

參照下面的步驟練習使用CREATE USER語句創(chuàng)建數(shù)據(jù)庫用戶。(1)以SYSTEM用戶登錄到SQL*PLUS。

(2)使用CREATE USER語句創(chuàng)建用戶UserManAdmin,密碼為UserPwd,代碼如下:

CREATE USER UserManAdmin IDENTIFIED BY UserPwd

DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP;

(3)使用GRANT語句對用戶UserManAdmin授予系統(tǒng)權(quán)限UNLIMITED TABLESPACE,代碼如下:

--設(shè)置系統(tǒng)權(quán)限

GRANT UNLIMITED TABLESPACE TO UserManAdmin;

4.使用SQL語句指定用戶角色

參照下面的步驟將用戶UserMan指定為角色UserManRole。(1)以SYSTEM用戶登錄到SQL*PLUS。

(2)使用GRANT語句將用戶UserMan指定為角色UserManRole,代碼如下:

GRANT UserManRole TO UserManAdmin;

第1部分 Oracle管理技術(shù)

實驗3 表和視圖管理

目的和要求

(1)了解Oracle表和視圖的概念;(2)學習使用SQL語句創(chuàng)建表;

(3)學習使用SELECT語句查詢數(shù)據(jù);(4)學習使用SQL語句創(chuàng)建視圖。

實驗準備

(1)了解表是數(shù)據(jù)庫中最常用的數(shù)據(jù)存儲單元,它包括所有用戶可以訪問的數(shù)據(jù)。作為關(guān)系型數(shù)據(jù)庫,Oracle表由行和列組成。

(2)視圖是一個虛擬的表,它在物理上并不存在。視圖可以把表或其它視圖的數(shù)據(jù)按照一定的條件組合起來,所以也可以把它看成是一個存儲的查詢。視圖并不包含數(shù)據(jù),它只是從基表中讀取數(shù)據(jù)。

(3)了解使用CREATE TABLE語句創(chuàng)建表的方法。(4)了解使用SELECT語句查詢數(shù)據(jù)的方法。(5)了解使用SQL語句創(chuàng)建視圖的方法。

實驗內(nèi)容

本實驗主要包括以下內(nèi)容。

(1)練習使用SQL語句創(chuàng)建表;

(2)練習使用SQL語句向表中插入數(shù)據(jù);(3)練習使用SQL語句修改表中的數(shù)據(jù);(4)練習使用SQL語句刪除表中的數(shù)據(jù);(5)練習使用SELECT語句查詢數(shù)據(jù);(6)練習使用SQL語句創(chuàng)建視圖。

1.使用SQL語句創(chuàng)建表

使用CREATE TABLE語句創(chuàng)建用戶信息表Users,結(jié)構(gòu)如表1所示。

表1 表Users的結(jié)構(gòu)

號 1 2 3 4 字段名稱 UserId UserName UserType UserPwd

數(shù)據(jù)結(jié)構(gòu) NUMBER VARCHAR2 40 NUMBER 1 VARCHAR2 40

用戶編號 用戶名

用戶類型(1 管理員用戶,2 普通用戶)

參照下面的步驟練習使用CREATE TABLE語句創(chuàng)建表Users。

(1)以實驗2中創(chuàng)建的UserManAdmin用戶登錄到SQL*PLUS。(2)使用CREATE TABLE語句創(chuàng)建表Users,代碼如下:

CREATE TABLE UserManAdmin.Users(UserId

UserName UserType

Number Primary Key, Varchar2(40)NOT NULL, Number(1),第1部分 Oracle管理技術(shù)

UserPwd);Varchar2(40)使用CREATE TABLE語句創(chuàng)建用戶登錄信息表LoginInfo,結(jié)構(gòu)如表2所示。

表2 表LoginInfo的結(jié)構(gòu)

號 1 2

字段名稱 UserId LoginTime

數(shù)據(jù)結(jié)構(gòu) NUMBER CHAR(20)

明 用戶編號 登錄時間

參照下面的步驟練習使用CREATE TABLE語句創(chuàng)建表LoginInfo。(1)以實驗2中創(chuàng)建的UserManAdmin用戶登錄到SQL*PLUS。(2)使用CREATE TABLE語句創(chuàng)建表LoginInfo,代碼如下:

CREATE TABLE UserManAdmin.LoginInfo(UserId

LoginTime);Number, CHAR(20)NOT NULL 2.使用SQL語句向表中插入數(shù)據(jù)

使用INSERT語句向表Users中插入用戶數(shù)據(jù),內(nèi)容如表3所示。

表3 表Users中的數(shù)據(jù)

UserId 1 2 3 4

UserName Admin User Zhangsan Lisi

UserType 2 2 2

UserPwd AdminPwd UserPwd ZhangsanPwd LisiPwd 參照下面的步驟練習使用INSERT語句向表Users中插入數(shù)據(jù)。(1)以實驗2中創(chuàng)建的UserManAdmin用戶登錄到SQL*PLUS。(2)使用INSERT語句向表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.Users VALUES(4, ‘Lisi’, 2, ‘LisiPwd’);COMMIT;使用INSERT語句向表LoginInfo中插入數(shù)據(jù)。內(nèi)容如表4所示。參照下面的步驟練習使用INSERT語句向表LoginInfo中插入數(shù)據(jù)。(1)以實驗2中創(chuàng)建的UserManAdmin用戶登錄到SQL*PLUS。(2)使用INSERT語句向表LoginInfo中插入數(shù)據(jù),代碼如下:

INSERT INTO UserManAdmin.LoginInfo VALUES(1, ‘2012-5-15 10:33:02’);INSERT INTO UserManAdmin.LoginInfo VALUES(1, ‘2012-5-16 08:34:13’);INSERT INTO UserManAdmin.LoginInfo VALUES(1, ‘2012-5-17 09:13:11’);INSERT INTO UserManAdmin.LoginInfo VALUES(2, ‘2012-5-15 07:35:02’);INSERT INTO UserManAdmin.LoginInfo VALUES(2, ‘2012-5-16 08:11:54’);INSERT INTO UserManAdmin.LoginInfo VALUES(2, ‘2012-5-17 09:13:11’);INSERT INTO UserManAdmin.LoginInfo VALUES(3, ‘2012-5-15 08:34:02’);INSERT INTO UserManAdmin.LoginInfo VALUES(3, ‘2012-5-16 09:34:13’);

第1部分 Oracle管理技術(shù)

INSERT INTO UserManAdmin.LoginInfo VALUES(3, ‘2012-5-17 10:13:09’);INSERT INTO UserManAdmin.LoginInfo VALUES(4, ‘2012-5-15 11:34:02’);INSERT INTO UserManAdmin.LoginInfo VALUES(4, ‘2012-5-16 13:34:13’);INSERT INTO UserManAdmin.LoginInfo VALUES(4, ‘2012-5-17 15:13:12’);COMMIT;

表4 表LoginInfo中的數(shù)據(jù)

UserId 1 1 1 2 2 2 3 3 3 4 4 4

LoginTime 2012-5-15 10:33:02 2012-5-16 08:34:13 2012-5-17 09:13:11 2012-5-15 07:35:02 2012-5-16 08:11:54 2012-5-17 09:13:11 2012-5-15 08:34:02 2012-5-16 09:34:13 2012-5-17 10:13:09 2012-5-15 11:34:02 2012-5-16 13:34:13 2012-5-17 15:13:12 3.使用SQL語句修改表中的數(shù)據(jù)

使用UPDATE語句可以修改表Users中的數(shù)據(jù)。參照下面的步驟練習將表Users中Admin用戶的密碼修改為AdminPassword。

(1)以SYSTEM用戶登錄到SQL*PLUS。

(2)使用UPDATE語句將表Users中Admin用戶的密碼修改為AdminPassword,代碼如下:

UPDATE UserManAdmin.Users SET UserPwd=‘AdminPassword’ WHERE UserName=‘Admin’

(3)使用SELECT語句查看用戶Admin的密碼,代碼如下:

SELECT UserPwd FROM UserManAdmin.Users WHERE UserName=‘Admin’

修改表

ALTER TABLE USERMANADMIN.LOGININFO MODIFY(LOGINTIME DATE)4.使用SQL語句刪除表中的數(shù)據(jù)

使用DELETE語句可以刪除表Users中的數(shù)據(jù)。參照下面的步驟練習將表Users中Zhansan用戶的記錄刪除。

(1)以SYSTEM用戶登錄到SQL*PLUS。

(2)使用DELETE語句將表Users中Zhangsan用戶的記錄刪除,代碼如下:

DELETE FROM UserManAdmin.Users WHERE UserName=‘Zhangsan’

(3)使用SELECT語句查看表Users中的數(shù)據(jù),確認用戶Zhangsan的記錄是否被刪除,代碼如下:

SELECT * FROM UserManAdmin.Users 5.使用SELECT語句查詢數(shù)據(jù)

使用SELECT語句查詢數(shù)據(jù)庫中的用戶數(shù)據(jù),分別按以下方式查詢數(shù)據(jù)庫。

第1部分 Oracle管理技術(shù)

(1)查詢表Users中的所有數(shù)據(jù)。

以SYSTEM用戶登錄到SQL*PLUS,然后執(zhí)行如下代碼:

SELECT * FROM UserManAdmin.Users *代表UserManAdmin.Users中的所有字段。(2)在返回結(jié)果中使用自定義標題。

以SYSTEM用戶登錄到SQL*PLUS,然后執(zhí)行如下代碼:

SELECT UserName AS 用戶名, UserPwd AS 密碼 FROM UserManAdmin.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)對查詢結(jié)果進行排序。

查詢所有普通用戶的信息,并按用戶名的降序排列結(jié)果集。以SYSTEM用戶登錄到SQL*PLUS,然后執(zhí)行如下代碼:

SELECT * FROM UserManAdmin.Users ORDER BY UserName DESC(5)對記錄進行統(tǒng)計。

統(tǒng)計表Users中共有多少個用戶記錄。以SYSTEM用戶登錄到SQL*PLUS,然后執(zhí)行如下代碼:

SELECT COUNT(*)FROM UserManAdmin.Users(6)實現(xiàn)連接查詢。

查看每個用戶的登錄記錄。以SYSTEM用戶登錄到SQL*PLUS,然后執(zhí)行如下代碼:

SELECT u.UserName, 1.LoginTime FROM Users u INNER JOIN LoginInfo 1 ON u.UserId=1.UserID 在上面的SELECT語句中涉及兩個表:表Users和表LoginInfo。在FROM子句中,為每個表指定一個別名,表Users的別名為u,表LoginInfo的別名為1。

6.使用SQL語句創(chuàng)建視圖

使用CREATE VIEW語句創(chuàng)建用戶登錄信息表UserLogin,代碼如下:

CREATE VIEW UserLogin AS SELECT u.UserName,l.LoginTime

FROM

UserManAdmin.Users

u

INNER

JOIN UserManAdmin.LoginInfo l ON u.UserId=l.UserID;

SELECT * FROM UserLogin;

第1部分 Oracle管理技術(shù)

實驗4 索引和序列管理

目的和要求

(1)了解索引的概念和作用;(2)了解序列的概念和作用;

(3)學習使用SQL語句創(chuàng)建索引;(4)學習使用SQL語句創(chuàng)建序列。

實驗準備

(1)了解索引是對數(shù)據(jù)庫表中一個或多個列的值進行排序的結(jié)構(gòu)。可以利用索引快速訪問數(shù)據(jù)庫表中的特定信息。

(2)了解序列號是一個Oracle整數(shù),最多可有38個數(shù)字。序列的作用是自動生成整型數(shù)值,作為表中標識字段的值。有許多表在創(chuàng)建時定義了一個標識字段,此字段的值需要由系統(tǒng)自動生成,每當插入一條新記錄時,此字段的值自動加1。在Oracle中,這個功能由序列來實現(xiàn)。

(3)了解使用CREATE INDEX語句創(chuàng)建索引的方法。

(4)了解使用CREATE SEQUENCE語句創(chuàng)建序列的方法。

實驗內(nèi)容

本實驗主要包括以下內(nèi)容。

(1)練習使用SQL語句創(chuàng)建索引;(2)練習使用SQL語句創(chuàng)建序列;

1.使用SQL語句創(chuàng)建索引

使用CREATE INDEX語句在Users表的UserName字段上創(chuàng)建索引。代碼如下:

CREATE INDEX index_username ON UserManAdmin.Users(UserName)TABLESPACE Users;

2.在創(chuàng)建表的同時創(chuàng)建索引

在使用CREATE TABLE語句創(chuàng)建表的同時,可以為指定字段創(chuàng)建索引。創(chuàng)建表Employees,在字段EmpName上創(chuàng)建索引。表Employees的結(jié)構(gòu)如表5所示。

表5 表Employees的結(jié)構(gòu)

號 1 2 3 4

字段名稱 EmpId EmpName Sex UserId

數(shù)據(jù)結(jié)構(gòu) NUMBER VARCHAR2(50)CHAR(2)NUMBER

明 編號 姓名 性別 用戶編號

代碼如下:

CREATE TABLE UserManAdmin.Employees(EmpId

EmpName Sex

Number, VARCHAR2(50)UNIQUE, CHAR(2),第1部分 Oracle管理技術(shù)

UserId);Number 3.使用SQL語句創(chuàng)建序列

使用CREATE SEQUENCE語句創(chuàng)建序列。序列的最小值為1,并且沒有最大值限制。序列的初始值為1,序列間隔為1。代碼如下:

CREATE SEQUENCE EMP_S MINVALUE 1 NOMAXVALUE START WITH 1 INCREMENT BY 1 NOCYCLE CACHE 20;2.在插入數(shù)據(jù)時使用序列

在使用INSERT語句向表Employees中插入數(shù)據(jù)時,可以使用序列EMP_S生成字段EmpId的值,代碼如下:

INSERT INTO UserManAdmin.Employees(EmpId, EmpName)VALUES(EMP_S.NEXTVAL, ‘Employee1’);INSERT INTO UserManAdmin.Employees(EmpId, EmpName)VALUES(EMP_S.NEXTVAL, ‘Employee2’);INSERT INTO UserManAdmin.Employees(EmpId, EmpName)VALUES(EMP_S.NEXTVAL, ‘Employee3’);COMMIT;SELECT * FROM UserManAdmin.Employees

第1部分 Oracle管理技術(shù)

實驗5 PL/SQL編程

目的和要求

(1)了解PL/SQL語言的結(jié)構(gòu);

(2)了解PL/SQL變量和常量的聲明和使用方法;(3)學習條件語句的使用方法;(4)學習分支語句的使用方法;(5)學習循環(huán)語句的使用方法;(6)學習使用Oracle系統(tǒng)函數(shù)。

實驗準備

首先要了解PL/SQL語言是結(jié)構(gòu)化程序設(shè)計語言。塊(Block)是PL/SQL程序中最基本的結(jié)構(gòu),所有PL/SQL程序都是由塊組成的。PL/SQL的塊由變量聲明、程序代碼和異常處理代碼3部分組成。在PL/SQL中,常量和變量在使用前必須聲明,可以使用DECLARE對變量進行聲明。

實驗內(nèi)容

本實驗主要包括以下內(nèi)容。

(1)練習條件語句的使用方法;(2)練習分支語句的使用方法;(3)練習循環(huán)語句的使用方法;(4)練習使用Oracle系統(tǒng)函數(shù)。

1.使用條件語句

參照下面的步驟練習使用條件語句。

(1)以SYSTEM用戶登錄到SQL*PLUS。(2)執(zhí)行如下程序,觀察結(jié)果。

SET ServerOutput ON;DECLARE

Num INTEGER :=-11;BEGIN

IF Num < 0 THEN

dbms_output.put_line(‘負數(shù)’);

ELSIF Num > 0 THEN

dbms_output.put_line(‘正數(shù)’);

ELSE

dbms_output.put_line(‘0’);

END IF;END;

第1部分 Oracle管理技術(shù)

2.使用分支語句

參照下面的步驟練習使用分支語句。

(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;

dbms_output.put_line(Result);END;

第1部分 Oracle管理技術(shù)

3.使用循環(huán)語句

LOOP…EXIT…END語句:此語句的功能是重復執(zhí)行循環(huán)體中的程序塊,直到執(zhí)行EXIT語句,退出循環(huán)。

LOOP…EXIT WHEN…END:此語句的功能是重復執(zhí)行循環(huán)體中的程序塊,直到滿足EXIT WHEN后面的判斷語句時,退出循環(huán)。

WHILE…LOOP…END LOOP語句:此語句的功能是當WHILE后面的條件語句成立時,重復執(zhí)行循環(huán)體中的程序塊。

參照下面的步驟練習使用循環(huán)語句。

(1)以SYSTEM用戶登錄到SQL*PLUS。(2)執(zhí)行如下程序,觀察結(jié)果。

程序一:

SET ServerOutput ON;DECLARE

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 := 1;

v_Sum INTEGER := 0;BEGIN

LOOP

v_Sum := v_Sum + v_Num;

第1部分 Oracle管理技術(shù)

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 := 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;

第1部分 Oracle管理技術(shù)

4.使用系統(tǒng)函數(shù)(1)數(shù)值型函數(shù)

·ABS:返回給定數(shù)字表達式的絕對值。

·CEIL:返回大于或等于所給數(shù)字表達式的最小整數(shù)。·FLOOR:返回小于或等于所給數(shù)字表達式的最大整數(shù)。·POWER:返回給定表達式指定次方的值。

·ROUND:返回數(shù)字表達式并四舍五入為指定的長度或精度。(2)字符型函數(shù)

·ASCII:返回字符表達式最左端字符的ASCII代碼值。·LENGTH:返回給定字符串表達式的字符(而不是字節(jié))個數(shù),其中不包含尾隨空格。·UPPER:返回將小寫字符數(shù)據(jù)轉(zhuǎn)換為大寫的字符表達式。(3)日期型函數(shù)

·SYSDATE:返回當前日期和時間。·TO_CHAR:轉(zhuǎn)換日期為字符串。

·LAST_DAY:返回指定日期所在月份的最后一天的日期。這個函數(shù)可以被用來確定當前月中還剩下多少天。

·MONTHS_BETWEEN:返回兩個日期之間月的數(shù)目。(4)統(tǒng)計函數(shù)

·COUNT:返回組中項目的數(shù)量。·MAX:返回表達式的最大值。·MIN:返回表達式的最小值。

參照下面的步驟練習使用系統(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;

第1部分 Oracle管理技術(shù)

程序三:

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.put_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;

第1部分 Oracle管理技術(shù)

程序七:

SELECT UserName, LENGTH(UserName)FROM UserManAdmin.Users WHERE UserType = 1;程序八:

SET ServerOutput ON;BEGIN

dbms_output.put_line(UPPER(‘a(chǎn)bc’));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

dbms_output.put_line(LAST_DAY(SYSDATE));END;

第1部分 Oracle管理技術(shù)

程序十二:

SET ServerOutput ON;DECLARE

date1 VARCHAR(20):= ‘2010-05-17’;

date2 VARCHAR(20):= ‘2010-10-17’;BEGIN

dbms_output.put_line(END;

MONTHS_BETWEEN(TO_DATE(date2,‘yyyy-mm-dd’), TO_DATE(date1, ‘yyyy-mm-dd’)));

程序十三:

SELECT COUNT(UserName)FROM UserManAdmin.Users;

程序十四:

SELECT MAX(UserId)FROM UserManAdmin.Users;

程序十五:

SELECT MIN(UserId)FROM UserManAdmin.Users;

第1部分 Oracle管理技術(shù)

實驗6 使用游標、存儲過程和觸發(fā)器

目的和要求

(1)了解游標的概念和工作原理;(2)了解存儲過程的分類和使用方法;(3)了解觸發(fā)器的概念;

(4)學習編寫和執(zhí)行自定義過程;(5)學習編寫和執(zhí)行自定義函數(shù);(6)學習創(chuàng)建和使用觸發(fā)器。

實驗準備

首先要了解游標是映射在結(jié)果集中一行數(shù)據(jù)上的位置實體,有了游標,用戶就可以訪問結(jié)果集中的任意一行數(shù)據(jù)了。將游標放置到某行后,即可對該行數(shù)據(jù)進行操作,最常見的操作是提取當前行數(shù)據(jù)。

了解PL/SQL包括3種存儲過程,即過程、函數(shù)和程序包。

了解觸發(fā)器是一種特殊的存儲過程,當指定表中的數(shù)據(jù)發(fā)生變化時自動運行。

實驗內(nèi)容

本實驗主要包括以下內(nèi)容。

(1)練習創(chuàng)建和使用游標的方法;

(2)練習編寫和執(zhí)行自定義過程的方法;(3)練習編寫和執(zhí)行自定義函數(shù)的方法;(4)練習創(chuàng)建和使用觸發(fā)器的方法。

1.創(chuàng)建和使用游標

創(chuàng)建游標MyCursor,從表LoginInfo中讀取指定用戶的登錄信息,操作步驟如下:(1)以UserManAdmin用戶登錄到SQL*PLUS。(2)執(zhí)行如下程序:

/*打開顯示模式*/ SET ServerOutput ON;DECLARE

CURSOR Mycursor(varUserName VARCHAR2)IS

SELECT u.UserName,l.LoginTime

FROM

UserManAdmin.Users

u, UserManAdmin.LoginInfo l

WHERE u.UserId =l.UserId;BEGIN

FOR var_LoginRecord IN MyCursor(‘Admin’)LOOP

dbms_output.put_line(‘用戶名:’ || var_LoginRecord.UserName || ‘, 登錄時間:’ || var_LoginRecord.LoginTime);

END LOOP;END;

第1部分 Oracle管理技術(shù)

2.編寫和執(zhí)行自定義過程

參照下面的步驟練習編寫和執(zhí)行自定義過程:(1)以UserManAdmin用戶登錄到SQL*PLUS。(2)執(zhí)行如下程序,觀察結(jié)果。

/*創(chuàng)建示例過程ResetPwd,此過程的功能是將表User中指定用戶的密碼重置為111111*/ CREATE OR REPLACE PROCEDURE UserManAdmin.ResetPwd(u_UserId IN NUMBER)AS BEGIN UPDATE UserManAdmin.Users SET UserPwd = ‘111111’ WHERE UserId = u_UserId;END;

/*使用EXEXUTE命令可以調(diào)用過程。如,要將編號為1(用戶Admin)的用戶密碼重置*/ EXECUTE UserManAdmin.ResetPwd(1);SELECT UserName, UserPwd FROM Users;

第1部分 Oracle管理技術(shù)

/*使用DROP PROCEDURE命令可以刪除過程*/ DROP PROCEDURE UserManAdmin.ResetPwd;

3.編寫和執(zhí)行自定義函數(shù)

參照下面的步驟練習編寫和執(zhí)行自定義函數(shù)GetLastLogin,獲取指定用戶最后一次登錄的時間。

(1)以SYSTEM用戶登錄到SQL*PLUS。(2)執(zhí)行如下程序:

CREATE OR REPLACE FUNCTION GetLastLogin(n_name IN UserManAdmin.Users.UserName%Type)RETURN UserManAdmin.LoginInfo.LoginTime%Type AS outTime UserManAdmin.LoginInfo.LoginTime%Type;BEGIN

SELECT MAX(l.LoginTime)INTO outTime FROM UserManAdmin.Users u join UserManAdmin.LoginInfo l on u.UserId = l.UserId

WHERE u.UserName = ‘’|| n_name ||’’

ORDER BY l.LoginTime DESC;

RETURN outTime;END;

4.創(chuàng)建和使用觸發(fā)器

參照下面的步驟創(chuàng)建一個觸發(fā)器MyTrigger,它的作用是當表Users中的記錄被刪除后,自動刪除表LoginInfo中對應(yīng)的用戶登錄記錄,從而保證數(shù)據(jù)的完整性。

(1)以SYSTEM用戶登錄到SQL*PLUS。(2)執(zhí)行如下程序,觀察結(jié)果。

CREATE OR REPLACE TRIGGER UserManAdmin.MyTrigger AFTER DELETE ON UserManAdmin.Users FOR EACH ROW BEGIN

DELETE FROM UserManAdmin.LoginInfo WHERE UserId = :old.UserId;END;

第1部分 Oracle管理技術(shù)

(3)執(zhí)行下面的語句,觀察刪除用戶Users后,在表LoginInfo中是否還存在其登錄的記錄。

DELETE FROM UserManAdmin.Users WHERE UserName =’User’;

SELECT * FROM UserManAdmin.LoginInfo

第1部分 Oracle管理技術(shù)

實驗7 表空間管理

目的和要求

(1)了解表空間的概念和工作原理;

(2)學習創(chuàng)建、修改、查詢和刪除用戶表空間;

(3)學習創(chuàng)建、修改、查詢、切換和刪除撤銷表空間。

實驗準備

首先要了解表空間是Oracle數(shù)據(jù)庫最高層次的邏輯存儲結(jié)構(gòu),其中保存著由段、區(qū)和塊等邏輯存儲結(jié)構(gòu)描述的各種模式對象。

Oracle表空間分為系統(tǒng)表空間、臨時表空間、撤銷表空間和用戶表空間4種類型。用戶表空間主要用來保存用戶數(shù)據(jù),其包含的數(shù)據(jù)文件稱為用戶數(shù)據(jù)文件,是DBA管理的主要表空間。

保存撤銷記錄的存儲空間是撤銷表空間。利用撤銷表空間可以實現(xiàn)撤銷事務(wù)、數(shù)據(jù)庫恢復和數(shù)據(jù)的讀一致性等功能。

實驗內(nèi)容

本實驗主要包括以下內(nèi)容。

(1)練習創(chuàng)建和使用用戶表空間的方法;(2)練習創(chuàng)建和使用撤銷表空間的方法。

1.創(chuàng)建本地管理方式的用戶表空間

為Oracle數(shù)據(jù)庫新建一個用戶表空間,該表空間中包括2個數(shù)據(jù)文件,區(qū)的分配管理方式為AUTOALLOCATE或UNIFORM,段的存儲管理方式為MANUAL或AUTO。操作步驟如下:

(1)在SQL*Plus中執(zhí)行CREATE TABLESPACE語句創(chuàng)建新的用戶表空間,并通過查詢V$TABLESPACE視圖查看新建用戶表空間情況。

Create tablespace newspace Datafile ‘D:oracleoradatanew01.dbf’ size 10m

第1部分 Oracle管理技術(shù)

(2)通過OEM控制臺創(chuàng)建新的臨時表空間,并查看新建用戶表空間情況。

2.創(chuàng)建本地管理方式的臨時表空間

為Oracle數(shù)據(jù)庫新建一個臨時表空間,該表空間中包括1個數(shù)據(jù)文件,并設(shè)置該表空間為默認臨時表空間。操作步驟如下:

(1)在SQL*Plus中執(zhí)行CREATE TEMPORARY TABLESPACE語句創(chuàng)建新的臨時表空間,設(shè)置該表空間為默認臨時表空間,并通過查詢V$TABLESPACE視圖查看新建臨時表空間情況。

CREATE TEMPORARY TABLESPACE newtemp tempfile 'D:oracleoradatanewtemp01.dbf' size 10m;

select * from V$tablespace;

(2)通過OEM控制臺創(chuàng)建新的臨時表空間,設(shè)置該表空間為默認臨時表空間,并查看新建臨時表空間情況。

3.改變表空間的可用性

將新建的用戶表空間設(shè)置為脫機狀態(tài),之后再將其改為聯(lián)機狀態(tài)。操作步驟如下:(1)在SQL*Plus中執(zhí)行ALTER TABLESPACE語句設(shè)置表空間為脫機狀態(tài),并通過查詢DBA_TABLESPACES視圖查看表空間的狀態(tài),之后再執(zhí)行ALTER TABLESPACE語句設(shè)置表空間為聯(lián)機狀態(tài)。

Alter tablespace newspace Add datafile ‘D:oracleoradatanew02.dbf’ size 10m

第1部分 Oracle管理技術(shù)

(2)通過OEM控制臺設(shè)置表空間為脫機狀態(tài)或聯(lián)機狀態(tài),并查看修改之后的表空間狀態(tài)。

4.刪除表空間

刪除無用的表空間及其在磁盤上的數(shù)據(jù)文件。操作步驟如下:

(1)在SQL*Plus中執(zhí)行DROP TABLESPACE語句刪除表空間及其在磁盤上的數(shù)據(jù)文件。

Drop tablespace newspace;

(2)通過OEM控制臺刪除表空間及其在磁盤上的數(shù)據(jù)文件。

5.查詢表空間的各種信息

查詢表空間的各種信息。操作步驟如下:(1)在SQL*Plus中查詢V$TABLESPACE、DBA_TABLESPACES、DBA_SEGMENTS、DBA_EXTENTS、DBA_FREE_SPACE、V_$DATAFILE和V$TEMPFILE動態(tài)性能視圖獲得表空間的信息。

(2)在OEM控制臺中查詢表空間的信息。

6.創(chuàng)建撤銷表空間

在數(shù)據(jù)庫建立后創(chuàng)建一個撤銷表空間,并設(shè)置該表空間為默認撤銷表空間。操作步驟如

第1部分 Oracle管理技術(shù)

下:

(1)在SQL*Plus中執(zhí)行CREATE UNDO TABLESPACE語句創(chuàng)建一個撤銷表空間,并執(zhí)行ALTER SYSTEM語句修改初始化參數(shù)UNDO_TABLESPACE,設(shè)置該撤銷表空間為默認撤銷表空間。

CREATE UNDO TABLESPACE undotb datafile 'D:oracleoradataundotb01.dbf' size 2m reuse;

(2)通過OEM控制臺向某一撤銷表空間中添加新的數(shù)據(jù)文件,并查看新的數(shù)據(jù)文件情況。

7.查詢撤銷表空間的各種信息

查詢表空間的各種信息。操作步驟如下:

(1)在SQL*Plus中查詢V$UNDOSTAT、V$ROLLSTAT、V$TRANSACTION、DBA_UNDO_EXTENTS動態(tài)性能視圖獲得撤銷表空間的信息。

select * from V$tablespace;

(2)利用V$UNDOSTAT動態(tài)性能視圖計算撤銷表空間所需要的存儲空間。

第1部分 Oracle管理技術(shù)

實驗8 文件管理

目的和要求

(1)了解初始化參數(shù)文件、控制文件、重做日志文件和數(shù)據(jù)文件的概念;(2)學習創(chuàng)建和使用初始化參數(shù)文件;

(3)學習創(chuàng)建、備份、查詢和刪除控制文件;(4)學習創(chuàng)建和使用重做日志文件;

(5)學習添加、移動、查詢和刪除數(shù)據(jù)文件。

實驗準備

首先要了解初始化參數(shù)文件是Oracle實例運行所需的參數(shù)配置文件,Oracle數(shù)據(jù)庫的物理結(jié)構(gòu)、實例中的內(nèi)存結(jié)構(gòu),以及啟動后臺進程的種類和數(shù)量等參數(shù),都需要在初始化參數(shù)文件中設(shè)置,是數(shù)據(jù)庫運行和性能調(diào)整的重要文件。初始化參數(shù)文件分為兩類:PFILE和SPFILE。PFILE是文本形式的初始化參數(shù)文件,可以利用任何文本編輯器對它進行查看或編輯。SPFILE的作用同PFILE一樣,但是該文件是二進制的,無法用文本編輯器查看或修改。

控制文件是一個非常小的二進制文件,其中存放有Oracle數(shù)據(jù)庫物理結(jié)構(gòu)(數(shù)據(jù)文件和重做日志文件等)的信息,是Oracle啟動和運行必備的文件。

重做日志文件中保存著事物對數(shù)據(jù)庫進行的修改的重做項,是數(shù)據(jù)庫進行恢復的必要部分。重做日志文件分為聯(lián)機重做日志文件和歸檔重做日志文件。

數(shù)據(jù)文件是Oracle主要的物理存儲結(jié)構(gòu)之一。一個表空間可以有多個數(shù)據(jù)文件,一個數(shù)據(jù)文件只屬于一個表空間。數(shù)據(jù)文件可分成系統(tǒng)數(shù)據(jù)文件、撤銷數(shù)據(jù)文件、臨時數(shù)據(jù)文件和用戶數(shù)據(jù)文件。

實驗內(nèi)容

本實驗主要包括以下內(nèi)容。

(1)練習創(chuàng)建和使用初始化參數(shù)文件;(2)練習創(chuàng)建和使用控制文件;(3)練習創(chuàng)建和使用重做日志文件;(4)練習添加和使用數(shù)據(jù)文件。

1.創(chuàng)建初始化參數(shù)文件

創(chuàng)建PFILE和SPFILE文件。操作步驟如下:

(1)找到已有的PFILE文件,使用COPY或者在Windows資源管理器中使用復制/粘貼功能,創(chuàng)建一個新的PFILE文件。

(2)使用CREATE PFILE FROM SPFILE命令創(chuàng)建一個新的PFILE文件。

第1部分 Oracle管理技術(shù)

(3)利用OEM創(chuàng)建一個新的PFILE文件。

(4)使用CREATE SPFILE FROM PFILE命令創(chuàng)建一個新的SPFILE文件。create spfile='D:oracleora92databaseininew01.ora' pfile='D:oracleadminBIPT921pfile init.ora.23201322748';

from

(5)利用OEM創(chuàng)建一個新的SPFILE文件。

2.修改初始化參數(shù)

修改SPFILE文件中的初始化參數(shù)。操作步驟如下:

(1)在SQL*Plus中使用動態(tài)性能視圖V$SYSTEM_PARAMETER查看初始化參數(shù)值和屬性。

(2)使用ALTER SYSTEM SET 參數(shù)名=參數(shù)值 SCOPE=SPFILE | MEMORY | BOTH

第1部分 Oracle管理技術(shù)

命令修改其中的動態(tài)或靜態(tài)的初始化參數(shù)。

(3)再使用動態(tài)性能視圖V$SYSTEM_PARAMETER或在OEM中查看初始化參數(shù)值是否被修改。

(4)或者在OEM中修改其中的初始化參數(shù),并查看初始化參數(shù)值和屬性。3.備份控制文件

為Oracle數(shù)據(jù)庫備份一個控制文件。操作步驟如下:

(1)使用ALTER DATABASE BACKUP CONTROLFILE TO命令備份控制文件。

(2)在OEM控制臺中備份控制文件。

4.查詢控制文件信息

查詢控制文件中的各種信息。操作步驟如下:(1)在SQL*Plus中查詢V$CONTROLFILE、V$CONTROLFILE_RECORD_SECTION、V$PARAMETER動態(tài)性能視圖獲得控制文件的基本信息和記錄文檔段信息。

第1部分 Oracle管理技術(shù)

(2)在OEM控制臺中查詢控制文件的基本信息和記錄文檔段信息。

5.創(chuàng)建多路聯(lián)機重做日志文件組

為Oracle數(shù)據(jù)庫新建一個聯(lián)機重做日志組,該組包含2個成員。操作步驟如下:(1)使用SYSDBA身份登錄SQL*Plus。

(2)查詢V$LOGLFILE視圖,了解目前的重做日志文件組情況。

(3)執(zhí)行ALTER DATABASE ADD LOGFILE命令增加一個重做日志文件組,該組包含2個成員。

(4)重新查詢V$LOGLFILE視圖,查看新建重做日志文件組情況。

6.使用LogMiner Viewer工具對重做日志文件進行分析

使用LogMiner Viewer工具分析重做日志文件,獲得指定用戶在規(guī)定的時間段內(nèi)對數(shù)據(jù)庫所進行的更改。操作步驟如下:

(1)啟動OEM控制臺,登錄Oracle管理服務(wù)器。(2)啟動LogMiner Viewer。(3)設(shè)置查詢條件。

(4)執(zhí)行并分析查詢結(jié)果。(5)保存分析結(jié)果。

7.向表空間中添加數(shù)據(jù)文件

向表空間中添加一個新的數(shù)據(jù)文件。操作步驟如下:(1)在SQL*Plus中使用ALTER TABLESPACE...ADD DATAFILE語句向某一表空間中添加一個數(shù)據(jù)文件,并通過查詢DBA_DATA_FILES視圖查看新建數(shù)據(jù)文件的情況。

ALTER TABLESPACE dtf add datafile 'D:oracleadminBIPT921pfileinit.ora.23201322748' size 10m reuse;

第1部分 Oracle管理技術(shù)

(2)通過OEM控制臺添加新的數(shù)據(jù)文件,并查看新的數(shù)據(jù)文件情況。

8.移動單個數(shù)據(jù)文件

將表空間中某個數(shù)據(jù)文件從一個物理磁盤移動到另一個磁盤。操作步驟如下:

(1)在SQL*Plus中使用ALTER TABLESPACE語句將包含有需要移動數(shù)據(jù)文件的表空間脫機。

ALTER TABLESPACE dtf offline;

(2)在操作系統(tǒng)中,將數(shù)據(jù)文件復制到另一個磁盤上。

(3)使用ALTER TABLESPACE語句對表空間中的數(shù)據(jù)文件重命名。alter tablespace XDB rename datafile'XDB01.DBF'to'XDB02.DBF'(4)使用ALTER TABLESPACE語句重新使該表空間聯(lián)機。ALTER TABLESPACE dtf online;

(5)通過查詢DBA_DATA_FILES視圖獲得移動后的數(shù)據(jù)文件信息。9.刪除數(shù)據(jù)文件

刪除無用的數(shù)據(jù)文件。操作步驟如下:

(1)在SQL*Plus中使用ALTER DATABASE語句刪除某一數(shù)據(jù)文件。

(2)通過OEM控制臺刪除某一數(shù)據(jù)文件。

10.查詢數(shù)據(jù)文件的各種信息

查詢數(shù)據(jù)文件的各種信息。操作步驟如下:

第1部分 Oracle管理技術(shù)

(1)在SQL*Plus中查詢DBA_DATA_FILES、DBA_EXTENTS、DBA_FREE_SPACE、V$DATAFILE、V$DATAFILE_HEADER動態(tài)性能視圖獲得數(shù)據(jù)文件的信息。

(2)在OEM控制臺中查詢數(shù)據(jù)文件的信息。

第2部分 Oracle開發(fā)技術(shù)

第2部分 Oracle開發(fā)技術(shù)

設(shè)計目的

利用所學的有關(guān)數(shù)據(jù)庫設(shè)計知識,設(shè)計一個基于Oracle數(shù)據(jù)庫的信息管理系統(tǒng)。通過該部分的操作與實踐,使學生能夠在完成第一部分任務(wù)的基礎(chǔ)上,進一步鞏固Oracle數(shù)據(jù)庫應(yīng)用的方法和技術(shù),提高基于Oracle數(shù)據(jù)庫的應(yīng)用程序綜合設(shè)計能力。

設(shè)計任務(wù)

? 數(shù)據(jù)庫設(shè)計:

(1)通過對應(yīng)用系統(tǒng)的數(shù)據(jù)庫需求分析,確定系統(tǒng)的服務(wù)范圍,繪制系統(tǒng)業(yè)務(wù)流程圖,設(shè)計系統(tǒng)功能和繪制系統(tǒng)功能圖,設(shè)計數(shù)據(jù)流圖和數(shù)據(jù)字典;

(2)采用自底向上的方法設(shè)計E-R圖;

(3)依據(jù)關(guān)系規(guī)范化原則設(shè)計應(yīng)用系統(tǒng)數(shù)據(jù)庫全局關(guān)系模式;(4)依照數(shù)據(jù)庫全局關(guān)系模式設(shè)計數(shù)據(jù)庫中各表的表結(jié)構(gòu)。? 界面設(shè)計:(1)數(shù)據(jù)庫準備;

(2)創(chuàng)建工程并添加所需控件;(3)主要功能模塊的界面設(shè)計。

設(shè)計題目

1.圖書管理系統(tǒng)

圖書管理系統(tǒng)包括對所有圖書基本信息的維護,實現(xiàn)圖書管理的需求,包括圖書檔案、圖書查詢、圖書資料統(tǒng)計和圖書借閱、歸還等功能。

圖書管理系統(tǒng)讀者信息用戶圖書信息管理圖書借閱管理讀者號讀者名已借數(shù)量最大借閱數(shù)量用戶名密碼ISBN書名作者出版社數(shù)量圖書借閱圖書歸還

第2部分 Oracle開發(fā)技術(shù)

建立角色:

CREATE ROLE br IDENTIFIED BY asd;GRANT CONNECT TO br;GRANT RESOURCE TO br;

建立用戶:

CREATE USER Book IDENTIFIED BY asd DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;授權(quán):

GRANT UNLIMITED TABLESPACE TO Book;GRANT br TO Book;

建立bookusers表

CREATE TABLE Book.BookUsers(UserId Number Primary Key, UserName Varchar2(40)NOT NULL, UserType Number(10), UserPwd Varchar2(40));

create table book.reader

第2部分 Oracle開發(fā)技術(shù)

(reader_id varchar(20)primary key, reader_name varchar(20), maxlend int, alreadylen int)

create table borrow(reader_id varchar(20), ISBN varchar(20), lendtime date, returntime date, primary key(reader_id,ISBN))foreign key(reader_id)references book.reader(reader_id), foreign key(ISBN)references book(ISBN)

插入數(shù)據(jù):

INSERT INTO Book.BookUsers VALUES(1, ‘shang’, 1, ‘123’);INSERT INTO Book.BookUsers VALUES(2, ‘zhang’, 2, ‘456’);

INSERT INTO Book.BookUsers VALUES(3, ‘shangjingwei’, 2, ‘a(chǎn)sd123’);INSERT INTO Book.BookUsers VALUES(4, ‘zhanghongkai’, 2, ‘a(chǎn)sd123’);COMMIT;

第2部分 Oracle開發(fā)技術(shù)

//創(chuàng)建序列

CREATE SEQUENCE userid MINVALUE 1 NOMAXVALUE START WITH 1 INCREMENT BY 1 NOCYCLE NOCACHE

//觸發(fā)器創(chuàng)建

CREATE OR REPLACE TRIGGER Book.NewMyTrigger before Insert ON Book.BookUsers FOR each row begin select userid.nextval into :new.userid from dual;END;

string cmdString = “insert into Book.BookUsers(UserId,UserName,UserPwd)(xl_1.nextval,'” + student_numer.Text + “','” + password.Text + “')”;登錄窗口:

values 第2部分 Oracle開發(fā)技術(shù)

String oraString = “ Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=BOOK)));User ID=system;Password=asd”;//數(shù)據(jù)庫連接語句

查詢圖書:

String bookname = “";String bookisbn = ”“;String bmark = ”“;if(textBox1.Text!= ”“)bookisbn =(”ISBN = '“ + textBox1.Text + ”'“);if((textBox2.Text!= ”“)&&(textBox1.Text!= ”“))bookname =(”AND book_name='“ + textBox2.Text + ”'“);else if(textBox2.Text!= ”“)bookname =(”book_name='“ + textBox2.Text + ”'“);bmark = bookname + bookisbn;

if(radioButton2.Checked){ //添加精確查詢的代碼 if(bmark!= ”“)dataCommand.CommandText = ”SELECT * FROM book.book WHERE “ + bmark;else if(bmark == ”“)

第2部分 Oracle開發(fā)技術(shù)

MessageBox.Show(”請輸入查詢數(shù)據(jù)!“);} else if(radioButton1.Checked){ if(textBox1.Text!= ”“)MessageBox.Show(”不支持ISBN的模糊查詢!“);else { //添加模糊查詢的代碼 if(textBox2.Text!= ”“){ bookname =(”書名 like '%“ + textBox2.Text + ”%'“);dataCommand.CommandText = ”SELECT * FROM book.book WHERE “ + bookname;} else//查詢所有圖書 { dataCommand.CommandText = ”SELECT * FROM book.book“;} } } else MessageBox.Show(”請選擇查詢方式!“);

OracleDataReader dataReader = dataCommand.ExecuteReader();

第2部分 Oracle開發(fā)技術(shù)

BindingSource bs = new BindingSource();bs.DataSource = dataReader;this.dataGridView1.DataSource = bs;if(dataReader.Read()){ lnum = dataReader.GetInt32(3);ynum = dataReader.GetInt32(6);} dataConnection.Close();}

SqlConnection dataConnection;//數(shù)據(jù)庫連接類 SqlCommand dataCommand;//數(shù)據(jù)庫命令類

讀者信息:

dataConnection.Open();

dataCommand.CommandText = ”SELECT * FROM book.reader WHERE reader_id='“ + uID + ”'“;OracleDataReader dataReader = dataCommand.ExecuteReader();

第2部分 Oracle開發(fā)技術(shù)

BindingSource bs = new BindingSource();bs.DataSource = dataReader;this.dataGridView4.DataSource = bs;dataReader.Close();dataConnection.Close();

maxnum =(int)dataGridView4.Rows[0].Cells[”maxlend“].Value;dnum =(int)dataGridView4.Rows[0].Cells[”alredylend“].Value;ymaxnum =(int)dataGridView4.Rows[0].Cells[”maxyuyue“].Value;ydnum =(int)dataGridView4.Rows[0].Cells[”yiyuyue“].Value;}

還書:

dataConnection.Open();String bookisbn;bookisbn = textBox5.Text;if(bookisbn!= ”“){ dataCommand.CommandText = ”DELETE FROM book.borrow WHERE ISBN='“ + bookisbn + ”'“;dataCommand.ExecuteNonQuery();dataCommand.CommandText = ”UPDATE book SET incount=incount+1 WHERE ISBN='“ + bookisbn + ”'“;

第2部分 Oracle開發(fā)技術(shù)

dataCommand.ExecuteNonQuery();dataCommand.CommandText = maxyuyue=maxyuyue-1 WHERE ISBN='” + bookisbn + “'”;dataCommand.ExecuteNonQuery();dataCommand.CommandText = “UPDATE alredylend=alredylend-1 WHERE reader_id='” + uID + “'”;dataCommand.ExecuteNonQuery();textBox5.Text = “";MessageBox.Show(”歸還成功!“);dnum--;

實驗總結(jié):

通過這次課程設(shè)計,我收獲了很多,對oracle數(shù)據(jù)庫從一片空白到現(xiàn)在的有所了解。界面設(shè)計和代碼用的是C#通過本次課程設(shè)計,我們對數(shù)據(jù)庫的應(yīng)用有了更深刻的體會。網(wǎng)絡(luò)系統(tǒng)都是離不開數(shù)據(jù)庫的支持的。數(shù)據(jù)庫設(shè)計的是否合理,直接影響到系統(tǒng)的性能。數(shù)據(jù)庫理論對于實際應(yīng)用有很大的指導意義。

本次課程設(shè)計的名稱是圖書管理系統(tǒng),由于我們能力有限,加之近期課程任務(wù)比較緊迫,所以我們負責的這個項目還有許多不完善的地方。可以說我們的這次系統(tǒng)是做的比較丑陋,功能還有很多不完善的地方。但是總的來說還是收獲很大的,因為通過這次的團隊合作,首先對數(shù)據(jù)庫和C#有了進一步的了解,并且深深體會到團隊合作的重要性,還有合理的團隊分工是非常重要的。并且能在最后將前臺程序和后臺數(shù)據(jù)庫連接起來運行,也對我們是一個比較大的挑戰(zhàn),而且我們也成功的做到了這一點。本次的圖書管理系統(tǒng),在功能上僅實現(xiàn)了圖書,用戶,圖書類別和用戶的注冊管理,只是一些非常基礎(chǔ)的功能,沒有設(shè)計添加圖書的功能。此外,該系統(tǒng)原先計劃設(shè)計的一些功能也沒有實現(xiàn)。系統(tǒng)完全實現(xiàn)的功能實現(xiàn)圖書信息的刪除、更改和查看等。

最后也非常感謝向勝軍老師對我們本次課程設(shè)計的指導及最后驗收的評價。我們也會吸取本次設(shè)計經(jīng)驗,為以后的設(shè)計繼續(xù)努力。

reader

SET

”UPDATE

book

SET

第四篇:數(shù)據(jù)庫圖書管理系統(tǒng)題目

請設(shè)計圖書管理系統(tǒng)數(shù)據(jù)庫,要求能滿足讀者的注冊、注銷、個人信息修改、圖書的入庫、圖書報廢、圖書的借閱、歸還、續(xù)約、滯納金賠償、損壞賠償功能

系統(tǒng)中至少包含如下信息:

讀者姓名、id、性別、學歷(初等、中等、高等)、年齡、職業(yè)類別、圖書id、圖書名稱、圖書類別(基礎(chǔ)類、科技類、文史類、社會科學、自然科學)、圖書書齡、所屬出版社、圖書價格、圖書是否完好、圖書借閱人、借閱起始時間、圖書借閱時長、圖書續(xù)約(最多可連續(xù)續(xù)約3次)、圖書是否已歸還、圖書是否已損壞,讀者注冊級別(分普通讀者和vip讀者,普通讀者同時可以借閱2本書,vip讀者可以同時借閱5本書)。

圖書系統(tǒng)中,相同的書籍可以不止一本,讀者可以同名。一次借閱期限一個月(30天),一次續(xù)約延長一個月。過期后每超出一天須繳納滯納金一元。圖書損毀后就被報廢。

1、請用完整、連續(xù)的SQL語句設(shè)計數(shù)據(jù)庫和表,請根據(jù)情理和場景設(shè)計各類約束。

2、請查詢‘計算機導論’這本書籍的被借閱次數(shù)。

3、請查詢借書證號為11的讀者歷年來的借閱次數(shù)(不包括續(xù)約)。

4、請用一條或者多條語句查詢‘計算機導論’這本書籍當前是否可以借閱。

5、請找出最熱門的書籍名稱(總共借閱次數(shù))。

6、請找出學歷中等或中等以上人員關(guān)注度比中等以下人員關(guān)注度高的書籍。

7、請查詢‘王小東’當前可以借閱多少本書。

8、請查詢‘王小東’當前共須繳納多少滯納金。

9、請統(tǒng)計各職業(yè)類別人員的借閱次數(shù)。

10、請查閱哪個出版社的書籍借閱頻率最高(可以考慮按進行統(tǒng)計)。

11、檢索學歷比‘王小東’高,年齡比‘王小東’大,而借閱次數(shù)比他少的讀者id。

12、請查詢至少關(guān)注過圖書類別中3個類別的讀者id。

13、請查詢‘計算機導論’書籍在各個學歷階層的借閱次數(shù)。

14、請將“根據(jù)借書證查詢所借閱書籍編號和名稱”這樣的行為以存儲過程加以實現(xiàn)。

第五篇:圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計

數(shù)據(jù)庫設(shè)計.................................................................2 3.1 專門術(shù)語的定義...................................................2 3.1.1 系統(tǒng)中常用的術(shù)語(或使用頻率較高的術(shù)語).........................2 3.1.2 表格定義及規(guī)范.................................................2 3.1.2.1數(shù)據(jù)約定.....................................................2 3.1.2.2表和表字段命名規(guī)范:.........................................3 3.2 數(shù)據(jù)設(shè)計.........................................................3 3.2.1 數(shù)據(jù)流程圖設(shè)計.................................................3 3.2.2實體關(guān)系結(jié)構(gòu)設(shè)計...............................................4 3.3安全保密設(shè)計.....................................................6 3.3.1 邏輯上的安全保密...............................................6 3.3.2 物理上的安全保密...............................................6 3.4 表格與功能模塊相關(guān)性分析.........................................7 3.5 表格定義.........................................................7 數(shù)據(jù)庫設(shè)計

3.1 專門術(shù)語的定義

暫無

3.1.1 系統(tǒng)中常用的術(shù)語(或使用頻率較高的術(shù)語)暫無

3.1.2 表格定義及規(guī)范 3.1.2.1數(shù)據(jù)約定

所有數(shù)據(jù)項都用英文、漢語拼音或縮寫表示,數(shù)據(jù)庫名稱除外。

所有字段在設(shè)計時,除以下數(shù)據(jù)類型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary、varbinary外,必須有默認值。字符型的默認值為一個空字符值串;數(shù)值型的默認值為數(shù)值0;邏輯型的默認值為數(shù)值0;

其中:系統(tǒng)中所有邏輯型中數(shù)值0表示為“假”;數(shù)值1表示為“真”。datetime、smalldatetime類型的字段沒有默認值,必須為NULL。當字段定義為字符串形時建議使用varchar而不用nvarchar。建議在大多數(shù)表中(如報銷單,申請單),應(yīng)都有以下字段: 字段名說明類型默認值 CreatorID創(chuàng)建者int CreatedTime創(chuàng)建時間DatetimeNULL 字符集采用 UTF-8,請注意字符的轉(zhuǎn)換。

所有數(shù)據(jù)表第一個字段都是系統(tǒng)內(nèi)部使用自動序列主鍵列,自增字段,不可空,名稱為:id,確保不把此字段暴露給最終用戶。

除特別說明外,所有字符串字段都采用varchar(50)類型,(無論漢字還是英文,都算一個字符)。

除特別說明外,所有小數(shù)的字段都采用 decimal(18,2)的形式表達。

除特別說明外,所有日期格式都采用 datetime 格式(根據(jù)需要提取時間格式); 除特別說明外,所有整形都采用 bigint 格式。除特別說明外,所有字段默認都設(shè)置為 null。3.1.2.2表和表字段命名規(guī)范:

命名規(guī)則約束的范圍包括:數(shù)據(jù)庫的命名、表的命名及字段的命名。數(shù)據(jù)庫相關(guān)的命名規(guī)則采用與通常的編程的變量命名規(guī)則原則一致,具體要求如下: 1)字段名及表名為典型的名詞結(jié)構(gòu); 2)中文名稱要求語言精練、文法嚴謹;

3)望文知意、易懂易用,禁止采用如:A002這種命名;

4)主體采用拼音字母的首寫字母拼寫構(gòu)成,基于慣常法可適度采用無詞義歧義性的英文命名;

5)長度不少于3個字母,不大于12個字母;

6)在對于拼音首字母類似的字段和表,為區(qū)別,添加下劃線和數(shù)字如男性人數(shù):NXRS,女性人數(shù):NXRS_2。

3.2 數(shù)據(jù)設(shè)計

繪制數(shù)據(jù)流程圖的目的是為了方便開發(fā)人員與用戶的交流,以及為系統(tǒng)的設(shè)計提供依據(jù)。數(shù)據(jù)流程圖的繪制過程通常采用自頂向下,逐層分解,直到功能細化為止,形成若干層次的數(shù)據(jù)流程圖。3.2.1 數(shù)據(jù)流程圖設(shè)計

0層數(shù)據(jù)流圖

1層數(shù)據(jù)流圖

3.2.2實體關(guān)系結(jié)構(gòu)設(shè)計

圖書實體關(guān)系

讀者實體關(guān)系

圖書借閱關(guān)系實體

用戶實體關(guān)系

圖書類別實體關(guān)系

3.3安全保密設(shè)計

3.3.1 邏輯上的安全保密

1、系統(tǒng)對非法使用者的安全保密處理措施

2、系統(tǒng)對正常使用者的安全保密處理措施

3、系統(tǒng)對管理員的安全保密 3.3.2 物理上的安全保密

1、數(shù)據(jù)庫系統(tǒng)異常時的還原處理措施

2、設(shè)備遭異常毀壞時的安全防護措施

3、數(shù)據(jù)參數(shù)做到及時更新,保證系統(tǒng)正常運行

3.4 表格與功能模塊相關(guān)性分析

3.5 表格定義

a.圖書信息表

b.讀者信息表

c.借閱表

d.管理員_書籍

e.管理員_學生

下載Oracle數(shù)據(jù)庫 圖書管理系統(tǒng)實驗報告word格式文檔
下載Oracle數(shù)據(jù)庫 圖書管理系統(tǒng)實驗報告.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔相關(guān)法律責任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    圖書管理系統(tǒng)數(shù)據(jù)庫源代碼

    圖書管理系統(tǒng)數(shù)據(jù)庫源代碼 //創(chuàng)建工程及設(shè)計主界面 public class Main extends JFrame { private static final JDesktopPane { DESKTOP_PANE=new JDesktopPane; //桌面......

    Oracle數(shù)據(jù)庫管理系統(tǒng)實習總結(jié)五篇

    Oracle數(shù)據(jù)庫管理系統(tǒng)實習總結(jié) 學習完oracle數(shù)據(jù)庫后,我們進行了一次大實習,實習是分組進行的,我們組根據(jù)老師的安排,采用Oracle數(shù)據(jù)庫技術(shù)建立員工工資及其個人所得稅管理系統(tǒng)......

    圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計說明書

    圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計說明書? 設(shè)計題目:圖書管理系統(tǒng) ? 學院:計算機學院 ? 班級:08網(wǎng)絡(luò)工程1班 ? 組員:李忠義200813024016 張巡200813024036 張學理200813024017 ? 指導老師:羅代......

    數(shù)據(jù)庫課程設(shè)計 圖書管理系統(tǒng)(精選)

    課 程 設(shè) 計 軟件工程與數(shù)據(jù)庫 課程設(shè)計 任務(wù)書 學院名稱:數(shù)學與計算機學院 課程代碼:_6014419_ 專業(yè): 年級:一、設(shè)計題目 圖書管理系統(tǒng) 二、主要內(nèi)容 一個簡單的圖書管理系統(tǒng)......

    圖書借閱管理系統(tǒng)數(shù)據(jù)庫要求

    圖書借閱管理系統(tǒng)設(shè)計文檔 學號:00,姓名:***,班級:*** 一 系統(tǒng)概述 為學校圖書借閱室設(shè)計圖書管理系統(tǒng),完成新增圖書上架、讀者辦理圖書借閱證、圖書查詢、借書、還書工作的自動處......

    圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計示例

    圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計 一個簡單的圖書管理系統(tǒng)包括圖書館內(nèi)書籍的信息、學校在校學生的信息以及學生的借閱信息。此系統(tǒng)功能分為面向?qū)W生和面向管理員兩部分,其中學生可以......

    圖書管理系統(tǒng)的數(shù)據(jù)庫設(shè)計

    圖書管理系統(tǒng)的數(shù)據(jù)庫設(shè)計 摘要:虛擬為某公司建立的圖書館管理系統(tǒng)進行數(shù)據(jù)庫設(shè)計,目的在于使該系統(tǒng)的運行能提高該公司的資料管理水平和現(xiàn)代化管理水平。本系統(tǒng)是一個中小型......

    圖書管理系統(tǒng)數(shù)據(jù)庫的設(shè)計

    圖書管理系統(tǒng)數(shù)據(jù)庫的設(shè)計 摘 要:書籍是人類不可缺少的精神食糧,尤其對一些學校來說,尤其重要。所以圖書館借閱信息管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。文......

主站蜘蛛池模板: 亚洲国产精品无码一区二区三区| 狼色精品人妻在线视频免费| 9lporm自拍视频区| 亚洲乱亚洲乱妇中文影视| 亚洲国产欧美在线观看片| 亚洲精品一线二线三线无人区| 亚洲欧美日韩国产综合点击进入| 欧美人与动人物牲交免费观看| 国产99久久九九精品无码| 国产男女猛烈无遮挡免费视频网站| 国产av丝袜一区二区三区| 无码亲近乱子伦免费视频在线观看| 黑人玩弄人妻中文在线| 无码久久久久不卡网站| 免费无码av一区二区| 中文字幕精品久久久久人妻| 日日碰狠狠躁久久躁综合小说| 国产精品婷婷久久爽一下| 无码综合天天久久综合网| 精品国产午夜福利在线观看| 国产欧美va欧美va香蕉在线观看| 午夜三级a三级三点窝| 国产精品毛片久久久久久久| 黑人强伦姧人妻日韩那庞大的| 无码不卡黑人与日本人| 国产成人卡2卡3卡4乱码| 成人网站亚洲综合久久| 亚洲精品无码成人av电影网| 韩国三级大全久久网站| 国产边摸边吃奶叫床视频| 麻豆精产一二三产区| 国产精品爽爽ⅴa在线观看| 无码人妻久久一区二区三区免费丨| 国内嫩模私拍精品视频| 一区二区精品视频日本| 欧美成人va免费大片视频| 亚洲一区爱区精品无码| 国产亚洲精品久久久久妲己| 亚洲18色成人网站www| 老子影院午夜精品无码| 国产免费又色又爽粗视频|