当前位置:文档之家› ORACLE数据库技术实验指导书3

ORACLE数据库技术实验指导书3

Oracle数据库设计实验指导书理学院计算机科学技术教研室ORACLE数据库技术实验指导书目录实验一 SQL*PLUS用法及SQL语言中的简单查询语句实验二 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 2000 Server 网络操作系统,Windows 2000/XP客户机操作系统; Oracle10g服务端数据库系统,客户端工具。

三、实验内容1、SQL*PLUS的使用(1) 进入(启动)SQL*PLUS在Windows环境下,双击SQL*PLUS图标或从程序组找SQL*PLUS ,出现登录窗口输入正确的数据库用户名、密码和连接字符串后,若连接数据库成功,则会出现如下提示符:SQL>(2) 退出 SQL*PLUSSQL>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 deptSQL> desc emp(5) 向表中插入记录向部门登记表dept中插入一条记录SQL> insert into deptValues (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.sqlSQL>/b. 用@ 或start命令将指定命令文件调入缓冲区并执行。

SQL>@f:\ora \dept.sql或 SQL>start f:\ora \dept.sql2、简单查询语句(1) 无条件简单查询:查表中所有记录SQL> select Dname, Deptno2 From dept;对查询结果进行计算和统计SQL> select count(*) ALL_EMP, sum(sal) ALL_Sal2 From emp;(2) 有条件简单查询:查表中部分记录查在20号部门工作的雇员姓名和工资SQL> select ename,sal,deptno2 From emp3 where deptno=20;查找工种是职员或分析员的雇员姓名和工种SQL> select ename,job2 From emp3 where job IN (‘Clerk’,’Analyst’);查找以“S”开头的雇员姓名和所在部门SQL> select ename,deptno2 From emp3 where ename like ‘S%’;按工资升序排列20号部门的雇员SQL> select ename,sal,deptno2 From emp3 where deptno=204 order by sal asc ;查所有部门中工资大于2800美元的雇员SQL> select ename,salfrom Accountwhere sal > 2800unionselect ename,salfrom ResearchWhere sal > 2800UnionSelect ename,salFrom salesWhere sal > 2800 ;查在所有部门中都存在的工种SQL> select Jobfrom AccountIntersectselect Jobfrom ResearchIntersectSelect JobFrom sales;查在Account部门中有哪些职业,是Sales部门中所没有的SQL> select Jobfrom AccountminusSelect JobFrom sales;实验二 SQL语言中的数据操纵、事务控制和数据定义语句一、实验目的1、掌握SQL语言中数据操纵命令的功能及其使用方法2、掌握SQL语言中事务控制命令的功能及其使用方法3、掌握SQL语言中数据定义命令的功能及其使用方法二、实验环境1、硬件设备:计算机局域网,服务器1台,客户机100台2、软件系统:Windows 2000 Server 网络操作系统,Windows 2000/XP客户机操作系统;Oracle10g服务端数据库系统,客户端工具。

三、实验内容1、数据操纵命令的使用(1) 数据插入向Dept 表插入一行数据(插入所有列时可省略列名) 。

SQL>insert into deptValues (60,‘Computer’,‘Beijing’);向dept表中一次插入多个纪录(所有字段可用*代替) 。

SQL> insert into dept (deptno,dname,loc)Values ( &deptno,&dname,&loc);将dept表中所有记录插入到空表department中。

SQL> insert into departmentselect *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,deptnofrom empwhere ename=‘Smith’;(2) 数据修改将 Martin 提升为经理,工资加¥1000 。

SQL> update empSet job = ‘Manager’,sal=sal+1000Where ename= ‘Martin’;将30号部门所有雇员工资和奖金,变为20号部门雇员的最高工资和奖金。

SQL> update empSet (sal,comm)=( Select Max(sal),max(NVL(comm,0))From empWhere deptno =20)Where deptno=30;(3) 数据删除将 Martin从公司删除。

SQL> delete from empWhere ename= ‘Martin’;2、事务控制命令的使用(1) 事务提交命令CommitSQL> commit;(2) 事务回退命令RollbackSQL> Rollback ;3、数据定义命令的使用(1) 表操作手工创建表dept结构。

SQL> Create table dept( deptno number(2) not null,dname char(14),loc char(13));通过复制创建表deptpartment结构,其结构与dept相同。

SQL> Create table deptpartmentas select *from deptwhere 1=2;将dept 表中Dname 列宽度加大到20个字符。

SQL> Alter table deptmodify dname char (20) ;为表dept增加一列All_emp 用来存放部门人数。

SQL> Alter table deptadd all_emp number(3);删除dept表。

SQL> drop table dept;(2) 视图操作为20号部门的雇员创建一个视图,包括姓名,工资,部门号。

问题:如何用中文号表示呢!SQL> Create view emp_view(name ,salary ,no)As Select ename ,sal ,deptnoFrom empwhere deptno=20 ;实验三 SQL语言中的分组查询和连接查询语句,SQL语言中的子查询及函数的使用一、实验目的1、掌握SQL语言中分组查询命令的功能及其使用方法2、掌握SQL语言中连接查询命令的功能及其使用方法3、掌握SQL语言中子查询命令的功能及其使用方法4、掌握子查询命令中的函数的使用方法二、实验环境1、硬件设备:计算机局域网,服务器1台,客户机100台2、软件系统:Windows 2000 Server 网络操作系统,Windows 2000/XP客户机操作系统; Oracle10g服务端数据库系统,客户端工具。

三、实验内容1、分组查询命令的使用(1) 不带条件的分组查询:每组只返回一条记录。

计算每个部门的工资总和SQL> select deptno,sum(sal)2 From emp3 Group by deptno ;查每部门每个工种的雇员数。

SQL> select deptno, job,count(*)2 From emp3 Group by deptno,job;(2) 带条件的分组查询部门工资总和超过$9000的部门,并按工资总和升序排列。

SQL> select deptno,sum(sal)2 From emp3 Group by deptno4 Having sum(sal) > 90005 Order by sum(sal) ;2、连接查询命令的使用(1) 无条件连接SQL> Select Dept. Deptno,Dname,Empno,Ename,Sal2 From Dept,Emp;(2) 等值连接:参与连接的表在公共列上有相同值。

相关主题