太原理工大学 oracle 大型数据库实验报告.docx

上传人:b****6 文档编号:3297752 上传时间:2022-11-21 格式:DOCX 页数:37 大小:375.55KB
下载 相关 举报
太原理工大学 oracle 大型数据库实验报告.docx_第1页
第1页 / 共37页
太原理工大学 oracle 大型数据库实验报告.docx_第2页
第2页 / 共37页
太原理工大学 oracle 大型数据库实验报告.docx_第3页
第3页 / 共37页
太原理工大学 oracle 大型数据库实验报告.docx_第4页
第4页 / 共37页
太原理工大学 oracle 大型数据库实验报告.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

太原理工大学 oracle 大型数据库实验报告.docx

《太原理工大学 oracle 大型数据库实验报告.docx》由会员分享,可在线阅读,更多相关《太原理工大学 oracle 大型数据库实验报告.docx(37页珍藏版)》请在冰豆网上搜索。

太原理工大学 oracle 大型数据库实验报告.docx

太原理工大学oracle大型数据库实验报告

本科实验报告

 

课程名称:

大型数据库系统

实验项目:

创建数据库和表

实验地点:

多学科楼4506

专业班级:

软件工程0901学号:

200

学生姓名:

指导教师:

2012年4月17日

一、实验目的和要求

1.了解数据库的结构以及一些基本概念。

2.了解表的结构特点。

3.了解Oracle11g的基本数据类型。

4.学会使用DBCA创建数据库。

5.学会使用界面方式创建表。

6.学会使用SQL语句手工创建数据库。

7.学会使用SQL语句创建表。

二、实验内容和原理

1.能够创建数据库的用户必须是系统管理员,或是被授权使用CREATEDATABASE语句的用户。

2.创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小、SGA分配和存储数据库的文件。

3.确定数据库包含哪些表以及所包含的各表的结构,还要了解Oracle11g的常用数据类型,以创建数据库的表。

4.创建企业管理的员工管理数据库YGGL,包含Employees(员工自然信息)表、Departments(部门信息)表和Salary(员工薪水情况)表。

各表的结构如下所示。

表T1.1Employees表结构

列名

数据类型

长度

是否允许为空值

说明

EmployeeID

Char

6

×

员工编号,主键

Name

Char

10

×

姓名

Birthday

Date

×

出生日期

Sex

Number

1

×

性别

Address

Char

20

地址

Zip

Char

6

邮编

PhoneNumber

Char

12

电话号码

Department

Char

3

×

员工部门号、外键

表T1.2Departments表结构

列名

数据类型

长度

是否允许为空值

说明

DepartmentID

Char

3

×

部门编号、主键

DepartmentName

Char

20

×

部门号

Note

Varchar2

100

备注

表T1.3Salary表结构

列名

数据类型

长度

是否允许为空值

说明

EmplyeeID

Char

6

×

员工编号、主键

InCome

Number

8,2

×

收入

OutCome

Number

8,2

×

支出

三、主要仪器设备

WindowsXP/7、oracle10g/11g

四、操作方法与实验步骤

1.利用DBCA创建数据库

1)数据库名称为YGGL,它的全局数据库名称为YGGL。

2)控制文件三个,存放路径为……………………,名称分别为CONTROL01.CR、CONTROL02.CR和CONTROL03.CR。

3)重做日志文件三个,大小为100MB,存放路径为:

………………,名称分别为redo01.log、redo02.log和redo03.log。

4)创建临时表空间temp01.dpf。

5)数字字符集为ZHS16GBK,国家字符集为AL16UTF16。

6)数据块大小为4KB。

进入DBCA,根据其提示逐步完成数据库的创建工作。

实际情况,我以创建表空间代替。

2.利用DBCA删除数据库(实际不操作)

3.在OEM和利用sql语句分别创建表

下面列出建表语句:

/**

创建Departments表

*/

