oracle湘潭大学数据库数据查询实验报告
oracle数据库实验报告

oracle数据库实验报告《Oracle数据库实验报告》在当今信息化时代,数据库管理系统扮演着至关重要的角色。
Oracle数据库作为全球领先的企业级数据库管理系统,在各行各业都有着广泛的应用。
本次实验旨在通过对Oracle数据库的实验操作,深入了解其基本功能和特点,并探讨其在实际应用中的优势和局限性。
实验一:数据库的创建与连接在实验中,我们首先学习了如何使用SQL命令创建一个新的数据库,并通过用户名和密码连接到该数据库。
通过这一步骤,我们了解了Oracle数据库的基本操作流程,包括数据库的创建、用户的授权和连接等。
实验二:数据表的创建与管理在本次实验中,我们学习了如何使用SQL命令创建数据表,并进行数据的插入、查询、更新和删除操作。
通过这些操作,我们深入了解了Oracle数据库的数据管理功能,包括数据表的设计和维护等。
实验三:索引的创建与优化索引是数据库中非常重要的组成部分,能够提高数据的检索效率。
在本次实验中,我们学习了如何使用SQL命令创建索引,并通过优化查询语句来提高数据库的性能。
这些操作让我们更加深入地了解了Oracle数据库的优化功能,以及如何通过索引来提高数据库的性能。
实验四:备份与恢复数据库的备份与恢复是数据库管理中至关重要的一环。
在本次实验中,我们学习了如何使用Oracle数据库提供的工具进行数据库的备份和恢复操作。
这些操作让我们了解了数据库的灾难恢复功能,以及如何保障数据的安全性。
通过本次实验,我们深入了解了Oracle数据库的基本操作和功能,包括数据库的创建与连接、数据表的管理、索引的优化以及备份与恢复等。
同时,我们也发现了Oracle数据库在实际应用中的优势,如稳定性、安全性和性能优化等方面。
然而,我们也意识到Oracle数据库在一些特定场景下存在一定的局限性,如高昂的成本、复杂的配置和维护等。
总的来说,本次实验让我们更加深入地了解了Oracle数据库的特点和功能,对我们今后的数据库管理工作有着重要的指导意义。
湘潭大学数据库实验0(sqlplus)

CLEAR BUFFER
CL BUFF 从 SQL 缓冲区中删除所有行
LIST
L
显示 SQL 缓冲区的所有行
LIST n
L
显示 SQL 缓冲区中的一行到 n 行
LIST m n
L
SQL 缓冲区中的从第 m 行显示到第 n 行
RUN
R
显示并运行在缓冲区中的当前 SQL 命令
/
运行在缓冲区中的当前 SQL 命令
示例 A20 99999 09999 $9999 L9999 9999.99 9,999
8) 将显示的内容输出到指定文件 将屏幕上的所有内容都同时输出到该文件中,包括你输入的 sql 语句。 只有关闭 spool 输出,才会在
输出文件中看到输出的内容。 执行以下命令: SQL>spool d:\out.txt --将显示的内容输出到指定文件d:\out.txt SQL>select * from emp; SQL> COL sal FORMAT $999,999 SQL>select * from dept; SQL>spool off
示例:
图 1-3 设置 linesize=100
图 1-4 设置 pagesize=30
6) 查看系统变量值 SQL> show all SQL> show user
--查看所有 68 个系统变量值 --显示当前连接用户
7)格式化列的显示 可以指定字符列显示的宽度,可以指定数值列显示的格式。
元素 描述
SQL> set pagesize 20 --设置每页显示多少行,默认 14。 如果设为 0,则所有的输出内容为一页
并且不显示列标题。
SQL> set autocommit on --设置是否自动提交,默认为 OFF。
数据库查询的实验报告

