Oracle数据应用技术实验指导书湖南工程职业技术学院(刘静)2010年3月实验1 Oracle入门(2学时)一、目标1.能够使用Oracle Enterprise Manager Console2.能够创建表空间和用户账户3.能够使用Oracle Net Configuration Assistant配置网络服务名4.能够用SQL *Plus 连接Oracle服务器二、实验内容及要求1.实验内容(1)使用Oracle Enterprise Manager Console熟悉Oracle企业管理器控制台,能够通过图形化的用户界面查看Oracle 数据库的物理组件和逻辑组件,加深对Oracle体系结构的理解。
分析:要熟悉Oracle数据库,必须先安装Oracle服务器软件,或者安装客户端软件,再通过网络配置链接到一个远程的Oracle服务器。
假定已经在本机上安装了Oracle数据库,用户可以使用Oracle Enterprise Manager Console 来管理数据库。
使用企业管理器控制台可以执行各项任务,如管理Oracle实例、创建表空间、用户账户、表和同义词等。
用户需要以管理员身份登陆到Oracle 数据库进行练习。
(2)创建表空间GITM公司想要在数据库总存储员工信息、工资记录、部门信息和产品信息,这些信息将存储在不同的表中。
为了与其他建立在此数据库上的应用系统实现存储空间的独立,需要建一个名为GITM的表空间,此应用系统的中的表都应该存储在此表空间中。
(3)创建用户账户在数据库中已创建GITM表空间用于存储公司员工和部门信息表。
现在需要一个特定用户,该用户能够访问相关信息,并可创建数据库对象,如表、视图和索引等。
要求创建一个用户,并向其授予连接数据库、创建模式对象和使用表空间的权限。
(4)使用Oracle Net Configuration AssistantOracle数据库服务器可以被多个用户访问以执行不同的操作。
要求使用Oracle Net Configuration Assistant工具来配置网络组件,使用户能够访问远程数据库。
(5)使用SQL *Plus和iSQL *Plus连接Oracle服务器Oracle数据库网络配置成功之后,就可以使用Oracle工具连接和使用数据库了。
SQL *Plus是最常用的Oracle查询工具,要求用前面练习创建的用户登录数据库,以创建应用系统的表。
2.实验要求根据实验内容指定的要去完成实训,并提交实训结果。
实验2 SQL查询和SQL函数(2学时)一、目标1.能够构造select语句2.能够测试SQL操作符3.能够使用SQL函数二、实验内容及要求1.实验内容(1)测试ROWID和ROWNUM伪列用户表因为没有建立主键约束而插入了重复的记录,为了解决数据冗余问题,必须删除表中重复的记录。
用户应用程序只关心查询结果集中的一部分,需要限制查询返回的行数。
1)启动SQL *PLUS。
创建表myt_est:CREATE TABLE my_test (id NUMBER(3),name V ARCHAR2(20) );2)向表中插入5条完全相同的命令。
INSERT INTO my_test V ALUES (1, 'This is line 1');INSERT INTO my_test V ALUES (1, 'This is line 1');INSERT INTO my_test V ALUES (1, 'This is line 1');INSERT INTO my_test V ALUES (1, 'This is line 1');INSERT INTO my_test V ALUES (1, 'This is line 1');COMMIT;查看表中记录:SELECT * FROM my_test;3)测试ROWID伪列。
要求查看伪列、id、name,并利用伪列删除第三行记录,再执行查询语句:SELECT ROWNUM, id, name FROM my_test; 查看第三行记录是否被删除。
4)测试ROWNUM伪列。
使用ROWNUM限制查询ROWNUM<3的行数。
(2)构造select语句创建表employee:CREATE TABLE employee (empno V ARCHAR2(5) PRIMARY KEY,ename V ARCHAR2(25),designation V ARCHAR2(20),dateofjoining DATE,branchcode V ARCHAR2(15) REFERENCES Branch_Details (branchcode), deptcode V ARCHAR2(15) REFERENCES Dept_Details (deptcode) );INSERT INTO employee V ALUES ('E001', 'John Smith' , 'Manager', '1-2月-1998', 'BH01', 'DP02');插入多条记录:INSERT INTO employee V ALUES ('E002', 'Jane', 'Sales Manager','1-6月-2001', 'BH02', 'DP02');INSERT INTO employee V ALUES ('E003', 'Harry ', 'Accountant', '1-11月-2003', 'BH03', 'DP01');INSERT INTO employee V ALUES ('E004', 'JOE', 'Accountant', '1-12月-2002', 'BH03', 'DP03');INSERT INTO employee V ALUES ('E005', 'Michael', 'Manager', '1-1月-1999','BH03', 'DP02');INSERT INTO employee V ALUES ('E006', 'Jack Aranck', 'Sales Manager', '1-2月-2003', 'BH05', 'DP01');INSERT INTO employee V ALUES ('E007', 'George', 'Sr. Accountant', '1-11月-2004', 'BH05', 'DP03');INSERT INTO employee V ALUES ('E008', 'John Aranck' , 'Sr. Accountant', '1-2月-2005', 'BH01', 'DP02');职员表employee中的信息需要做较大的调整,在调整之前要先对表中的总要记录做一个副本。
查询职员信息时需要指定各个列的别名,如以中文名称做标题等。
(3)测试SQL操作符检查表Salary_Records的描述:CREATE TABLE Salary_Records (empno V ARCHAR2(5) REFERENCES Employee(empno),working_Days NUMBER,empsal NUMBER );公司的财务部需要检查员工的工资,请使用SQL操作符编写语句,检索工资在15000到20000元之间的职员的信息。
(4)使用连接操作符创建表order_master:CREATE TABLE ORDER_MASTER (ORDERNO V ARCHAR2(5) PRIMARY KEY,ODATE DA TE,VENCODE V ARCHAR2(5),OSTATUS CHAR(1),DEL_DATE DATE );INSERT INTO ORDER_MASTER V ALUES ('O001', '12-8月-08', 'V001','y','22-8月-08');INSERT INTO ORDER_MASTER V ALUES ('O002', '5-7月-08', 'V008','n','6-7月-08');INSERT INTO ORDER_MASTER V ALUES ('O003', '12-9月-08', 'V012','n','22-9月-08');COMMIT;销售经理想查看vencode为V008的供应商的订单状态,要求使用连接操作符编写查询语句,使ORDERNO、ODATE、DEL_DATE在同一列显示,而非分列显示。
(5)使用集合操作符要求编写语句以显示vendor_master和order_master表中不重复的vencode 列值,只列出ostatus为“c”的vencode。
(6)使用SQL日期函数公司决定提升2003年前半年之前就职的职员。
要求显示职员的就职年度,如果日期晚于“01-7月-2003”,则四舍五入到下一年。
编写语句以显示2003年7月1日之前就职职员的详细信息。
2.实验要求根据实验内容指定的要去完成实训,并提交实训结果。
实验3 锁和表分区(2学时)一、目标1.能够理解锁定的概念2.能够测试行级锁3.能够测试共享锁和行共享锁4.能够创建表分区二、实验内容及要求1.实验内容(1)测试行级锁先创建表空间GITM,再创建用户:ACCP,密码:ACCP,用ACCP登陆SQL *PLUS、CREATE TABLE employee (empno V ARCHAR2(5) PRIMARY KEY,ename V ARCHAR2(25),designation V ARCHAR2(20),dateofjoining DATE,branchcode V ARCHAR2(15),deptcode V ARCHAR2(15) );INSERT INTO employee V ALUES ('E001', 'John Smith' , 'Manager', '1-2月-1998', 'BH01', 'DP02');INSERT INTO employee V ALUES ('E002', 'Jane', 'Sales Manager','1-6月-2001', 'BH02', 'DP02');INSERT INTO employee V ALUES ('E003', 'Harry ', 'Accountant', '1-11月-2003', 'BH03', 'DP01');INSERT INTO employee V ALUES ('E004', 'JOE', 'Accountant', '1-12月-2002', 'BH03', 'DP03');INSERT INTO employee V ALUES ('E005', 'Michael', 'Manager', '1-1月-1999', 'BH03', 'DP02');INSERT INTO employee V ALUES ('E006', 'Jack Aranck', 'Sales Manager', '1-2月-2003', 'BH05', 'DP01');INSERT INTO employee V ALUES ('E007', 'George', 'Sr. Accountant', '1-11月-2004', 'BH05', 'DP03');INSERT INTO employee V ALUES ('E008', 'John Aranck' , 'Sr. Accountant', '1-2月-2005', 'BH01', 'DP02');授予SCOTT用户更新EMPLOYEE表的权限。