oracle9i实验指导书_第1页
oracle9i实验指导书_第2页
oracle9i实验指导书_第3页
oracle9i实验指导书_第4页
oracle9i实验指导书_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、 Oracle数据库实验指导书实验一Oracle9i的安装与配置一、实验目的:1. 掌握Oracle9i的安装与配置过程2. 掌握Oracle9l服务的启动与关闭二、实验内容:1. Oracle9i的安装与配置过程2. Oracle9I服务的启动与关闭三、 实验步骤、:1 .启动 VMwareWorkstation,启动 windows2000server2. 放入Oracle9i安装光盘第一张,开始在虚拟操作系统下安装Oracle3. 配置客户端,添加服务命名,利用sqlplus进行试连接通过厂】 Application Developmentella勉Admini strati on AM

2、icrosoft ODBC ANet ConfiguiatioConfiguration md Migration ToolsEriterprise Management F&cksEnterpri se Manager Quick Tours Integrated Management Tools Enterprise Manager Console Release Docwnent孩tion实验二Oracle基本知识与 SQL*PLUS环境一、目的和要求熟悉Oracle的基本知识。熟悉Oracle的命令操作环境SQL*PLUS熟悉并掌握一些SQL*PLU命令。二、实验内容:1 . SQLP

3、LUS的基本命令三、实验步骤:1连接数据库sqlplus /no logconn sys/demodemo as sysdba2练习下面的命令APPEND text 或A text把字符串增加到当前行的末尾CHANGE /old/new/ 或C/old/new/把当前行的旧字符串替换成新字符串CLEAR BUFFER 或 CL BUFF从SQL缓冲区中删除所有行CONNECT userid/password 或 CONN userid/password在当前的登录下,击活其它的Oracle用户DEL 删除当前行DESCRIBE table name 或 DESC table name显示任何数

4、据库表的数据结构EXIT 退出 SQL*PlusGET filen ame把以file name为名字的文件内容调入 SQL缓冲区中INPUT插入许多行HELP击活Oracle内部的帮助部件HOST comma nd在SQL*Plus中击活一个操作系统命令LIST显示SQL缓冲区的所有行RUN显示并运行在缓冲区中的当前SQL命令SAVE file name把SQL缓冲区中的内容保存到以file name为名字的文件中,默认路径为 orawinbinSTART file name或 file name运行以前保存的命令文件实验三Oracle表的创建一. 目的和要求1了解并掌握Oracle中表结构

5、的定义。2. 了解并掌握Oracle中的用Create命令定义表的方法,以及表的完整性 定义。3. 了解并掌握Oracle中的用Alter命令和Drop命令对表的修改和删除。二. 实验内容1. 创建表EMPCREATE TABLE EMP(EMPNO NUMBER(4) NOT NULL PRIMARY KEY,ENAME VARCHAR2(10),JOB VARCHAR2(10),MGR NUMBER(4),HIREDATE DATE,SAL NUMBER(7,2),COMM NUMBER(7,2),DEPTNO NUMBER(2) NOT NULL);用SQL*PLU命令DESCRIB来看

