Oracle数据库基础教程课后实验---实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Oracle数据库基础教程实验报告专业计算机科学与技术姓名李文成学号2010指导老师肖卓宇实验一创建数据库和表目的与要求(1)了解oracle数据库的逻辑结构和物理结构。(2)了解OracleEnterpriseManager的使用情况。(3)学习关闭和启动数据库实例的方法。(4)学会使用SQL语句创建数据库的方法。(5)学会使用SQL语句删除数据库的方法。实验准备首先要了解Oracle数据库的逻辑结构,包括方案对象,数据块、区间、段、和表空间等。数据库由若干个表空间组成,表空间由表组成,表由段组成,段由区间组成,区间则由数据块组成。Oracle数据库的物理结构由构成数据库的操作系统文件所决定。每个Oracle数据库都由3种类型的文件组成:数据文件、日志文件和控制文件。这些数据库文件为数据库信息提供真正的物理存储。EnterpriseManager10g是Oracle10g提供的新的管理工具,简称EM。使用它可以完成启动、关闭数据库,创建、删除数据库等功能。只有系统管理员或拥有CREATEDATABASE权限的用户才能创建数据库。可以在EnterpriseManager中通过图形界面创建数据库,也可以使用CREATEDATABASE语句创建数据库。实验内容oracle服务器端的安装先解压10201_client_win32.zip压缩包,双击setup.exe。如下图:稍等之后进入欢迎界面,如下图:点击下一步选择“管理员”安装类型,点击下一步:选择安装的详细目录后点击下一步。点击安装:选择执行典型配置:点击下一步:完成。创建数据库使用OEM创建表图1-1创建Employees表图1-2成功创建Employees表图1-3成功删除Employees表图1-4创建Departments表图1-5成功创建Departments表图1-6成功删除Departments表图1-7创建Salary表图1-8成功创建Salary表图1-9成功删除Salary表在PL/SQL语句创建表1.创建Employees表createtableEmployee(EmployeeIDchar(6)NOTNULLPRIMARYKEY,Namechar(10)NOTNULL,BithdaydateNOTNULL,Sexnumber(1)NOTNULL,Addresschar(20)NULL,Zipchar(6)NULL,PhoneNumberchar(12)NULL,DepartmentIDchar(3)NOTNULLREFERENCESDepartments(DepartmentID))tablespaceusers;图1-10使用SQL语句创建Employees表2.创建Departments表createtableDepartments(DepartmentIDchar(3)NOTNULLPRIMARYKEY,Departmentnamechar(20)NOTNULL,Notevarchar2(100)NULL)tablespaceusers;图1-11使用SQL语句创建Departments表3.创建Salary表createtableSalary(EmployeeIDchar(6)NOTNULLPRIMARYKEY,InComenumber(8,2)NOTNULL,OutComenumber(8,2)NOTNULL)tablespaceusers;图1-11使用SQL语句创建Salary表实验二角色和用户管理目的与要求(1)了解Oracle数据库用户和角色的概念。(2)学习使用SQL语句创建Oracle用户。(3)学习使用SQL语句创建Oracle角色。(4)学习使用SQL语句指定用户的角色。实验准备(1)了解Oracle数据库用户可以分为6种类型,即数据库管(2)了解角色是对用户的一种分类管理办法,不同权限的用户可以分为不同的角色。(3)了解使用CREATEROLE语句创建角色的方法。(4)了解使用DROPROLE语句删除角色的方法。(5)了解使用GRANT语句指定用户角色的方法。(6)了解使用CREATEUSER语句创建用户的方法。(7)了解使用DROPUSER语句删除用户的方法。实验内容1.创建用户在YGGL数据库中创建一个用户manager授予dba角色和sysdba系统权限,他可以替代system系统用户。Connectsystem/mrlassysdba/*以sysdba身份登录*/CreateusermanagerProfiledefaultIdentifiedbymanagerDefaulttablespaceusersTemporarytablespacetempAccountunlock;图2-1图2-2/*授予权限*/Grantsysdbatomanager;Grantconnecttomanager;Grantdbatomanager;Alterusermanagergrantconnectthroughsystem;图2-32.创建角色在YGGL数据库中创建一个角色admin授予dba角色和sysdba系统权限CreateroleadminIdentifiedbymanager;Grantsysdbatoadmin;图2-4Grantsysopertoadmin;Grantconnecttoadmin;Grantdbatoadmin;图2-53.创建概要文件在YGGL数据库中创建概要文件YGGL——PROFILE并分配给用户MANAGER。Createprofileyggl_profilelimitComposite_limitdefaultfailed_login_attempts3Password_lock_time20password_grace_time60Password_life_time30password_reuse_maxunlimitedPassword_reuse_time120password_verify_functiondefault;图2-6实验三表和视图管理目的与要求(1)了解Oracle表和视图的概念。(2)学习使用SQL语句创建表。(3)学习使用SELECT语句查询数据。(4)学习使用SQL语句创建视图。实验准备了解表是数据库中最常用的存储单元,它包括所有用户可以访问的数据。作为关系型数据库,Oracle表由行和列组成。视图是一个虚拟的表,它在物理上并不存在。视图可以把表或其他视图的数据按照一定的条件组合起来所以也可以把它看成是一个存储的查询。视图并不包含数据,它只是从基本表中读取数据。了解使用CREATETABLE语句创建表的方法。了解使用SELECT语句查询数据的方法。了解使用SQL语句创建视图的方法。实验内容使用PL/SQL语句,在实验1建立的数据库的三个表Employees、Departments和Salary中分别插入多行数据记录,然后修改和删除一些记录。使用PL/SQL进行有限制的修改和删除。使用PL/SQL命令操作数据(1)使用PL/SQL命令分别向Employees、Departments和Salary表中插入一行记录。在启动SQL*PLUS窗口中输入以下PL/SQL语句并执行。INSERTINTOEmployeesVALUES('011112','罗林',TO_DATE('19730626','YYYYMMDD'),1,'解放路100号',210002,4055663,5);select*fromEmployees;图3-1INSERTINTODepartmentsVALUES('2','人力资源部',NULL);select*fromDepartments;INSERTINTOSalaryVALUES('011112',1200.09,50);select*fromSalary;图3-2(2)使用PL/SQL命令命令修改表Salary中的某个记录的字段值。UPDATESalarySETInCome=2890WHEREEmployeeID='011112';查询修改结果:select*fromSalary;图3-3(3)修改表employees和表departments的记录值,注意完整性。UPDATEEmployeesSETAddress='中南林业科技大学涉外学院'WHEREEmployeeID='011112';select*fromEmployees;UPDATEDepartmentsSETDepartmentname='中情局'WHEREDepartmentID=2;select*fromDepartments;图3-5(4)使用PL/SQL命令修改表Salary中的所有记录的字段值。UPDATESalarySETInCome=InCome+100;查询修改结果,与之前的内容对比。图3-6(5)使用DELETE语句删除Salary表中一行记录。查询删除前后对比。DELETEfromSalaryWhereEmployeeID=’011112’;图3-7(6)使用TRANCATETABLE语句删除表中所有行。TRUNCATETABLESalary;图3-87、SELECT语句的基本使用(1)对于实验2给出的数据表结构,查询每个雇员的所有数据。在SQL*PLUS窗口中输入如下的语句并执行:SELECT*FROMEmployees;图3-9用select语句查询department表和salary表所有记录。select*fromdepartments;图3-10select*fromsalary;图3-11(2)查询每个雇员的地址和电话。SELECTAddress,PhoneNumberFromEmployees;图3-12用select语句查询department表和salary表一列或若干列。selectdepartmentid,departmentnamefromdepartments;图3-13selectemployeeid,incomefromsalary;图3-14(3)查询EmployeeID为000001的雇员的地址和电话。SELECTAddress,PhoneNumberFromEmployeesWHEREEmployeeID='011112';selectdepartmentid,departmentnamefromdepartmentswheredepartmentid=1;selectemployeeid,incomefromsalarywhereemployeeid=000001;图3-15(4)查询Employees表中所有女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址和电话。SELECTAddressAS地址,PhoneNumberAS电话FROMEmployeesWHEREsex=0;图3-16(5)计算每个雇员的实际收入。SELECTEmployeeID,InCome-OutComeAS实际收入FromSalary;图3-17(6)找出所有姓王的雇员的部门号。SELECTDepartmentIDFROMEmployeesWHEREnameLIKE’王%’;图3-18找所有地址中含有中山的雇员的豪门及部门号。SELECTemployeeid,DepartmentIDFROMEmployeesWHEREaddressLIKE'%中山%';图3-19(7)找出所有收入在2000元~3000元之间的雇员号码。SelectEmployeeIDfromSalarywhereIncomebetween2000and3000;图3-20找出所有在部门1或部门2工作的雇员的号码。SelectEmployeeIDfromSalarywheredepartmentid=1ordepartmentid=2;图3-211.子查询的使用(1)查询在财务部工作的雇员的情况SELECT*FROMEmployeesWHEREDe

1 / 63
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功