createtableDepartments(

department_idchar(3),

department_namevarchar2(20)notnull,

notevarchar2(100),

constraintdepartments_pkprimarykey(department_id)

tablespaceyggl;

/**

创建Salary表

*/

createtableSalary(

employee_idchar(6),

incomenumber(8,2)notnull,

outcomenumber(8,2)notnull,

constraintSalary_pkprimarykey(employee_id),

constraintemployee_id_foreign_key

foreignkey(employee_id)referencesemployees(employee_id)

tablespaceyggl;

五、实验结果与分析

创建表空间:

以下为创建表,因为自己的命名习惯,对其中部分名称进行了修正,另外,一些数据的数据类型该用更合适的数据类型。

创建employees表:

利用sql语句建表也全部成功。

六、讨论、心得(可选)

本次试验考察内容基本为数据定义语言,有数据库的创建(因为以前已建过了,所以这次我用名称空间代替),表的创建(图形化操作与sql语句操作)。

差不多就这样子,通过这次试验大概可以掌握oracle数据库的基本操作,主要有助于对其环境的熟悉。

 

本科实验报告

 

课程名称:

大型数据库系统

实验项目:

表数据插入、修改和删除

实验地点:

多学科楼4506

专业班级:

软件工程0901学号:

20090

学生姓名:

指导教师:

 

2012年4月19日

一、实验目的和要求

1.学会使用PL/SQL语句对数据库表进行插入、修改和删除数据操作。

2.学会使用SQLDeveloper对数据库表进行插入、修改和删除数据的操作。

3.了解数据更新操作时要注意数据完整性。

4.了解PL/SQL语句对表数据操作的灵活控制功能。

二、实验内容和原理

1.了解对表数据的插入、删除、修改都属于表数据的更新操作。

对表数据的操作可以在SQLDeveloper中进行,也可以由PL/SQL语句实现。

2.掌握PL/SQL语句中用于对表数据进行插入、修改和删除的命令分别是INSERT、UPDATE和DELETE(或TRANCATETABLE)。

3.在执行插入、删除、修改等数据更新操作时,必须保证数据的完整性。

4.使用PL/SQL语句在对表数据进行插入、修改及删除时,比在OEM中操作表数据更为灵活,功能更强大。

在实验1中,用于实验的YGGL数据库中的三个表已经建立,现在要将各表的样本数据添加到表中。

样本数据如表T2.1、表T2.2和表T2.3所示。

表T2.1Employees表数据样本

编号

姓名

出生日期

性别

住址

邮编

电话号码

部门号

000001

王林

1966-01-23

1

中山路32-1-508

210003

83355668

2

010008

伍容华

1976-03-28

1

北京东路100-2

210001

83321321

1

表T2.2Departments表数据样本

部门号

部门名称

备注

部门号

部门名称

备注

1

财务部

NULL

4

研发部

NULL

2

人力资源部

NULL

5

市场部

NULL

3

经理办公室

NULL

表T2.3Salary表数据样本

编号

收入

支出

编号

收入

支出

000001

2100.8

123.09

108991

3259.98

281.52

010008

1582.62

88.03

020010

2860.0

198.0

102201

2568.88

185.65

020018

2347.68

180.0

三、主要仪器设备

WINDOWSXP/WINDOWS7

Oracle10g/11g

四、操作方法与实验步骤

分别使用SQLDeveloper和PL/SQL语句,在实验1建立的数据库YGGL的表Employees、表Departments和表Salary中插入多行数据记录,然后修改和删除一些记录。

使用PL/SQL命令进行有限制的修改和删除。

(一)使用SQLDeveloper操作数据

启动SQLDeveloper,展开yggl_ora连接,单击”Employees”表,在左边窗口中选择”Data”选项卡。

在此窗口中,单击”Insertrow”按钮,表中将增加一个新行,在新行中双击一列空白处后输入新数据,输完后单击”CommitChanges”按钮,将数据保存到数据库中。

修改数据的方法和添加数据类似,如果要删除一行数据,选中该行数据,单击”DeleteSelectedRow(s)”按钮,之后该行的行号前会显示一个“——”号,删除后单击”CommitChanges”按钮保存。

(二)使用PL/SQL命令操作数据

1.使用PL/SQL语句分别向YGGL数据库的表Employees、表Departments和表Salary中插入插入一行记录。

在启动SQL*Plus窗口或SQLDeveloper的代码编辑窗口中,输入以下PL/SQL语句并执行:

一下为对3个表的数据的所有插入语句:

/**

向DEPARTMENTS表中插入数据样本

*/

insertintoDEPARTMENTS

values('001','财务部',null);

insertintoDEPARTMENTS

values('002','人力资源部',null);

INSERTINTODepartments

VALUES('003','经理办公室',NULL);

INSERTINTODepartments

VALUES('004','研发部',NULL);

INSERTINTODepartments

VALUES('005','市场部',NULL);

commit;

/**

向employee表中插入数据样本

*/

insertintoemployees

values('000001','王林',to_date('1966-01-23','YYYY-MM-DD'),1,

'中山路32-1-508','210003','83355668','002');

INSERTINTOEmployees

VALUES('010008','伍容华',TO_DATE('19760328','YYYYMMDD'),1,

'北京东路100-2','210001','83321321','001');

insertintoemployees

values('020010','王向荣',to_date('1982-12-19','YYYY-MM-DD'),1,

'四牌楼10-0-108','210006','83792361','001');

INSERTINTOEmployees

VALUES('020018','李丽',TO_DATE('19600723','YYYYMMDD'),0,

'中山东路102-2','210002','83413301','001');

INSERTINTOEmployees

VALUES('102201','刘明',TO_DATE('19721018','YYYYMMDD'),1,

'虎距路100-2','210013','83606608','005');

INSERTINTOEmployees

VALUES('102208','朱俊',TO_DATE('19650928','YYYYMMDD'),1,

'牌楼巷5-3-106','210004','84708817','005');

INSERTINToEmployees

VALUES('108991','钟敏',TO_DATE('19790810','YYYYMMDD'),0,

'中山路10-3-105','210003','83346722','003');

INSERTINTOEmployees

VALUES('111006','张石兵',TO_DATE('19741001','YYYYMMDD'),1,

'解放路34-1-203','210010','84563418','005');

INSERTINTOEmployees

VALUES('210678','林涛',TO_DATE('19770402','YYYYMMDD'),1,

'中山北路24-35','210008','83467336','003');

INSERTINToEmployees

VaLUES('302566','李玉珉',TO_DATE('19680920','YYYYMMDD'),1,

'热和路209-3','210001','58765991','004');

INSERTINTOEmployees

VALUES('308759','叶凡',TO_DATE('19781118','YYYYMMDD'),1,

'北京西路3-7-52','210002','83308901','004');

INSERTINTOEmployees

VALUES('504209','陈琳琳',TO_DATE('19690903','YYYYMMDD'),0,

'汉中路120-4-12','210018','84468158','004');

commit;

/**

向Salary表中插入数据样本

*/

insertintoSalary

values('000001',2100.8,123.09);

INSERTINTOSalary

VALUES('010008',1582.62,88.03);

INSERTINTOSalary

VALUES('102201',2569.88,185.65);

INSERTINTOSalary

VALUES('111006',1987.01,79.58);

INSERTINTOSalary

VALUES('504209',2066.15,108.0);

INSERTINTOSalary

VALUES('302566',2980.7,210.2);

INSERTINTOSalary

VALUES('108991',3259.98,281.52);

INSERTINTOSalary

VALUES('020010',2860.0,198.0);

INSERTINTOSalary

VALUES('020018',2347.68,180.0);

INSERTINTOSalary

VALUES('308759',2531.98,199.08);

INSERTINTOSalary

VALUES('210678',2240.0,121.0);

INSERTINTOSalary

VALUES('102208',1980.0,100.0);

commit;

2.使用PL/SQL命令修改表Salary中的某个记录的字段值。

语句:

/**

updateSALARY表

**/

UPDATESALARY

SETINCOME=2890

WHEREEMPLOYEE_ID='000001';

COMMIT;

按回车键,执行上述语句,将编号为000001的职工收入改为2890.在OEM中打开YGGL数据库的Salary表,观察数据变化。

3.使用PL/SQL语句修改表Salary中的所有记录的字段值。

在SQL*Plus界面中输入以下PL/SQL语句:

语句

/**

*将其所有行的IMCOME加100

**/

UPDATESALARY

SETINCOME=INCOME+100;

COMMIT;

按回车键,执行上述语句,将所有职工的收入增加100。

可见,使用PL/SQL语句操作表数据比在SQLDeveloper中操作表数据更为灵活。

输入以下PL/SQL语句,观察数据变化。

SELECT*FROMSalary;

4.使用DELETE语句删除Salary表中一行记录。

/**

*删除salary表中的一行记录

**/

DELETEFROMSALARY

WHEREemployee_id='010008';

COMMIT;

5.使用TRANCATETABLE语句删除表中所有行。

在SQL*Plus界面中输入以下PL/SQL语句:

/**

*清空表

**/

deletefromSalary;

deletefromemployees;

deletefromdepartments;

TRUNCATETABLESALARY;

五、实验结果与分析

按上述过程操作,试验结果均满足预期要求。

六、讨论、心得(可选)

本次试验主要考察对表的数据的基本更新操作,即dml语言。

通过对表的增删改操作熟悉对应的sql语句以及OEM操作。

 

本科实验报告

 

课程名称:

大型数据库系统

实验项目:

数据库的查询和视图

实验地点:

多学科楼506

专业班级:

软件工程0901学号:

200900

学生姓名:

指导教师:

2012年4月21日

一、实验目的和要求

1、掌握SELECT语句的基本语法

2、掌握子查询的表示方法

3、掌握连接查询的表示方法

4、掌握数据汇总的方法

5、掌握SELECT语句的GROUPBY子句的作用和使用方法

6、掌握SELECT语句的ORDERBY子句的作用和使用方法

7、掌握视图的使用方法

二、实验内容

1.了解SELECT语句的基本语法格式和执行方法

2.了解子查询的表示方法、连接查询和数据汇总的方法

3.了解SELECT语句的GROUPBY子句的作用和使用方法

4.了解SELECT语句的ORDERBY子句的作用

5.了解视图的作用和创建方法

6.了解视图的使用方法

三、实验环境与设备

Win7、Oracle11g

四、操作方法与实验步骤

1、SELECT语句的基本使用

(1)对于实验2给出的数据库表结构,查询每个雇员的所有数据

在SQL*Plus窗口或SQLDeveloper中输入语句并执行

SELECT*FROMEmployees;

SELECT*FROMDepartments;

SELECT*FROMSalary;

(2)查询每个雇员的地址和电话

/**

*查询每个雇员的地址和电话

**/

SELECTADDRESS,PHONE_NUMBER

FROMEMPLOYEES;

(3)查询EmployeeID为000001的雇员的地址和电话

SELECTAddress,PhoneNumber

FROMEmployees

WHEREEmployee_ID='000001';

(4)查询Employees表中所有女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址和电话

SELECTAddressAS地址,PhoneNumberAS电话

FROMEmployees

WHEREsex=0;

/**

*查询每个女性雇员的地址和电话,并对列名重新命名

**/

SELECTADDRESSas地址,PHONE_NUMBER电话

FROMEMPLOYEES

WHERESEX='0';

(5)计算ID号以10开头的雇员的实际收入

/**

*计算ID号以10开头的雇员的实际收入

**/

SELECTemployee_id,INCOME-OUTCOMEAS实际收入

FROMSALARY

WHEREEMPLOYEE_IDLIKE'10%';

2、子查询的使用

(1)查找在财务部工作的雇员的情况

SELECT*FROMEMPLOYEES

WHEREDepartment_ID=

SELECTDepartment_ID

FROMDepartments

WHEREDepartmentName='财务部'

);

(2)查询财务部年龄不低于所有研发部雇员年龄的雇员的姓名

/**

*查找财务部年龄不低于所有研发部雇员年龄的雇员的姓名

**/

SELECT*FROMEMPLOYEES

WHEREdepartment_idIN(

SELECTDEPARTMENT_IDFROMdepartments

WHEREdepartment_name='财务部'

AND

birthday<=ALL(

SELECTBIRTHDAYFROMEMPLOYEES

WHEREDEPARTMENT_IDIN(

SELECTDEPARTMENT_IDFROMdepartments

WHEREdepartment_name='研发部'

);

(3)查找比所有财务部的雇员收入都搞得雇员的姓名

/**

*查找比所有财务部的雇员收入都要高的雇员的姓名

**/

SELECTNAMEFROMEMPLOYEES

WHEREEMPLOYEE_idIN(

SELECTEMPLOYEE_IDFROMSALARY

WHEREINCOME>=ALL(

SELECTINCOMEFROMSALARY

WHEREEMPLOYEE_IDIN(

SELECTEMPLOYEE_IDFROMEMPLOYEES

WHEREDEPARTMENT_ID=(

SELECTDEPARTMENT_IDFROMDEPARTMENTS

WHEREDEPARTMENT_NAME='财务部'

3、连接查询的使用

(1)查询每个雇员的情况以及其薪水的情况

SELECTEmployees.*,Salary.*

FROMEmployees,Salary

WHEREEmployees.Employee_ID=Salary.Employee_ID;

(2)查找财务部收入在2200元以上的雇员的姓名及其薪水详情

/**

*查找财务部收入在2200元以上的雇员姓名及其薪水详情

**/

SELECTname,INCOME,OUTCOME

FROMEMPLOYEES,SALARY,DEPARTMENTS

WHEREemployees.employee_id=salary.employee_id

AND

emp

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1