6、生成的EMP表的列明细清单:输入命令:DESCRIBE EMPEMP生成的数据表结构显示如下:2. 从其他表中抽取字段生成数据表CREATE TABLE EMP_PART ASSELECT EMPNO,ENAME,JOB,SAL,COMM FROM EMP;输入命令:DESCRIBE EMP_PARTEMP_Part生成的数据表结构结果显示如下:3. DROP命令删除数据表DROP TABLE EMP_PART;4. 给数据表EMP增加一个字段SPOUSES_NAMEALTER TABLE EMPADD (SPOUSES_NAME CHAR(10)输入命令:DESCRIBE EMPEMP生成的

7、数据表结构显示如下:5. 用ALTER的 MODIFY命令修改已存在的字段的定义ALTER TABLE EMPMODIFY (ENAME VARCHAR22)输入命令:DESCRIBE EMPEMP生成的数据表结构显示如下:6. 用ALTER勺DROP命令删除数据表中已存在的约束ALTER TABLE EMP DROP PRIMARY;EY7. 创建表 CUSTOMERcreate table customer( last_ name state_cd salesvarchar2varchar(2), nu mber);varchar(2) not nu II, varchar2(30);(3

8、0) not null,8 .创建表STATE create table state( state_cd sate_ name实验四数据插入、修改和删除和查询一.目的和要求1 在数据表中用Insert增加记录2. 用Update修改数据表中的数据。3. 用Delete删除表中的数据。4. 了解事务处理过程及其命令。在基本表customer中插入数据二.实验内容1 .用 InsertSQLi nsert into customer values ( SQLi nsert into customer values ( SQLi nsert into customer values ( SQLi n

9、sert into customer values ( SQLi nsert into customer values (2. 在表STAT冲插入指定的字段Nicholson , CA ,6989.99) Martin , CA ,2345.45);Laursen , CA ,34.34);Bambi , CA ,1234.55);McGraw/ , NJ ,123.45);SQLi nsert into state (state_ name,state_cd) values ( Massachusetttes , MA );SQLi nsert into state (state_ name

10、,state_cd)2 values ( California , CA );SQLi nsert into state (state_ name,state_cd)2 values ( NewJersey , NJ);SQLi nsert into state (state_ name,state_cd)2 values ( NewYork , NY );3. 修改数据,NY改为FD:把 state 表中 NewYork改为 FloridaUPDATE state SET state_name = Florida , state_cd =FDwhere state_name = NewYor

11、k and state_cd = NY ;4. 删除数据从 STATE表删除 state_name 为 Florida 和 state_cd 为 FD的记录:DELETE FROM STATE WHERE state_name = Florida AND sta te_cd = FD ;5. 查询1. 显示EMP表中所有的部门号、职工名称和管理者号码:SELECT DEPTNO,ENAME,MGRFROM EMP;2. 算术运算符在SQL中的使用SELECT ENAME, SAL+250*12 FROM EMP;3. 连字符的使用把职工号和职工名字连接起来,如下:SELECT EMPNO|EN

12、AME EMPLOYEE FROM EMP;把职工号和职工名字中间用-连接起来,并输出 WORKS! DEPARTMET 如下:SELECTEMPNO - |ENAMEEMPLOYEE,WORK! DEPARTMET DEPTNOFROM EMP;4. 禁止重复如果列举出EMP表中所有部门号:Select dept no from emp;5. 排序按单个字段排序,如按照ENAM排序,SELECT ENAME, JOB, SAL*12, DEPTNOFROM EMPORDER BY ENAME;按多个字段排序:如按部门号升序,按工资降序排序SELECT DEPTNO, JOB, ENAMEFR

13、OM EMPORDER BY DEPTNO, SAL DESC;6. 带条件的查询1)查询工作是CLERK勺所有职工的姓名,职工号和部门号SELECT ENAME, EMPNO, JOB, DEPTNOFROM EMPWHERE JOB CLERK;2)从DEPT表中查询出部门号大于20的部门名称SELECT DNAME, DEPTNOFROM DEPTWHERE DEPTNO 20;3)复合条件查询查询工作是MANAGE并且工资大于1500,或者工作是SALESMA的职工信息:SELECT EMPNCENAMJE JOB,SAL,DEPTNOFROM EMPWHERE SAL1500 AND

14、 JOB MANAGEROR JOB =SALESMAN;7. 操作符的应用1)BETWEE的应用查询工资在1000到2000之间的职工名字和工资信息。SELECT ENAMESALFROM EMPWHERE SAL BETWEEN 1000 AND 20002)IN查询有7902, 7566, 7788三个MGF号之一的所有职工:SELECT EMPNOENAME SAL, MGRFROM EMPWHERE MGR IN( 7902, 7566, 7788);8. 单&号替代变量1) 数字变量输入:SELECT EMPNCENAMJE SALFROM EMPWHERE DEPTNO = &

