收藏 分销(赏)

ORACLE试验参考指导书.doc

上传人:快乐****生活 文档编号:2744304 上传时间:2024-06-05 格式:DOC 页数:31 大小:75.54KB 下载积分:12 金币
下载 相关 举报
ORACLE试验参考指导书.doc_第1页
第1页 / 共31页
ORACLE试验参考指导书.doc_第2页
第2页 / 共31页


点击查看更多>>
资源描述
ORACLE数据库技术试验指导书 ORACLE数据库技术试验指导书 目 录 试验一 SQL*PLUS使用方法及SQL语言中简单查询语句 试验二 SQL语言中分组查询和连接查询语句 试验三 SQL语言中子查询及函数使用 试验四 SQL语言中数据操纵、事务控制和数据定义语句 试验五 SQL/PL块中SQL命令使用 试验六 SQL/PL块中步骤控制语句、游标、例外处理 试验七 数据库触发器、存放过程和存放函数 试验一 SQL*PLUS使用方法及SQL语言中简单查询语句 一、试验目标 1、熟悉SQL语言交互式使用工具SQL*PLUS使用方法 2、熟悉SQL*PLUS常见命令功效和使用方法 3、掌握SQL语言中简单查询语句功效和使用方法 二、试验环境 1、硬件设备:计算机局域网,服务器1台,用户机100台 2、软件系统:Windows Server 网络操作系统,Windows /XP用户机操作系统; Oracle9i服务端数据库系统,用户端工具。 三、试验内容 1、SQL*PLUS使用 (1) 进入(开启)SQL*PLUS 在Windows环境下,双击SQL*PLUS图标或从程序组找SQL*PLUS ,出现登录窗口 输入正确数据库用户名、密码和连接字符串后,若连接数据库成功,则会出现以下提醒符:SQL> (2) 退出 SQL*PLUS SQL>exit 则退回到Windows桌面。 (3) 创建表结构:Create table 创建部门记录表dept和雇员记录表emp结构 SQL> Create table dept ( deptno number(2) not null, dname char(14), loc char(13)); SQL> Create table emp ( empno number(4) not null, ename char(9), job char(10), mgr number(4), Hiredate date, sal number(7,2), comm number(7,2), deptno number(2) not null ); (4) 显示表结构 显示部门记录表dept和雇员记录表emp结构 SQL>desc dept SQL> desc emp (5) 向表中插入统计 向部门记录表dept中插入一条统计 SQL> insert into dept Values (60,‘Computer’,‘Beijing’); SQL> select * from dept; 向部门记录表dept中连续插入多条统计 SQL> insert into dept (deptno,dname,loc) Values ( &deptno,&dname,&loc); (6) 实施SQL缓冲区中命令 SQL>/ (直接实施) SQL>run (先显示命令内容,再实施 ) (7) 实施磁盘上命令文件 a. 先调入缓冲区,再运行: SQL>get f:\ora\dept.sql SQL>/ b. 用@ 或start命令将指定命令文件调入缓冲区并实施。 SQL>@f:\ora \dept.sql 或 SQL>start f:\ora \dept.sql 2、简单查询语句 (1) 无条件简单查询:查表中全部统计 SQL> select Dname, Deptno 2 From dept; 对查询结果进行计算和统计 SQL> select count(*) ALL_EMP, sum(sal) ALL_Sal 2 From emp; (2) 有条件简单查询:查表中部分统计 查在20号部门工作雇员姓名和工资 SQL> select ename,sal,deptno 2 From emp 3 where deptno=20; 查找工种是职员或分析员雇员姓名和工种 SQL> select ename,job 2 From emp 3 where job IN (‘Clerk’,’Analyst’); 查找以“S”开头雇员姓名和所在部门 SQL> select ename,deptno 2 From emp 3 where ename like ‘S%’; 按工资升序排列20号部门雇员 SQL> select ename,sal,deptno 2 From emp 3 where deptno=20 4 order by sal asc ; 查全部部门中工资大于2800美元雇员 SQL> select ename,sal from Account where sal > 2800 union select ename,sal from Research Where sal > 2800 Union Select ename,sal From sales Where sal > 2800 ; 查在全部部门中全部存在工种 SQL> select Job from Account Intersect select Job from Research Intersect Select Job From sales; 查在Account部门中有哪些职业,是Sales部门中所没有 SQL> select Job from Account minus Select Job From sales; 试验二 SQL语言中分组查询和连接查询语句 一、试验目标 1、掌握SQL语言中分组查询命令功效及其使用方法 2、掌握SQL语言中连接查询命令功效及其使用方法 二、试验环境 1、硬件设备:计算机局域网,服务器1台,用户机100台 2、软件系统:Windows Server 网络操作系统,Windows /XP用户机操作系统; Oracle9i服务端数据库系统,用户端工具。 三、试验内容 1、分组查询命令使用 (1) 不带条件分组查询:每组只返回一条统计。 计算每个部门工资总和 SQL> select deptno,sum(sal) 2 From emp 3 Group by deptno ; 查每部门每个工种雇员数。 SQL> select deptno, job,count(*) 2 From emp 3 Group by deptno,job; (2) 带条件分组查询 部门工资总和超出$9000部门,并按工资总和升序排列。 SQL> select deptno,sum(sal) 2 From emp 3 Group by deptno 4 Having sum(sal) > 9000 5 Order by sum(sal) ; 2、连接查询命令使用 (1) 无条件连接 SQL> Select Dept. Deptno,Dname,Empno,Ename,Sal 2 From Dept,Emp; (2) 等值连接 :参与连接表在公共列上有相同值 。 查看工资高于¥3000雇员及所在部门情况 。 SQL>Select ename,sal,emp.deptno,loc,dname 2 From emp,dept 3 Where Emp.deptno=Dept.deptno and sal>3000 ; (3) 自连接 查询每个雇员经理名字。 SQL> select worker.ename,worker.empno,manager.ename manager,manager.empno mgr From emp worker,emp manager Where worker. mgr=manager. empno; (4) 外连接:可避免连接时丢失信息 SQL> Select ename,dept.deptno,loc From emp,dept Where emp.deptno = dept.deptno; SQL> Select ename,dept.deptno,loc From emp,dept Where emp.deptno(+) = dept.deptno; SQL> Select ename,dept.deptno,loc From emp,dept Where dept.deptno= emp.deptno (+); 试验三 SQL语言中子查询及函数使用 一、试验目标 1、掌握SQL语言中子查询命令功效及其使用方法 2、掌握子查询命令中函数使用方法 二、试验环境 1、硬件设备:计算机局域网,服务器1台,用户机100台 2、软件系统:Windows Server 网络操作系统,Windows /XP用户机操作系统; Oracle9i服务端数据库系统,用户端工具。 三、试验内容 1、子查询命令使用 (1) 单行值子查询:子查询返回一条纪录 查询工资高于7698号雇员,而且工种和她相同雇员情况。 SQL> select ename,sal,job,empno From emp Where sal> ( Select sal From emp Where empno=7698 ) and job=( Select job From emp Where mpno=7698); 查询工资高于或等于20号部门工资额最高雇员情况 。 SQL> Select ename,sal ,deptno From emp Where sal>=( Select max(sal) From emp Where deptno=20 ); (2) 多行值子查询:子查询返回一组纪录 查工资在¥到¥2900之间雇员所在部门雇员。 SQL> Select ename,sal ,job,deptno From emp Where deptno IN ( Select deptno From emp Where sal between and 2900); 查工资在¥到¥2900之间雇员所在部门雇员。 SQL> Select ename,sal ,job,deptno From emp Where deptno= ANY ( Select deptno From emp Where sal between and 2900) Order by sal desc ; (3) 多列值子查询 查询工资、奖金和20号部门雇员匹配(相同)雇员情况 。 SQL> Select ename,sal, comm, deptno From emp Where ( NVL(comm,0),sal) IN ( Select NVL (comm,0),sal From emp Where deptno=20) ; 2、子查询命令中函数使用 将全部雇员名字用大小写形式显示 。 SQL> Select empno,Upper(ename),Initcap(ename) From emp; 计算全部雇员日工资(设30天为25个工作日) 。 SQL> Select ename,round(sal/25,0),round(sal/25,-1) From emp; 显示目前日期,dual 是系统提供一张空表 。 SQL> Select sysdate From dual ; 显示目前日期。 SQL> Select to_char( sysdate,’yyyy-mm-dd’) From dual ; 分部门统计全部雇员中收入 。 SQL> Select deptno,sum(sal+comm), sum(sal+NVL(comm,0)) From emp Group by deptno; 依据输入值将雇员信息排序:若输入1,则按ename排序;若输入2,则按SAL排序; 缺省时,按ename 排序。 SQL> Select * from emp order by decode ( &ob,1 ,ename,2,sal,ename); 试验四 SQL语言中数据操纵、事务控制和数据定义语句 一、试验目标 1、掌握SQL语言中数据操纵命令功效及其使用方法 2、掌握SQL语言中事务控制命令功效及其使用方法 3、掌握SQL语言中数据定义命令功效及其使用方法 二、试验环境 1、硬件设备:计算机局域网,服务器1台,用户机100台 2、软件系统:Windows Server 网络操作系统,Windows /XP用户机操作系统; Oracle9i服务端数据库系统,用户端工具。 三、试验内容 1、数据操纵命令使用 (1) 数据插入 向Dept 表插入一行数据(插入全部列时可省略列名) 。 SQL>insert into dept Values (60,‘Computer’,‘Beijing’); 向dept表中一次插入多个纪录(全部字段可用*替换) 。 SQL> insert into dept (deptno,dname,loc) Values ( &deptno,&dname,&loc); 将dept表中全部统计插入到空表department中。 SQL> insert into department select * from dept; 向Emp表中插入一条和Smith 内容相同统计,但姓名改为Richard,雇员号改为9999。 SQL> insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) select 9999,‘Richard’,job,mgr,hiredate,sal,comm,deptno from emp where ename=‘Smith’; (2) 数据修改 将 Martin 提升为经理,工资加¥1000 。 SQL> update emp Set job = ‘Manager’,sal=sal+1000 Where ename= ‘Martin’; 将30号部门全部雇职员资和奖金,变为20号部门雇员最高工资和奖金。 SQL> update emp Set (sal,comm)=( Select Max(sal),max(NVL(comm,0)) From emp Where deptno =20) Where deptno=30; (3) 数据删除 将 Martin从企业删除 。 SQL> delete from emp Where ename= ‘Martin’; 2、事务控制命令使用 (1) 事务提交命令Commit SQL> commit; (2) 事务回退命令Rollback SQL> Rollback ; 3、数据定义命令使用 (1) 表操作 手工创建表dept结构。 SQL> Create table dept ( deptno number(2) not null, dname char(14), loc char(13)); 经过复制创建表deptpartment结构,其结构和dept相同。 SQL> Create table deptpartment as select * from dept where 1=2; 将dept 表中Dname 列宽度加大到20个字符。 SQL> Alter table dept modify dname char (20) ; 为表dept增加一列All_emp 用来存放部门人数 。 SQL> Alter table dept add all_emp number(3); 删除dept表。 SQL> drop table dept; (2) 视图操作 为20号部门雇员创建一个视图,包含姓名,工资,部门号 。 SQL> Create view emp_view(name ,salary ,no) As Select ename ,sal ,deptno From emp where deptno=20 ; (3) 索引操作 为emp表建立empno列上唯一索引。 SQL> create unique index empno_index on emp(empno); (4) 同义词操作 为gx1用户dept表建立同义词New_dept 。 SQL> create synonym new_dept for gx1.dept; (5) 序列生成器操作 创建一个序列生成器deptno_seq,起始值为50,间隔为10 。 SQL> create sequence deptno_seq Start with 50 increment by 10; 列出deptno_seq下次值(第一次使用时为50 ) SQL> select deptno_seq.nextval NEXT_VAL From dual; (6) 数据库链操作 创建一个数据库链Link_xsdb,用来连接远程销售数据库xsdb,其用户名为scott,口令为tiger。 SQL> create Database Link Link_xsdb connect to scott identified by tiger Using ‘xsdb’; 试验五 SQL/PL块中SQL命令使用 一、试验目标 1、了解SQL/PL块基础结构和功效 2、掌握SQL/PL块中多种SQL命令使用方法 二、试验环境 1、硬件设备:计算机局域网,服务器1台,用户机100台 2、软件系统:Windows Server 网络操作系统,Windows /XP用户机操作系统; Oracle9i服务端数据库系统,用户端工具。 三、试验内容 1、SQL/PL块中查询命令使用 将7788号雇员工资和奖金作为Smith工资和奖金。 SQL> DECLARE v_empno emp.empno%TYPE:=7788; v_ename emp.ename%TYPE:=‘Smith’; v_sal emp.sal%TYPE; v_comm m%TYPE; BEGIN SELECT sal,comm INTO v_sal,v_comm FROM EMP WHERE empno=v_empno; update emp set sal=v_sal,comm=v_comm where ename= v_ename ; commit; END; 查询SMITH情况 。 SQL> DECLARE emp_rec EMP%ROWTYPE; v_ename EMP.ename%TYPE:='SMITH'; BEGIN SELECT * INTO emp_rec FROM EMP WHERE ENAME=v_ename; ------------------ END; 2、SQL/PL块中数据操纵命令使用 向EMP表插入一新雇员 。 SQL> DECLARE v_deptno dept.deptno%TYPE not null:=50; v_dname dept.dname%TYPE:=‘Computer’; v_loc dept.loc%TYPE:=‘Beijing’; BEGIN insert into dept(deptno,dname,loc) values(v_deptno,v_dname,v_loc); commit work; END; 修改7788号雇员工资 。 SQL> DECLARE v_empno emp.empno%TYPE:=7788; v_addsal emp.sal%TYPE; BEGIN v_addsal:=1000; UPDATE EMP SET sal=sal+v_addsal WHERE empno=v_empno; COMMIT; END; 从EMP表中删除7788号雇员 。 SQL> DECLARE BEGIN DELETE FROM EMP WHERE empno=7788; COMMIT; END; 试验六 SQL/PL块中步骤控制语句、游标、例外处理 一、试验目标 1、掌握SQL/PL块中步骤控制语句使用方法 2、掌握SQL/PL块中游标使用方法 3、掌握SQL/PL块中例外处理使用方法 二、试验环境 1、硬件设备:计算机局域网,服务器1台,用户机100台 2、软件系统:Windows Server 网络操作系统,Windows /XP用户机操作系统; Oracle9i服务端数据库系统,用户端工具。 三、试验内容 1、SQL/PL块中步骤控制语句使用 (1) 条件控制语句使用 将EMP表中名为SMITH雇员工资进行修改,若原工资大于$,则加$500,不然加$1000 。 SQL>DECLARE v_ename emp.ename%TYPE:='SMITH'; v_addsal emp.sal%TYPE; v_sal emp.sal%TYPE; BEGIN SELECT sal INTO v_sal FROM EMP WHERE ENAME=v_ename; IF v_sal>20OO THEN v_addsal:=500; ELSE v_addsal:=1000; END IF; UPDATE EMP SET sall=sal+v_addsal WHERE ENAME=v_ename; commit; END; (2) 循环控制语句使用 给10号部门增加新雇员,只确定雇员号,其它信息忽略 。 SQL>DECLARE v_empno emp.empno%TYPE:=8000; BEGIN LOOP INSERT INTO emp(deptno,empno) VALUES( 10,v_empno); v_empno:=v_empno+l00; EXIT WHEN v_empno>=9000; END LOOP; END; (3) GOTO控制语句使用 给10号部门增加新雇员,只确定雇员号,其它信息忽略 。 SQL>DECLRE v_empno emp.empno%TYPE:=8000; BEGIN 《lab1》 INSERT INTO emp(deptno,empno) VALUES(l0,v_empno); v_empno:=v_empno+100; IF v_empno<=9000 THEN GOTO lab1; END IF; END; 2、SQL/PL块中游标使用 取出10号部门雇员姓名和工资 SQL>DECLARE v_deptno emp.deptno%TYPE; v_ename emp.ename%TYPE; v_sal emp.sal%TYPE; CURSOR C1 IS SELECT ename,sal FROM EMP WHERE DEPTNO=v_deptno; BEGIN v_deptno:=10; OPEN Cl; FETCH C1 INTO v_ename,v_sal; CLOSE C1 ; END; 查询10号部门全部雇员姓名、工资,并插入到一临时表TMP中 。 SQL>DECLARE v_deptno emp.deptno%TYPE:=10; CURSOR C1 IS SELECT ename,sal FROM EMP WHERE deptno=v_deptno; emp_ec C1%ROWTYPE; BEGIN FOR emp_rec IN C1 LOOP
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服