数据库查询的实验报告数据库查询的实验报告引言:数据库查询是一项重要的技术,它可以帮助我们从庞大的数据集中提取所需的信息。
本实验旨在探索数据库查询的原理和实践,通过实际操作和分析,深入了解数据库查询的过程和技巧。
实验目的:1. 理解数据库查询的基本概念和原理;2. 掌握使用SQL语句进行数据库查询的方法;3. 分析不同查询语句的执行效率和优化策略。
实验步骤:1. 数据库准备:选择一个合适的数据库系统,并创建一个包含适当表结构和数据的数据库。
2. 查询语句编写:根据实际需求,编写不同类型的查询语句,包括基本查询、条件查询、排序查询、聚合查询等。
3. 查询语句执行:使用数据库管理系统提供的查询工具,执行编写好的查询语句,并观察查询结果。
4. 查询结果分析:根据查询结果,分析查询语句的执行效率和查询结果的准确性。
5. 优化策略实施:对于执行效率较低的查询语句,尝试优化策略,如索引的使用、查询语句的重写等。
6. 优化效果评估:比较优化前后查询语句的执行效率,并分析优化策略的有效性。
实验结果与讨论:通过实验,我们发现数据库查询的过程中,查询语句的编写和优化对查询效率有重要影响。
以下是我们的实验结果和讨论。
1. 基本查询:基本查询是最简单的查询方式,通过SELECT语句从数据库中选择所需的字段。
我们发现,基本查询的执行效率较高,查询结果准确。
然而,在处理大量数据时,查询时间可能会增加。
为了提高效率,我们可以使用LIMIT子句限制返回的记录数。
2. 条件查询:条件查询是根据特定条件筛选数据的查询方式。
我们使用WHERE子句来指定查询条件,并发现查询结果的准确性和效率与查询条件的选择有关。
使用索引字段作为查询条件可以大大提高查询效率。
3. 排序查询:排序查询是根据指定字段的顺序对查询结果进行排序的方式。
我们使用ORDER BY子句来指定排序字段,并观察到排序查询的执行效率较高。
然而,对于大规模数据集,排序操作可能会导致性能下降。
《Oracle数据库》实验报告

实验二Oracle数据库开发环境下PL/SQL编程(2学时)【实验目的】(1)掌握PL/SQL 的基本使用方法。
(2)在SQL*PLUS环境下运行PL/SQL的简单程序。
(3)应用PL/SQL 解决实际问题【实验内容与步骤】一、实验内容:1、用PL/SQL实现:输入eno的值,显示emp表中对应记录的内容。
2、用PL/SQL完成:读入三个数,计算并输出它们的平均值及三个数的乘积。
3、对职工表emp中的雇员SCOTT提高奖金,若工种为MANAGER,则奖金提高其原来的20%;若工种为SALESMAN,则奖金提高其原来的15%;若工种为ANALYST,则奖金提高其原来的10%,其它都按原来的7%提高。
4、用PL/SQL块实现下列操作公司为每个职工增加奖金:若职工属于30号部门,则增加$150;若职工属于20号部门,则增加$250;若职工属于10号部门,则增加$350。
(提示:游标请自行阅读相关内容)DECLAREaddcomm m%type;CURSOR emp_cursor IS select deptno from emp;BEGINFOR emprec IN emp_cursor LOOPIF emprec.deptno=30 THEN addcomm:=150;ELSIF emprec.deptno=20 THEN addcomm:=250;ELSIF emprec.deptno=10 THEN addcomm:=350;END IF;Update empset comm=comm+ addcomm where deptno= emprec.deptno;END LOOP;COMMIT WORK;END;实验三PL/SQL触发器和存储过程(2学时)【实验目的】(1)了解触发器的类型。
(2)掌握PL/SQL触发器的使用方法。
(3)了解存储过程的使用方法。
(4)掌握存储过程的使用方法。
【实验内容】实验内容:1、编写一个数据库触发器,当任何时候某个部门从dept表中删除时,该触发器将从emp 表中删除该部门的所有雇员。
湘潭大学数据库实验1