15、DEPARTMENT_NUMBER;En ter value for departme nt_nu mber:102) 字符串变量输入:SELECT EMPNCENAMJE SAL*12FROM EMPWHERE JOB &JOB_TITLE ;En ter value for job_title: MANAGER实验五视图、索引、序列和权限设置一. 目的和要求1 .掌握视图(VIEW在Oracle的应用2. 了解索引的应用。3. 了解Oracle中权限机制。4. 掌握 GRAN和 REVOK命令。二. 实验内容1. 创建视图生成一个部门号是10的视图:CREATE VIEW D10EMPAS

16、SELECT EMPNO, ENAME, SALFROM EMPWHERE DEPTNO = 10;View created。2. 视图应用从视图D10EM中查询出全部信息:SELECT * FROM D10EMPORDER BY ENAME;3. 删除视图DROP VIEW D10EMP;4. 创建索引CREATE INDEX I_ENAME ON EMP(ENAME);CREATE UNIQUE INDEX l_EMPNO ON EMP(EMPNO);5索引应用如果查询语句如下则没有用到索引l_ENAMESELECT ENAME,JOB,SAL FROM EMP;如果查询语句如下则用到索引

17、I_ENAMESELCT * FROM EMP WHERE ENAM=ONES;6删除索引DROP INDEX I_ENAME;7 创建一个用户CREATE USER MYSELF IDENTIFIED BY MY;8 修改用户口令ALTER USER MYSELF IDENTIFIED BY ME9 对象权限授权把DEPT的 SELEC对象权限授给MYSEL用户:GRANT SELECT ON DEPT TO MYSELF;把EMP的SELECTS限授给所有用户:GRANT SELECT ON EMP TO PUBLIC;10.收回对象权限从MYSEL收回所有DEPT的对象权限:REVOKE

18、 ALL ON DEPT FROM MYSELF收回所有用户对EMP的SELECTS限:REVOKE SELECT ON EMP FROM PUBLIC;11 删除用户DROP USER MYSELF实验六PL/SQL程序设计一. 目的和要求1. 了解PL/SQL在Oracle中的基本概念。2. 掌握PL/SQL的各组成部分。3. PL/SQL的运用(存储过程,函数,异常)。二. 实验内容1 .在SQL*Plus中使用PL/SQL块处理EMP表中职工号7788的职工,如果工资小于 3000那么把工资更改为 3000:SQLDECLAREX NUMBER(7,2);BEGINSELECT sal

19、 INTO x FROM emp WHERE emp no = 7788;IF x EXECUTE proc_execution3. 带输入参数的存储过程:解雇给定职工号的职工,并调用 proc_execution :SQLCREATE OR REPLACE PROCEDURE fire_emp(v_emp_no IN emp.emp no%type)ISBEGINproc_executi on;DELETE FROM EMP WHERE emp no = v_emp_no;END fire_emp;/Procedure created.SQLEXECUT fire_emp(7654)PL/S

20、QL procedure successfully completed.存储过程删除了职工号7654的职工。4. 带输入输出的存储过程查询EMP中给定职工号的姓名、工资和佣金。SQL CREATE OR REPLACE PROCEDURE query_emp(v_emp_no IN emp.emp no %type,v_emp_n ame OUT emp.e name%type,v_emp_sal OUT emp.sal%type,v_emp_comm OUT m%type)ISBEGINSELECT en ame, sal, commINTO v_emp_n ame, v_em

21、p_sal, v_emp_commFROM EMP WHERE emp no = v_emp_no;END query_emp;/Procedure created.SQL VARIABLE emp_name varchar2(15);SQL VARIABLE emp_sal number;SQL VARIABLE emp_comm number;SQL EXECUTE query_emp(7654,:emp_ name, :emp_sal, :emp_comm);PL/SQL procedure successfully completed.SQL PRINT emp_name;EMP_NA

22、MEMARTIN5. 用Function查询出EMP中给定职工号的工资:SQL CREATE OR REPLACE FUNCTION get_sal(v_emp_no IN emp.emp no %type)RETURN nu mberISV_emp_sal emp.sal%type := 0;BEGINSELECT sal INTO v_emp_salFROM EMP WHERE emp no = v_emp_no;RETURN (v_emp_sal);END get_sal;/Procedure created.SQLVARIABLE emp_sal numberSQLEXECUTE :e

23、mp_sal := get_sal(7654)PL/SQL procedure successfully completedSQLPRINT emp_salEMP_SAL6 用异常处理完善程序如例3中:解雇给定职工号的职工,并调用proc_execution :SQL CREATE OR REPLACE PROCEDURE fire_emp(v_emp_no IN emp.emp no %type)ISBEGINproc_executi on;DELETE FROM EMP WHERE emp no = v_emp_no;END fire_emp;Procedure created.SQLEX

24、ECUT fire_emp(7654)EXCEPTION如果职工号7654的职工不存在则出错。为了避免出错我们使用了 语句。SQL CREATE OR REPLACE PROCEDURE fire_emp(v_emp_no IN emp.emp no %type)ISBEGINproc_executi on;DELETE FROM EMP WHERE emp no = v_emp_no;IF SQL%NOTFOUND THENRAISE_APPLICATION_ERROR(-20202,Employee does not exists.);END IF;END fire_emp;Procedu

25、re created.SQLEXECUT fire_emp(7654)就不会出错了。实验七触发器和游标一. 目的和要求1了解触发器的概念。2. 熟悉触发器的基本用法。3. 了解游标的概念。4. 熟悉游标的基本用法。二. 实验内容1. 声明显式游标声明一个游标用来读取基表 EMF中部门号是20且工作为分析员的职工:DECLARECursor cl ISSELECT en ame, sal, hiredate FROM empWHERE dept no = 20 AND job = ANALYST; v_en ame VARCHAR2(10);v_sal NUMBER(7,2);v_hiredat

26、e date;begi nOPEN c1;FETCH c1 INTO v_en ame, v_sal, v_hiredate;CLOSE c1;end;2. 游标的应用使用游标属性判断游标是否打开:IF c1%0PEN THENFETCH cl INTO v_en ame, v_sal, v_hiredate;ELSEOPEN c1;END IF;利用循环读取数据:LOOPFETCH c1 INTO v_en ame, v_sal, v_hiredate ;EXIT WHEN C1%ROWCOUNT 10;END LOOP;利用游标修改数据,如果 EMP中部门号是20,工作为分析员的职工工资小

27、 于2000,更改为2000:DECLARE CURSOR c1 ISSELECT emp no, sal, hiredate, rowidFROM emp WHERE dept no = 20 AND job = ANALYSFOR UPDATE OF sal;Emp_record c1%ROWTYPE;BEGINOPEN c1;FETCH c1 INTO emp_record;IF emp_record.sal v/htmlS_read.asp%Set my_conn = Server.CreateObject(ADODB.Co nn ectio n)Co nn Stri ng=Provi

28、der=MSDAORA.1;DataSource=demo1;Userld=user01;Password=lgc;my_Conn. Ope n Conn Stri ngset rs = server.CreateObject(adodb.recordset)sql =select * from stude ntrs.cursorlocati on=3RS.open Sql,my_co nn ,1,1resp on se.write response.write 学号 v/TDTD地址 do while not rs.eofsno=rs(s no) sex=rs(sex) sn ame=rs(s name) address=rs(address) resp on se.write respo nse.write &sno & resp on se.write &sn ame & respo nse.write & sex & respo nse.write & address & rs.move nextresp on se.write loopresp on se.write rs.closeset

温馨提示

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

评论

0/150

提交评论