Oracle实验报告KL.doc_第1页
Oracle实验报告KL.doc_第2页
Oracle实验报告KL.doc_第3页
Oracle实验报告KL.doc_第4页
Oracle实验报告KL.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告 实践报告课程名称: 大型数据库系统 实验名称: 创建数据库和表、表数据插入、修改和删除、数据库的查询和视图、索引和完整性、PL/SQL编程、存储过程和触发器的使用、用户角色与安全性 实验地点: 致远楼B501 专业班级: 软件1420 学号: 2014006110 专业班级: 软件1420 学号: 2014006113 学生姓名: 张子祥 学生姓名: 赵泓博 指导教师: 宋承明 2017年 6 月 22 日太原理工大学学生实验报告一、目的与要求1) 了解数据库、表的结构特点以及一些基本概念。2) 了解Oracle 11g的基本数据类型。3) 学会使用DBCA和命令两种方式创建数据库。4) 学会使用界面和命令两种方式创建表。5) 了解数据库安全性包括几个方面。6) 掌握使用用户实现数据库安全性的方法。7) 掌握使用角色实现数据库安全性的方法。二、实验准备首先,要明确能够创建数据库的用户必须是系统管理员,或者是被授权使用CREATE DATABASE语句的用户。其次,创建数据库必须确定数据库名、所有者(即创建数据库的用户)、数据库的大小、SGA分配和存储数据库的文件。再次,确定数据库包含那些表以及所包含的各表的结构,还要了解Oracle 11g的常用数据类型,以创建数据库的表。此外,还要了解两种常用的创建数据库、表的方法,即利用DBCA创建和使用PL/SQL的CREATE DATABASE语句创建。复习8章内容。三、实验内容使用PL/SQL命令创建企业管理的员工管理数据库YGGL,包含Employees(员工信息)表、Departments(部门信息)表和Salary(员工薪水)表。1) 创建用户在YGGL数据库中创建一个用户MANAGER,授予DBA角色和SYSDBA系统权限,它可以替代SYSTEM用户。2) 创建角色在YGGL数据库中创建一个角色ADMIN,授予DBA角色和SYSDBA系统权限。四、命令语句及结果create table Employees(EmployeeID char(6) not null primary key,Name char(10) not null,Birthday date not null,Sex number(1)not null,Address char(20) null,Zip char(6) null,PhoneNumber char(12) null,DepartmentID char(3) not null);create table Departments(DepartmentID char(3) not null primary key,DepartmentName Char(20) not null,Note VarChar2(100) null);create table Salary(EmployeeID Char(6) not null primary key,InCome Number(8,2) not null,OutCome Number(8,2) not null);创建用户create user managerprofile DEFAULTidentified by managerdefault tablespace USERStemporary tablespace TEMPaccount unlock;grant sysdba to MANAGER;grant CONNECT to MANAGER;grant DBA to MANAGER;alter user manager grant connect through system;创建角色create role ADMINidentified by manager;grant sysdba to ADMIN;grant sysoper to ADMIN;grant CONNECT to ADMIN;grant DBA to ADMIN;五、感悟与收获(张子祥)通过本次实验我掌握了oracle数据库的安装和卸载,学会了如何创建数据库,OEM网页管理操作数据库,使用SQL*Plus软件操作,掌握了相关代码的使用。第一次操作实验只是掌握数据库的基础,今后还要多加练习,熟练掌握数据库操作要领。太原理工大学学生实验报告一、目的与要求1) 学会使用SQL Developer对数据库表进行插入、修改和删除数据的操作。2) 学会使用PL/SQL语句对数据库表进行插入、修改和删除数据的操作。3) 了解并体会PL/SQL语句对表数据操作的灵活控制功能。4) 掌握SELECT语句的基本语法。5) 掌握子查询、连接查询的表示方法。6) 掌握数据汇总的方法。7) 掌握GROUP BY、ORDER BY 子句的作用和使用方法。8) 掌握视图的使用方法。二、实验准备首先,了解对表数据的插入、删除、修改都属于表数据的更新操作。对表数据的操作可以在SQL Developer中进行,也可以由PL/SQL语句实现。其次,要掌握PL/SQL中用于对表数据进行插入、修改、删除的命令分别是INSERT、UPDATE、DELETE(或TRUNCATE TABLE)。此外,还要了解使用PL/SQL语句在对表数据进行插入、修改、删除时,比在SQL Developer找操作数据更灵活,功能更强大。复习4章内容。三、实验内容1) 使用PL/SQL命令分别向YGGL数据库Employees、Departments、Salary表中插入一行记录。2) 使用PL/SQL命令修改Salary表中的某个记录的字段值。3) 修改表Employees和Departments的记录值,要注意完整性。4) 使用PL/SQL命令修改Salary表中的所有记录的字段值。5) 使用Delete语句删除Salary表中的一行记录。6) 使用TRUNCATE TABLE语句删除表中的所有行。7) SELECT语句的基本使用a) 查询每个雇员的所有数据。b) 查询每个雇员的地址和电话。c) 查询EmployeeID为000001的雇员地址和电话。d) 查询Employees表中所有女雇员的地址和电话,使用AS子句将结果各列的标题分别指定为地址和电话。e) 计算每个雇员的实际收入。f) 找出所有姓王的雇员的部门号。g) 找出所有收入在50006000元之间的雇员号码。8) 子查询的使用a) 查找在财务部工作的雇员情况。b) 查找财务部年龄不低于所有研发部雇员年龄的雇员的姓名。c) 查找比所有财务部的雇员收入都高的雇员的姓名。9) 连接查询的使用a) 查询每个雇员及其薪水情况。b) 查找财务部收入在5200元以上的雇员姓名及其薪水情况。10) 数据汇总a) 求财务部雇员的平均收入。b) 求财务部雇员的平均实际收入。c) 求财务部雇员的总人数。11)GROUP BY和ORDER BY子句的使用 求各部门的雇员数。四、命令语句及结果insert into Employeesvalues(011112,罗林,to_date(19780626,YYYYMMDD),1,解放路 100号,210002,4055663,5);insert into Departmentsvalues(6,公关部,null);insert into Salaryvalues(011112,4200.09,1050);update Salaryset InCome=5890where EmployeeID=011112;update Salary set InCome=InCome+100;delete from Salary where EmployeeID=011112;select Name,Address,PhoneNumber from Employees;select Name as 姓名,Address as 地址,PhoneNumber as 电话 from Employees where sex=0;select EmployeeID ,InCome-OutCome as 实际收入from Salary;select DepartmentID from Employees where name like 王%;select EmployeeID from Salary where InCome between 5000 and 6000;子查询select Employees.*,Salary.*from Employees,Salarywhere Employees.EmployeeID=Salary.EmployeeIDorder by InCome;delete from cx_salary where name=李丽;五、感悟与收获(张子祥)通过本次实验我学会了使用SQL Developer对数据库表进行插入、修改和删除数据的操作,学会了使用PL/SQL语句对数据库表进行插入、修改和删除数据的操作,了解并体会了PL/SQL语句对表数据操作的灵活控制功能,掌握了SELECT语句的基本语法、子查询、连接查询的表示方法、数据汇总的方法、GROUP BY、ORDER BY 子句的作用和使用方法。太原理工大学学生实验报告一、目的与要求1) 掌握索引的使用方法。2) 理解数据完整性的概念及分类。3) 掌握各种数据完整性的实现方法。4) 掌握变量的分类及使用。5) 掌握各种运算符的使用。6) 掌握各种控制语句的使用。7) 掌握系统函数及用户自定义函数的使用。二、实验准备复习第5 章内容。进一步巩固第3章第5章所学内容,复习第6章。三、实验内容1) 建立索引 对YGGL数据库的Employees表的DepartmentID建立索引。2) 实现域完整性 为YGGL数据库的Employees表的PhoneNumber列建立CHECK约束。3) 实现实体完整性 为Departments表的DepartmentName列建立唯一性索引4) 实现参照完整性 为Employees表中的DepartmentID列建立外键。5) 自定义函数的使用a) 定义一个函数实现如下功能。对于一个给定的DepartmentID值,查询该值在Departments表中是否存在,若存在返回0,否则返回-1.b) 写一段PL/SQL脚本程序调用上述函数。当向Employees表插入一条记录时,首先调用函数CHECK_ID检索该记录的DepartmentID值在Departmentd字段中是否存在对应值,若存在,则将该记录插入Employees表。四、命令语句及结果create index PX_XS_PAKon Employees(DepartmentID)tablespace users pctfree 48 initrans 10 maxtrans 100storage (initial 64k next 64k minextents 5 maxextents 20pctincrease 10 freelists 1 freelist groups 1)parallel(degree default);alter table Employeesadd(constraint CH_PHONE check(PhoneNumber between0and9); create table Departments(DepartmentID char(3) not null,DepartmentName char(20) not null,Note varchar2(100) null contraint PK_DEPARTMENTS primary key(DepartmentID)));alter table Departmentsadd(constraint UN_Departments unique(DepartmentName);alter table Employeesadd(constraint FK_Employees foreign key(DepartmentID)references Departments(DepartmentID);create or replace function CHECK_ID(departmentid IN char)return numberas Num number;x number;begin select count(*) into xfrom Departmentswhere DepartmentID=departmentid;if x0 thenNum:=0;elseNum:=-1;end if;return(num);end;/declarenum number;beginnum:=CHECK_ID(2);if num=0 theninsert into Employees values(990210,张文,to_date(19870324,YYYYMMDD),0,南京镇江路2号,210009,3497534,2);end if;end;/五、感悟与收获(张子祥)我通过本次实验掌握了索引的使用方法,理解了数据完整性的概念及分类,掌握了各种数据完整性的实现方法、变量的分类及使用、各种运算符的使用、各种控制语句的使用、系统函数及用户自定义函数的使用。太原理工大学学生实验报告一、目的与要求1) 掌握存储过程的使用方法。2) 了解触发器的类型。3) 掌握触发器的使用方法。二、实验准备 复习第7章内容。三、实验内容1) 创建触发器对于YGGL数据库,Employees表的DepartmentID列与Departments表的DepartmentdiD列应满足参照完整性规则。a) 向Employees表中插入或修改一条记录时,通过触发器检查记录的值在Departments表中是否存在,若不存在,则取消插入或修改操作。b) 修改Departments表中的DepartmentID字段时,对该字段在Employees表中的对应值也做相应修改。c) 删除Departments表中一条记录时,也删除该记录DepartmentID字段值在Employees表中的记录。2) 创建存储过程a) 添加致远记录的存储过程EmployeeAdd。b) 修改职员记录的存储过程EmployeeUpdate。c) 删除职员记录的存储过程EmployeeDelete。3) 调用存储过程四、命令语句及结果create or replace trigger EmployeesInsafter insert or update on manager.Employees for each rowdeclarenum number;begin select count(*) into numfrom Departmentswhere DepartmentID=:new.DepartmentID;if num=0 thenDBMS_OUTPUT.PUT_LINE(职员所在部门不存在);end if;end;/create table manager.employees as select * from sys.employees;create table manager.Departments as select * from sys.Departments;create or replace trigger DepartmentsUpdateafter update on manager.Departments for each rowbeginif updating thenupdate Employeesset DepartmentID=:new.DepartmentIDwhere DepartmentID=:old.DepartmentID;end if;end;/create or replace trigger DepartmentsDeleteafter delete on manager.Departments for each rowbegindelete from Employeeswhere DepartmentID=:OLD.DepartmentID;end;/create or replace procedure EmployeeAdd(EmployeeID in char,Name IN char,Birthday in date,Sex in number,Address in char,Zip in char,Phonenumber in char,DepartmentID in char)asbegininsert into manager.Employeesvalues(EmployeeID,Name,Birthday,Sex,Address,Zip,Phonenumber,DepartmentID);commit;end;/creat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论