实验一 数据模型设计与实现
撰写人:郭云飞
湘潭大学 信息工程学院 二○一五年三月
实验一 数据模型设计与实现
一.上机目的
1.了解并掌握数据模型的设计。 2.了解并掌握 Oracle 中的用 Create 命令定义表的方法,以及表的完整性定义。 3.了解并掌握 Oracle 中的用 Alter 命令和 Drop 命令对表的修改和删除。
其类型为 char,长度为 1。取值 0,1,2,3,默认值为 0(在校学习)。 每一个开课在选课前都有人数限制,选课后有选课人数统计。在 section 中将属性用 rs 表示。 将 takes 中 grade 由等级制改成百分制。 课程有公共基础课(1,2)与专业课,专业课有必修(3)与选修(4)。课程在第几学期开设都有规定。在
如:给 EMP1 增加一个属性 ALTER TABLE EMP1 ADD (SPOUSES_NAME CHAR(10));
MODIFY 关键字可以用来修改已存在的数据表定义。 如:把 EMP 中 ENAME 长度改为 25 个字符 ALTER TABLE EMP1 MODIFY (ENAM CHAR(25));
3. CREATE TABLE 命令 1)、CREATE TABLE table_name( column_name type(size), column_name type(size), …);
例如: CREATE TABLE student(
id VARCHAR2(10), name VARCHAR2(12), age NUMBER(2));
DROP 关键字可以用来删除已存在数据表的约束。 如:把 EMP 中主键删除 ALTER TABLE EMP1 DROP PRIMARY KEY;
Oracle 数据库实验报告

Oracle 数据库实验报告
一、实验目的
1、了解在Windows下安装Oracle 11g需要满足的软、硬件要求。
2、熟悉Oracle 11g在Windows下的安装步骤。
3、熟练掌握Oracle数据库配置工具及网络配置工具。
4、熟悉PL/SQL Developer环境,熟练掌握其操作方法。
5、掌握PL/SQL Developer环境下表的定义、数据的操作及表的导入/导出。
二、实验内容及过程
用SQL语言创建student,course,sc表,如下图:
表格如下图所示:
三.录入实验数据
四.修改表中的逻辑结构
(1)在Course表中添加课程所在学院列,列名为Dept,类型为varchar2(20),自己为Dept属性列添加数据。
(2)在Sudent表中为sex属性列添加取值只能为“男”或“女”的约束。
五.数据删除操作
(1)删除Sudent表中的某一行数据,看能否删除,分析出现的错误信息,找出原因并写入实验报告。
(2)删除SC表中的某一行数据,看能否删除,想想为什么可以删除,在实验
报告中分析原因。
在sc表中可以删除,因为在sc表中sno是外键,删除不会对主键产生影响。
六.创建的三张表通过PL/SQL Developer提供的导出表功能将其导出。
七.实验总结
实验,了解了oracle11g在windows条件下的安装步骤,掌握了 oracle数据库配置工具及网络配置工具,掌握PL/SQL Developer环境下表的定义、数据的操作及表的导入/导出。
并了解了对表的修改及删除等操作,最后将创建的表导出。
湘潭大学数据库实验1

《数据库原理》实验教学指导书实验一数据模型设计与实现撰写人:郭云飞湘潭大学信息工程学院二○一六年四月实验一数据模型设计与实现一.上机目的1.了解并掌握数据模型的设计。
2.了解并掌握Oracle中的用Create命令定义表的方法,以及表的完整性定义。
3.了解并掌握Oracle中的用Alter命令和Drop命令对表的修改和删除。
二.预备知识1.E-R图图例图例一(教材第5版)矩形,表示实体集菱形,表示联系集线段椭圆,表示属性下划线标识主键属性图例二(教材第6版)矩形,表示实体集菱形,表示联系集线段属性在实体矩形内列出下划线标识主键属性2.Oracle数据类型3.CREATE TABLE命令1)CREATE TABLE table_name( column_name type(size), column_name type(size), …);2)CREATE TABLE table_name [(column_name,…)] AS SELECT statement;新建一张表,用于保存查询结果。
4.完整性约束Oracle允许用户为表和列定义完整性约束来增强一定的规则。
可分为:表约束和属性约束1)NOT NULL约束NOT NULL约束保证属性值不能为NULL。
没有NOT NULL约束的属性,值可以为NULL。
2)UNIQUE约束指定一个属性或者属性的集合为唯一键。
在表中没有两行具有相同的值。
如果唯一键是基于单条记录的,NULL是允许的。
表约束命令格式:,[CONSTRAINT constraint_name] UNIQUE (Column, Column, …)属性约束命令格式:[CONSTRAINT constraint_name] UNIQUE3)主键约束(Primary Key Constraint)主键约束强制属性和属性集合的唯一性,并且用一个唯一索引来管理它。
每个表中只能用一个主键,这样可以通过主键来标识表中的每条记录。
ORACLE实验报告完结版

