1、太原理工大学ORACLE数据库实验本科实验报告课程名称: ORACLE大型数据库系统 实验项目: 创建数据库和表 实验地点: 迎西校区4506机房 专业班级:软件工程 学号: 学生姓名: 指导教师: 2012年 5月实验一 创建数据库和表目的与要求(1)了解数据可的结构以及一些基本概念。(2)了解表的结构特点。(3)了解Oracle 10g的基本数据类型。(4)学会使用DBCA创建数据库。(5)学会使用界面方式创建表。(6)学会使用SQL语句手工穿件数据库。(7)学会使用SQL语句创建表。实验准备首先要明确,能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句
2、的用户。其次创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小、SGA分配和存储数据库的文件。然后,确定数据库包含哪些表以及所包含的各表的结构,还要了解Oracle 10g的常用数据类型,以创建数据库的表。此外还要了解两种常用的创建数据库、表的方法,即利用DBCA创建和使用PL/SQL的CREATE DATABASE语句创建。实验内容创建企业管理的员工管理数据库YGGL,包含Employees(员工自然信息)表、Department(部门信息)表和Salary(员工薪水情况)表。使用OEM创建表图1-1创建Employees表图1-2成功创建Employees表图1-3成功
3、删除Employees表图1-4创建Departments表图1-5成功创建Departments表图1-6 成功删除Departments表图1-7创建Salary表图1-8成功创建Salary表图1-9成功删除Salary表在PL/SQL语句创建表1.创建Employees表create table Employee( EmployeeID char(6) NOT NULL PRIMARY KEY, Name char(10) NOT NULL, Bithday date NOT NULL, Sex number(1) NOT NULL, Address char(20) NULL, Zi
4、p char(6) NULL, PhoneNumber char(12) NULL, DepartmentID char(3) NOT NULL REFERENCES Departments(DepartmentID)tablespace users;图1-10 使用SQL语句创建Employees表2.创建Departments表create table Departments( DepartmentID char(3) NOT NULL PRIMARY KEY, Departmentname char(20) NOT NULL, Note varchar2(100) NULL)tables
5、pace users;图1-11 使用SQL语句创建Departments表3.创建Salary表create table Salary( EmployeeID char(6) NOT NULL PRIMARY KEY, InCome number(8,2) NOT NULL, OutCome number(8,2) NOT NULL)tablespace users;图1-11 使用SQL语句创建Salary表本科实验报告课程名称: ORACLE大型数据库系统 实验项目: 表数据插入、修改和删除 实验地点: 迎西校区4506机房 专业班级:软件工程 学号: 学生姓名: 指导教师: 2012年
6、 5月实验二 表数据插入、修改和删除目的与要求(1)学会使用PL/SQL语句对数据表进行插入、修改和删除数据的操作。(2)了解数据更新操作时要注意数据完整性。(3)了解PL/SQL语句对表数据操作的灵活性。实验准备首先了解对表数据的插入、删除、修改都属于表数据的更新操作。对表数据的操作可以再SQL Developer中进行,也可以由PL/SQL语句实现。其次要掌握PL/SQL中用于对表数据进行插入、修改和删除的命令分别是INSERT、UPDATE和DELETE(获TRAUNCATE TABLE).要特别注意在执行插入、删除、修改等数据更新操作时,必须保证数据完整性。此外,还要了解使用PL/SQ
7、L语句在对表数据进行插入、修改及删除时,比SQL Developer中操作表数据更灵活,功能更强大。实验内容使用PL/SQL语句,在实验1建立的数据库的三个表Employees、Departments和Salary中分别插入多行数据记录,然后修改和删除一些记录。使用PL/SQL进行有限制的修改和删除。使用PL/SQL命令操作数据(1)使用PL/SQL命令分别向Employees、Departments和Salary表中插入一行记录。在启动SQL*PLUS窗口中输入以下PL/SQL语句并执行。INSERT INTO Employees VALUES(011112,罗林,TO_DATE(19730
8、626,YYYYMMDD),1,解放路100号 ,210002,4055663,5);select * from Employees;图2-1INSERT INTO Departments VALUES(2,人力资源部,NULL);select * from Departments;INSERT INTO Salary VALUES(011112,1200.09,50);select * from Salary;图2-2(2)使用PL/SQL命令命令修改表Salary中的某个记录的字段值。UPDATE Salary SET InCome=2890 WHERE EmployeeID=011112
9、;查询修改结果:select * from Salary;图2-3(3)修改表employees和表departments的记录值,注意完整性。UPDATE Employees SET Address=太原理工大学 WHERE EmployeeID=011112;select * from Employees;图2-4UPDATE Departments SET Departmentname=中情局 WHERE DepartmentID=2;select * from Departments;图2-5(4)使用PL/SQL命令修改表Salary中的所有记录的字段值。UPDATE Salary
10、SET InCome=InCome+100;查询修改结果,与之前的内容对比。图2-6(5)使用DELETE语句删除Salary表中一行记录。查询删除前后对比。DELETE from Salary Where EmployeeID=011112;图2-7(6)使用TRANCATE TABLE语句删除表中所有行。TRUNCATE TABLE Salary;图2-8本科实验报告课程名称: ORACLE大型数据库系统 实验项目: 数据库的查询和视图 实验地点: 迎西校区4506机房 专业班级:软件工程 学号: 学生姓名: 指导教师: 2012年 5月实验三 数据库的查询和视图目的与要求(1)掌握SEL
11、ECT语句的基本语法。(2)掌握子查询的表示方法。(3)掌握连接查询的表示方式。(4)掌握数据汇总的方法。(5)掌握SELECT语句的GROUP BY子句的作用和使用方法。(6)掌握SELECT语句的ORDER BY子句的作用和使用方法。(7)掌握视图的使用方法。实验准备(1)了解SELECT语句的基本语法格式和执行方法。(2)了解子查询的表示方法、连接查询和数据汇总的方法。(3)了解SELECT语句和GROUP BY子句的作用和使用方法。(4)了解SELECT语句和GROUP BY 子句的作用。(5)了解视图的作用和创建视图的方法。(6)了解视图的使用方法。实验内容1.SELECT语句的基本
12、使用(1)对于实验2给出的数据表结构,查询每个雇员的所有数据。在SQL*PLUS窗口中输入如下的语句并执行:SELECT *FROM Employees;图3-1用select语句查询department表和salary表所有记录。select * from departments;图3-2select * from salary;图3-3(2)查询每个雇员的地址和电话。SELECT Address,PhoneNumber From Employees;图3-4用select语句查询department表和salary表一列或若干列。select departmentid,department
13、name from departments;图3-5select employeeid,income from salary;图3-6(3)查询EmployeeID为000001的雇员的地址和电话。SELECT Address,PhoneNumber From Employees WHERE EmployeeID=011112;select departmentid,departmentname from departments where departmentid=1;select employeeid,income from salary where employeeid=000001;图
14、3-7(4)查询Employees表中所有女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址和电话。SELECT Address AS 地址 , PhoneNumber AS 电话FROM Employees WHERE sex=0;图3-8(5)计算每个雇员的实际收入。SELECT EmployeeID,InCome-OutCome AS 实际收入 From Salary;图3-9(6)找出所有姓王的雇员的部门号。SELECT DepartmentID FROM Employees WHERE name LIKE王%;图3-10找所有地址中含有中山的雇员的豪门及部门号。SELE
15、CT employeeid,DepartmentID FROM Employees WHERE address LIKE%中山%;图3-11(7)找出所有收入在2000元3000元之间的雇员号码。Select EmployeeID from Salary where Income between 2000 and 3000;图3-12找出所有在部门 1 或部门2 工作的雇员的号码。Select EmployeeID from Salary where departmentid =1 or departmentid =2;图3-122.子查询的使用(1)查询在财务部工作的雇员的情况SELECT
16、* FROM Employees WHERE DepartmentID= (SELECT DepartmentID from Departments WHERE DepartmentName=财务部 );图3-13用子查询的方法找出所有收入在2500元以下的雇员的情况。 select * from employees where employeeid in ( select employeeid from salary where income2500.00 );图3-14(2)查找财务部年龄不低于所有研发部雇员年龄的雇员的姓名。select Name from Employees where
17、 DepartmentID IN ( select departmentid from departments where departmentName=财务部 ) AND Birthday all (select income from salary where employeeid in (select employeeid from employees where departmentid IN ( select departmentid from departments where departmentname=财务部 ) ) ) );图3-16查找比所有财务部的雇员收入都高的雇员的姓
18、名。select name from employees where employeeid in ( select employeeid from salary where incomeall ( select income from salary where employeeid in ( select employeeid from employees where departmentid= (select departmentid from departments where departmentname=财务部 ) ) ) );图3-17用子查询的方法查找所有年龄比研发部雇员年龄都大的
19、雇员的姓名。select Name from Employees where Birthday 2000;图3-21查询研发部在1966年以前出生的雇员姓名及薪水详情。Select name,income,outcome From employees,salary,departments Where employees.employeeid=salary.employeeid and Employees.departmentid=departments.departmentid and Departmentname=研发部 and birthday 2000;图3-285.GROUP BY和O
20、RDER BY子句的使用(1)求各部门的雇员数。Select departmentid as 部门号, count(employeeid) as 部门人数From employeesGroup by departmentid; Select count(employeeid) From salaryGroup by departmentid;图3-29统计各个部门收入在2000以上的雇员的数量。select departmentid as 部门号, count(employeeid) as 收入大于2000人数 from employees where employeeid in ( Sele
21、ct employeeid From salary where income 2000 )Group by departmentid;图3-30(2)将各雇员的情况按收入由低到高排列。Select employees.*,salary.*From employees,salaryWhere employees.employeeid=salary.employeeidOrder by income;图3-31将各个雇员的情况按出生时间先后排序。Select employees.*,salary.*From employees,salaryWhere employees.employeeid=salary.em
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1