实验报告(三)院系:信息学院课程名称:日期:班级姓名专业信息管理与信息系统学号实验室实验名称Oracle的存储管理与分析(1)成绩评定教师签名实验目的索引实验内容一、请写三个表明oracle读取数据所用的三种方式的SQL语句,并列出它们的执行计划二、以emp为原型,创建一个test表,在test的empno列上创建索引三、分析索引,通过index_stats查看的索引高度,结构等信息四、往test表中删除,插入,更新3-5条记录,再分析索引,查看三所列的索引结构的信息五、往test表中插入600条记录,查看索引结构六、删除500条记录,查看索引结构七、对索引进行合并,查看索引变化八、重构索引,查看索引变化一、请写三个表明oracle读取数据所用的三种方式的SQL语句,并列出它们的执行计划1.全表扫描(full table scan--fts)并行查询可能会使得我们的路径选择采用全表扫描2.通过行ID(ROWID)向表中插入对象时隐含会创建改行ROWID,它是数据行所存储的数据块地址,这样可以以最快的速度找到该行数据,是oracle中读取单行数据最快的方法。
3.使用索引(1)使用索引找到相应ROWID(2)通过找到的ROWID从表中读取相应的数据二、以emp为原型,创建一个test表,在test的empno列上创建索引三、分析索引,通过index_stats查看的索引高度,结构等信息四、往test表中删除,插入,更新3-5条记录,再分析索引,查看三所列的索引结构的信息五、往test表中插入600条记录,查看索引结构这样依次插入到表test中600条记录,再查看索引结构有如下变化:六、删除500条记录,查看索引结构;按照这样删除的方法把插入的600记录删除500条后在查看索引结构:七、对索引进行合并,查看索引变化;八、重构索引,查看索引变化;实验报告(三)院系:信息学院课程名称:日期:班级姓名专业信息管理与信息系统学号实验室实验名称oracle存储管理与优化(2)成绩评定教师签名实验目的日志管理实验内容1查看日志组和日志文件的相关信息(v$log,v$logfile)了解日志组状态真正涵义;2切换日志组,跟踪日志切换的时间频率;3往数据里增加两个日志组,再删除其中的一个,结合日志组的状态,分析哪些类型的日志组不能删除4.往日志组里增加日志成员,再删除添加的日志成员,分析哪些类型的日志文件不能删除;5日志文件的恢复:1.nactive日志损坏清洗日志2.active日志损坏,只要数据库是一致性关闭,与1的恢复一样3.current日志损坏不完全恢复1查看日志组和日志文件的相关信息(v$log,v$logfile)了解日志组状态真正涵义;v$log记录了当前数据库的日志组号、日志序列号、每个日志文件的大小、以字节为单位、每个日志组的成员数量,以及日志组的当前状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湘潭大学实验报告课程: Oracle数据库实验题目:数据查询学院:信息工程学院专业:计算机科学与技术2班学号: 2013551417姓名:韩林波指导教师:郭云飞完成日期: 2015.5.25一.上机目的1. 掌握Select语句的运用,2. 掌握一些函数的应用,3. 掌握子查询的运用,4. 掌握连接和分组的应用,5. 掌握视图的创建。
二.实验内容常用oracle语句的学习,与相应视图的创建三.上机作业写出下列应用对应的SQL语句,并将查询语句定义为视图,视图名根据题号依次命名为V1、V2、…,如果一个应用要定义多个视图,则视图名根据题号依次命名为V1_1、V1_2、…。
针对基本表EMP和DEPT完成下列查询1) 检索EMP中所有的记录。
create or replace view v1 as select * from emp;2) 列出工资在1000到2000之间的所有员工的ENAME,DEPTNO,SAL。
create or replace view v2 as select ename,deptno,sal from emp where sal between 1000 and 2000;3) 显示DEPT表中的部门号和部门名称,并按部门名称排序。
create or replace view v3 as select dname,deptno from dept group by DNAME,deptno;4) 显示所有不同的工作类型。
create or replace view v4 as select distinct job from emp;5) 列出部门号在10到20之间的所有员工,并按名字的字母排序。
create or replace view v5 as select ename from emp where deptno between 10 and 20 order by ename;6) 列出部门号是20,工作是“CLERK”(办事员)的员工。
create or replace view v6 as select ename from emp where deptno='20' and job='CLERK';7) 显示名字中包含TH和LL的员工名字。
create or replace view v7 as select ename from emp where ename like'%TH%' or ename like '%LL%';8) 显示所有员工的名字和各项收入总和。
create or replace view v8 as select ename,sal+comm as sal_comm from emp;9) 查询每个部门的平均工资。
create or replace view v9 as select job,avg(sal) as avg_sal from emp group by job;10) 查询出每个部门中工资最高的职工。
create or replace view v10 asselect ename,job,max(sal) as max_sal from emp group by job,ename ;11) 查询出每个部门比本部门平均工资高的职工人数。
Create or replace view v11(deptno,count) as select deptno,count(*) from (select a.deptno,a.ename from emp a,(select avg(sal) c,deptno from emp group by deptno) b where a.deptno=b.deptno and a.sal>b.c) group by deptno;12) 列出至少有一个员工的所有部门。
Create or replace view v12 as select job,count(ename) from emp group by job having count(ename) >0;13) 列出薪金比“SMITH”多的所有员工。
Create or replace view v13 as select ename from emp where sal>(select sal from emp where ename='SMITH');14) 列出所有员工的姓名及其直接上级的姓名。
Create or replace view v14 as select distinct A.ename as work1 ,(select ename from emp where (A.mgr=emp.empno) )as work2 from emp A;15) 列出受雇日期早于其直接上级的所有员工。
Create or replace view v15 as select A.ename from emp A where A.hiredate<(select B.hiredate from emp B where A.mgr=B.empno);16) 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门Create or replace view v16 as select dname,empno,ename,job,mgr, hiredate, comm, deptno,sal,deptno from emp natural right outer join dept ;17) 列出所有“CLERK”(办事员)的姓名及其部门名称。
Create or replace view v17 as select ename,dname from emp natural join dept where JOB='CLERK' ;18) 列出最低薪金大于3500的各种工作。
Create or replace view v17 as select distinct job from emp where sal>3500;19) 列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
Create or replace view view v19 as select ename,dname from emp natural join dept where dname='SALES' ;20) 列出薪金高于公司平均薪金的所有员工。
Create or replace view v20 as select ename from emp where sal>(select avg(sal) from emp );21) 列出与“SCOTT”从事相同工作的所有员工。
Create or replace view v21 as select ename from emp where job=(select job from emp where ename='SCOTT') and ename!='SCOTT';22) 列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。
Create or replace view v22 as select ename,sal from emp where sal in(select sal from emp where deptno=30);23) 列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。
Create or replace view v23 as select ename,sal from emp where sal>(select max(sal) from emp where deptno=30);24) 列出在每个部门工作的员工数量、平均工资。
Create or replace view 24 as select dname,count(ename),avg(sal) from emp natural join dept group by dname;25) 列出所有员工的姓名、部门名称和工资。
Create or replace view v25 as select ename,dname,sal from emp natural join dept;26) 列出所有部门的详细信息和部门人数。
Create or replace view v26 as select dname,count(ename),avg(sal),loc,deptno from emp natural right outer join dept group by dname,loc,deptno ;27) 列出各种工作的最低工资。
Create or replace view v27 as select job,min(sal) from emp group by job;28) 列出各个部门的MANAGER(经理)的最低薪金。
Create or replace view v28 as select dname,min(sal) from emp natural join dept where empno in (select mgr from emp ) group by dname;29) 列出所有员工的年工资,按年薪从低到高排序。
Create or replace view v29 as select ename,sal*12 as year_salary from emp order by year_salary;30) 给出有学生的系的名单。
create or replace view v30(dept_name,id_num) as select dept_name,count(id) from student group by dept_name;31) 给出有学生的系的名单,按升序排列create or replace view v31(dept_name,id_num) as select dept_name,count(id) from student group by dept_name order by count(id);32) 查询考试成绩有不及格的学生的学号。
create or replace view V32 as select distinct id from takes where grade<60;33) 查询选了但还没有登记考试成绩的学生的学号。