实验五oracle综合性实验答案
oracle实验报告及答案 用户、权限安全
实验三用户、权限安全班级:座号:姓名:时间:一、实验目的1.创建用户2.创建角色3.使用GRANT和REVOKE语句授予和撤销对象权限二、实验设备一台PC机,widows操作系统,oracle 10g三、实验内容1. 使用sys身份连接到数据库。
2.创建一个用户TEMPUSER,其口令为oracle,默认表空间为USERS,对表空间没有配额限制,临时表空间为TEMP。
3. 创建一个用户配置文件TEMPPROFILE,包含的资源及口令限制如下:该用户最多可以建立3个并发的会话连接用户执行语句使用的CPU最长时间为20分钟空闲时间超过15分钟后,断开与用户的连接限制用户每次调用SQL语句时,能够读取的数据库块数200限制用户在登录到Oracle数据库时允许失败的次数24. 为用户TEMPUSER指定配置文件5. 向用户授予连接数据库系统权限。
6.向用户授予对对象HR.JOBS的SELECT权限,并以用户TEMPUSER连接到数据库,以查询jobs表。
7.以sys身份登录,撤销向用户TEMPUSER授予的系统权限,向用户授予CONNECT,resource角色。
8. 以tempuser身份登录,在exer_tabspace表空间创建表customer(x number)。
四、实验步骤1.使用sys身份连接到数据库。
Connect sys/oracle as sysdba;(查看表空间信息SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;)2. 创建一个用户TEMPUSERCreate user tempuser identified by oracle default tablespace USERS temporary tablespace temp quota unlimited on users;3.创建一个用户配置文件TEMPPROFILE4.为用户TEMPUSER指定配置文件Alter user tempuser profile tempprfile;5向用户授予连接数据库系统权限6、ALTER SYSTEM SET RESOURCE_LIMIT=TRUE SCOPE=BOTH;(启用资源限制,参数立即生效)(再开第二个窗口,第三个窗口,第四个窗口都用TEMPUSER/ORACLE登陆,看看会发生什么情况)7. 向用户授予对对象“HR.JOBS”的SELECT权限,并以用户TEMPUSER连接到数据库,以查询“JOBS”表。
Oracle实验报告及答案 数据库管理与工具使用
实验一 Oracle数据库管理与工具使用班级:座号:姓名:时间:一、【实验目的】1.掌握Oracle的启动、关闭、连接和管理初始化参数2.熟悉oem和SQL*Plus的使用3.了解用户和模式的概念,并查询hr模式表的数据二、【实验设备】一台PC机,widows xp操作系统,oracle 10g或11g三、【实验内容】1.启动和关闭window操作系统的Oracle服务2.通过三种方式访问数据库3.使用SQL*Plus启动和关闭Oracle数据库4.使用em和SQL*Plus解锁hr模式,并使用SQL*Plus编写查询该模式中表的SQL命令5.使用em和SQL*Plus显示和设置初始化参数文件四、【实验步骤】1 启动服务(开始,设置,控制面板,管理工具,服务)2通过三种方式连接数据库:方法一:在运行窗口中输入CMD命令,然后在窗口中输入SQLPlus命令以启动SQL*Plus工具方法二:开始/程序/Oracle - OraDb10g_home1/SQL Plus打开登录界面,然后输入相应的用户名称和登录密码。
方法三:打开IE,输入本机IP:5560/isqlplus 或者localhost:5560/isqlplus,启动Oracle Enterprise Manager(OEM),以图形话方式对数据库进行操作。
Select * from hr.employees;3 使用SQL*Plus用sys用户关闭Oracle数据库4通过三种方式启动数据库:1)startup nomount;2) alter database mount;3)ALTER DATABASE OPEN;5确认数据库状态:Select instance_name,status from v$instance;6 解锁hr用户7使用hr用户连接sqlplus,Select * from employees;8用SQL*Plus显示所有初始化参数SHOW PARAMETER;五、【实验小结】通过本次实验学会通过oem和SQL*Plus与数据库建立连接,启动、关闭数据库。
Oracle综合实验
Oracle综合实验一、实验目的1.掌握oracle数据库应用程序设计与开发的方法;2.通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步熟练掌握查询修改等数据库基本操作的相关内容二、实验内容1.人事管理系统功能要求:人事管理系统应能实现用户的多级管理,并包含数据录入、数据校验、数据修改、数据浏览和各种模糊查询,可以选择增加打印功能;同时要提供数据的备份与恢复功能,以防数据遭到破坏。
2.学校教材管理系统功能要求:本系统能对学校所有班级的教材进行征订,对教材的入库、出库进行管理,能进行各种条件的查询,还应具有教材库预警机制(教材库存不够用或教材征订过剩,都能给予提示)。
3.高校学生成绩管理系统功能要求:学生成绩管理使教学管理的一个重要环节,本系统能够进行学生成绩登记、成绩的更正、成绩的查询、成绩的汇总及排序,对已毕业学生成绩能存入历史库中,对于保存一定年限的成绩能进行清除、要求有良好的界面,具有良好实用性。
4.图书管理功能要求:本系统能对图书入库、出库的管理,并安装国家标准对各种图书进行分类。
用户可以通过终端查询到在库的图书,并且如果图书已借出,可以查询到是谁借出的,在什么时候借的。
5.客房管理系统功能要求:本系统能对一个宾馆的客房进行管理,用户可以预约、登记、注销客房。
对于已预约的客房,不可以再预约或登记,一旦客户入住某客房,可以在此系统中查询到该客户的信息。
6.酒店餐饮管理功能要求:用户可以通过本系统点餐,点出来的菜单可以自动在厨房打印出来,一旦菜做好以后,可以通过任何一个终端,查询出该菜是哪一桌客户的。
最后,客户可以通过终端查询出自己用餐的详单并结帐。
7.工资管理系统功能要求:财务可以通过该系统分项录入员工的工资,并且可以把工资与出勤情况一致起来,只要给出出勤表,系统可以自动生成员工的工资。
员工可以在客户端根据自己的用户名和密码查询到自己的工资。
8.零件交易中心管理系统功能要求:主要提供顾客和供应商之间完成零件交易的功能,其中包括供应商信息、顾客信息以及零件信息、供应商信息包括供应商号、供应商名、地址、电话、简介;顾客信息包括顾客号、顾客名、地址、电话;零件信息包括零件号、零件名、重量、颜色、简介等。
ORACLE综合训练参考答案
《Oracle网络数据库》综合训练班级:姓名:学号:1创建教工表(JGB),其结构如下:CREATE TABLE JGB (JGH VARCHAR2(6),XYH VARCHAR2(4),XM VARCHAR2(10),XB VARCHAR2(2),ZC VARCHAR2(6) GZ NUMBER(6,0));2.修改JGB的结构,为其增加CSRQ字段,数据类型为日期型。
ALTER TABLE JGB ADD CSRQ DATE;3.为JGB插入以下记录。
INSERT INTO JGB VALUES(’100001’,’1001’,’张三’,’男’,’to_date(‘1968-10-20’,’yyyy-mm-dd’)’,’副教授’,5000);4.将JGB中姓名为“张三”的教工的工资增加100元。
UPDATE JGB SET GZ=GZ+100 WHERE XM=‘张三’;5.删除JGB中教工号为“100200”的记录。
DELETE FROM JGB WHERE JGH=‘100200’;6.统计JGB表中各学院的平均工资并按降序排列。
SELECT XYH,AVG(GZ) AS 平均工资 FROM JGB GROUP BY XYH ORDER BY 2 DESC;7.从JGB表中检索所有教工的姓名、性别和年龄。
SELECT XM,XB,to_char(sysdate, 'yyyy') - to_char(CSRQ, 'yyyy') as 年龄from JGB ;8.从JGB表中查询所有姓“王”的教工的全部信息。
SELECT * FROM JGB WHERE XM LIKE '王%';9.在JGB表中查询工资在5000~6000之间的教工的教工号、姓名、性别和工资。
SELECT JGH,XM,XB, GZ FROM JGB WHERE GZ BETWEEN 5000 AND 6000;10. 查询JGB中教工人数多于20的学院的学院号,教工人数,最高工资,最低工资,平均工资,并按平均工资降序排列。
oracle综合性实验指导
湖南科技学院综合性实验指导书实验名称:PL/SQL编程实验项目性质:综合性所涉及课程:Oracle数据库计划学时:4一、实验目的(1)熟练掌握PL/SQL程序设计的基本知识。
(2)熟练掌握PL/SQL中控制结构的使用。
具体包括选择结构语句(IF语句和CASE语句),循环结构(四种循环结构)。
(3)熟练使用PL/SQL中系统函数。
(4)掌握PL/SQL中异常处理语句的使用(5)掌握PL/SQL中SELECT语句和DML语句的综合运用。
二、实验内容及步骤1.创建用户,指定密码、表空间。
用户名命名以本人姓名的缩写+‘_’+学号最后两位。
2.为该用户授予sysdba、connect、resource权限。
3.以本人的用户身份登录。
4.练习选择结构语句的使用方法。
1、条件语句IF 语法:IF <条件表达式> THEN<执行语句> …… <执行语句n>[ELSIF <条件表达式> THEN<执行语句> …… <执行语句n>……ELSE<执行语句>]END IF;2、分支语句CASE 语法:CASE <变量>WHEN <表达式1> THEN 值1WHEN <表达式2> THEN 值2……WHEN <表达式n> THEN 值nELSE 值n + 1END;例1:声明一个整型变量Num,使用IF语句判断Num变量是正数、负数或0。
SET ServerOutput ON;DECLARENum INTEGER := -11;BEGINIF Num < 0 THENdbms_output.put_line('负数');ELSIF Num >0 THENdbms_output.put_line('正数');ELSEdbms_output.put_line('0');END IF;END;例2、使用CASE语句根据给定的整数输出对应的星期值:SET ServerOutput ON;DECLAREvarDAY INTEGER := 3;Result V ARCHAR2(20);BEGINResult := CASE varDA YWHEN 1 THEN '星期一'WHEN 2 THEN '星期二'WHEN 3 THEN '星期三'WHEN 4 THEN '星期四'WHEN 5 THEN '星期五'WHEN 6 THEN '星期六'WHEN 7 THEN '星期七'ELSE '数据越界'END;dbms_output.put_line(Result);END;5.练习循环结构语句的使用方法。
《Oracle技术》实验报告5(答案)1
《Oracle技术》实验报告实验名称PL/SQL编程(选作10题,程序另加附页)姓名学号日期专业班级实验目的(1)了解PL/SQL块的基本结构和分类。
(2)熟练掌握编写PL/SQL块的方法。
(3)了解PL/SQL存储过程、触发器、游标的作用。
(4)熟练掌握编写PL/SQL存储过工程的方法及维护过程。
(5)熟练掌握创建触发器的方法及维护过程。
(6)孰练掌握显式游标和隐式游标的使用。
实验内容(1)编写一个PL/SQL块,输出所有员工的员工名、员工号、工资和部门号。
BEGINFOR v_emp IN (SELECT * FROM EMP) LOOP DBMS_OUTPUT.PUT_LINE(v_emp.ename||’‘||v_emp.empno|| ’‘||v_emp.sal||’‘|| v_emp.deptno);END LOOP;END;/(2)编写一个PL/SQL块,查询名为“SMITH”的员工信息,并输出其员工号、工资、部门号。
如果该员工不存在,则插入一条新记录,员工号为2007,员工名为“SMITH”,工资为1500,部门号为10。
如果存在多个名为“SMITH”的员工,则输出所有名为“SMITH”的员工号、工资和部门号。
成绩DECLAREV_empno emp.empno%type;V_sal emp.sal%type;V_deptno emp.deptno%type;BEGINSELECT empno,sal,deptno INTOV_empno,v_sal,v_deptno FROM emp WHERE ename=’SMITH’;DBMS_OUTPUT.PUT_LINE(v_empno||’’||v_sal||’’||v_dept no);EXCEPTIONWHEN NO_DATA_FOUND THENINSERT INTO EMP(empno, ename,sal,deptno)V ALUES(2007,’SMITH’,1500,10);WHEN TOO_MANY_ROWS THENFOR v_emp IN (SELECT empno,sal,deptno FROM emp WHERE ename=’SMITH’) LOOPDBMS_OUTPUT.PUT_LINE(v_emp.empno||’‘||v_emp.sal|| ’‘||v_emp.deptno);END LOOP;END;/(3)创建一个存储过程,以员工号为参数,输出该员工的工资。
oracle习题答案
oracle习题答案Oracle习题答案Oracle数据库是全球领先的企业级关系型数据库管理系统,被广泛应用于各种企业和组织中。
学习Oracle数据库管理是IT从业人员必备的技能之一,因此掌握Oracle习题答案对于提升自己的技能水平至关重要。
在学习Oracle数据库管理的过程中,经常会遇到各种习题和练习题,通过解答这些习题可以加深对Oracle数据库的理解和掌握。
下面我们就来看一些常见的Oracle习题以及它们的答案。
1. 什么是Oracle数据库?答:Oracle数据库是由美国Oracle公司开发的一款关系型数据库管理系统,它是一种高性能、可靠性强的数据库系统,被广泛应用于企业级应用中。
2. 如何创建一个新的数据库用户?答:可以使用CREATE USER语句来创建一个新的数据库用户,例如:CREATE USER new_user IDENTIFIED BY password;3. 如何查询表中的数据?答:可以使用SELECT语句来查询表中的数据,例如:SELECT * FROM table_name;4. 如何删除数据库中的数据表?答:可以使用DROP TABLE语句来删除数据库中的数据表,例如:DROP TABLE table_name;5. 如何备份Oracle数据库?答:可以使用RMAN工具来备份Oracle数据库,例如:RMAN> BACKUP DATABASE;通过解答这些习题,我们可以加深对Oracle数据库管理的理解和掌握,提升自己的技能水平。
希望以上Oracle习题答案对大家有所帮助,也希望大家在学习Oracle数据库管理的过程中能够不断提升自己的技能,成为一名优秀的数据库管理人员。
oracle课后习题答案
练习62.实训题(2)Create table exer_class(CNO number(2) primary key,CNAME varchar2(20),NUM number(3));Create table exer_student(SNO number(4) primary key,SNAME varchar2(10) unique,SAGE number,SEX char(2),CNO number(2));(3)Alter table exer_student add constraint ck_sage check (sage>0 and sage<=100);(4)Alter table exer_student add constraint ck_stu check(sex='M' or sex='F') modify sex default 'M';(5)Create unique index ind_cname on exer_class(cname);(6)Create view stu_class_view (e_sno,e_sname,e_cno,e_cname) ASselect sno,sname,cno,cnameFrom exer_student;(7)Create sequence exer_student_seqstart with 100000001nocyclenocache;(8)Create table exer_student_range(sno number(4) primary key,sname varchar2(10),sage number,sex char(2),cno number(2))partition by range(sage)(partition part1 values less than(20) tablespace example,partition part2 values less than(30) tablespace orcltbs1,partition part3 values less than(maxvalue) tablespace orcltbs2);(9)Create table exer_student_list(sno number(4) primary key,sname varchar2(10),sage number,sex char(2),cno number(2))partition by list(sex)(partition man values('M') tablespace orcltbs1,partition woman values('F') tablespace orcltbs2);(10)题目修改为“为exer_student_range表的SAGE列上创建本地分区索引。
oracle实验报告及答案 备份与恢复
实验四备份与恢复班级:座号:姓名:时间:一、实验目的1.了解备份的重要性2.对数据库进行物理备份、恢复与逻辑备份、恢复3.使用RMAN对数据库进行备份与恢复二、实验设备一台PC机,widows操作系统,oracle 10g三、实验内容1.本练习将使用EXPORT工具按用户方式对SCHOOL模式中的对象进行逻辑备份,并使用该备份恢复将被用户删除的表。
1)在命令提示符窗口中输入命令,启动EXP工具按用户方式备份SCHOOL模式中的对象。
2)删除表STUDENT中的所有数据库。
3)使用IMPORT工具按用户方式恢复STUDENT表中的数据。
2.本练习将对数据库进行物理备份(冷备份),并恢复被用户误删除的数据。
1)以SYSDBA身份连接数据库。
2)复制Oracle目录中的所有文件。
3)删除user01.dbf(模拟误删除)。
4)关闭数据库,启动数据库。
3.本练习将对数据库进行物理备份(热备份),并恢复被用户误删除的数据。
1)以SYSDBA身份连接数据库。
2)确定数据库运行在归档模式下。
3)切换表空间USER为脱机状态。
4)复制Oracle目录中的USERS01.DBF文件,然后设置表空间USERS为ONLINE状态。
5)删除数据文件users01.dbf,并归档当前的日志信息。
6)关闭数据库,切换数据库到MOUNT状态。
7)复制备份的文件到数据库目录,并使用RECOVER命令执行完全恢复。
8)打开数据库,并验证是否恢复被误删除的数据。
4.本练习将对数据库进行物理备份(热备份),并执行基于时间的不完全恢复,以恢复被用户误删除的数据。
1)以SYSDBA身份连接数据库。
2)确定数据库运行在归档模式下。
3)切换表空间USER为脱机状态。
4)复制Oracle目录中的USERS01.DBF文件,然后设置表空间USERS为ONLINE状态。
5)删除STUDENT表中存储的学生信息,并归档当前的日志信息。
6)关闭数据库,切换数据库到MOUNT状态。
《Oracle数据库应用与实践》课后习题参考答案
《Oracle数据库应用与实践》课后习题参考答案第1章Oracle数据库概述一.选择题1.A2.C3.B4.C5.B第2章Oracle数据库体系结构一、填空题1.数据文件日志文件控制文件2.日志缓冲区LGWR日志文件3.数据4.数据段、索引段、回退段、LOB段和临时段5.数据块6.用户进程后台进程服务器进程用户进程二、选择题C B CD D A D B A A CA三、简答题略。
第3章Oracle数据库常用工具一、填空题1.SQL语句SQL*Plus命令2.EDIT SPOOL3.DESCRIBE4.GET5.CLEAR OFF6.SAVE START7.NUMFORMAT COLUMN二、选择题ACBDA BABCD三、简答题略。
第4章表空间和数据文件管理一、填空题1.表空间数据文件2.数据字典管理本地化管理3.联机(ONLINE)读写(READ WRITE)只读(READ ONLY)和脱机(OFFLINE)4.SYSTEM表空间、SYSAUX表空间、TEMP表空间、UNDOTBS1表空间、USERS表空间、EXAMPLE表空间。
5.ONLINE OFFLINE OFFLINE DROP6.TEMPORARY UNDO BIGFILE二、选择题ACDBC DBC三、简答题略。
第5章Oracle模式对象一、填空题1.字段级约束表约束2.NOT NULL约束UNIQUE约束PRIMARY KEY约束FOREIGN KEY约束3.CREATE TABLE CREATE ANY TABLE4.UNIQUE PRIMARY KEY CHECK5.合并索引重建索引er_updatable_columns7.同义词8.nextval currval二、选择题CCCBA DADBD三、简答题略。
第6章SQL语言基础一.填空题1.*2.WHERE,ORDER BY3.GROUP BY,ORDER BY4.UPDATE,DELETE,TRUNCATE5.CHR,ASCII6.TO_CHAR,字符串转,日期数据,DD-MON-YY二.选择题1BD 2.B3B 4.D 5.C 6.B7.B8.C9.C10.D三.简答题略第7章SELECT高级查询一.填空题1.数据定义语言、数据操纵语言2.单行操作符、多行操作符3.子查询返回的结果4.WHERE,GROUP BY,ORDER BY5.ANY,ALL6.EXISTS,NOT EXISTS7.INNER JOIN,OUTER JOIN,CROSS JOIN8.UNION,MINUS二.选择题1.A2.A3.BD4.D5.D6.C7.A8.B三、简答题略第8章PL/SQL编程基础一.填空题1.EXCEPTION2.:=3.CONSTANT4.打开游标,检索游标5.EXCEPTION6.RAISE7.系统异常和用户自定义异常8.显式游标和隐式游标二.选择题1.ACD2.C3.C4.D5.ABD6.B7.D8.B9.D10.D11.ABC三.简答题略四.编程题1、查找出当前用户模式下,每张表的记录数,以scott用户为例,结果应如下:DEPT (4)EMP (14)BONUS 0SALGRADE (5)其实现的代码是:declaretype tab_names is table of varchar2(20)index by binary_integer;tab_name tab_names;coun number;str varchar2(100);beginselect table_name bulk collect into tab_name from user_tables;for i in tab_name.first..tab_st loopstr:='select count(*)from'||tab_name(i);execute immediate str into coun;dbms_output.put_line(tab_name(i)||'..........'||coun);end loop;end;2、某cc表数据如下:c1c2--------------1西1安1的2天2气3好……转换为1西安的2天气3好要求:不能改变表结构及数据内容,仅在最后通过SELECT显示出这个查询结果代码为:create or replace function x returnvarchar2istype t_array is table of number index by binary_integer;type tarray is table of varchar2(10)index by binary_integer;ta t_array;tar tarray;re varchar2(10);n number;na varchar2(10);beginselect id bulk collect into ta from(select id,name from xx order by id)group by id;for i in st loopdbms_output.put(ta(i)||'');select name bulk collect into tar from xx where id=ta(i);for i in st loopdbms_output.put(tar(i));end loop;dbms_output.put_line('');end loop;return re;end;2、请用一条sql语句查询出scott.emp表中每个部门工资前三位的数据,显示结果如下:DEPTNO SAL1SAL2SAL3---------------------------------------------------------------105000245013002030002975110030285016001500则,该语句为:select deptno,max(sal)sal1,max(decode(t,2,sal))sal2,min(sal)sal3from(select sal,deptno,t from(select empno,ename,sal,row_number()over(partition by deptno order by sal desc)t,deptno from emp)e where e.t<=3)group by deptno3、表nba记录了nba(team VARCHAR2(10),y NUMBER(4))夺冠球队的名称及年份:TEAM Y--------------------------------------------------活塞1990公牛1991公牛1992公牛1993火箭1994火箭1995公牛1996公牛1997公牛1998马刺1999湖人2000湖人2001湖人2002马刺2003活塞2004马刺2005热火2006马刺2007凯尔特人2008湖人2009湖人2010请写出一条SQL语句,查询出在此期间连续获得冠军的有哪些,其连续的年份的起止时间是多少,结果如下:TEAM B E--------------------------------------------------------------公牛19911993火箭19941995公牛19961998湖人20002002湖人20092010select max(nn.team)team,min(nn.y)B,max(nn.y)+1E from(select n2.team,n2.y from(select*from nba)n1join(select*from nba)n2on n1.team=n2.teamwhere n1.y=n2.y+1)nngroup by(nn.y-rownum)order by B第9章存储过程、函数、触发器和包一、填空题1.过程的名称过程的使用的参数过程执行的操作2.CALL命令调用3.REPLACE4.OUT IN OUT5.DROP ANY PROCEDURE6.DML触发器INSTEAD OF(替代)触发器DDL触发器7.FOR EACH ROW8.CREATE PACKAGE BODY二、选择题1.A 2.C 3.B 4.A 5.BC 6.AC7.D8.D第10章Oracle安全性管理一填空题1.CREATE USER2.WITH ADMIN OPTION,WITH GRANT OPTION3.系统权限,对象权限4.角色5.CREATE ANY TABLE6.SET ROLE二选择题1AB2D3D4B5B6A三简答题略第11章数据库备份和恢复一、填空题1.RECOVERY_CATALOG_OWNER2.MOUNT3.FULL4.ARCHIVELOG5.不可以6.MOUNT二、选择题1.ACD2.A3.ABCD4.BCD5.AD6.CD三简答题略第12章系统性能及语句优化一、填空题1.*2.WHERE子句3.EXISTS子句4.复合索引5.MONITORING USAGE6.别名7.大写8.>=二、选择题1.B2.C3.A4.D5.ABCD第13章Oracle数据挖掘技术一、填空题1.数据挖掘隐含的未知的2.API-ODM Java API ODM DBMS_DM PL/SQL API3.Clustering Association Feature Extraction。
ORACLE习题参考答案
第1章案例数据库设计【简答题】1.简要说明数据库设计的基本流程,并结合实例说明数据库设计各阶段的主要任务。
数据库设计的基本流程:按照规范的设计方法,将数据库设计分为六个阶段:(1)需求分析;(2)概念结构设计;(3)逻辑结构设计;(4)物理结构设计;(5)数据库实施;(6)数据库的运行和维护。
需要说明的是,数据库设计还包含了应用系统的设计过程。
每个阶段的主要任务是:(1)需求分析:通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)的工作概况,明确用户需求,确定新系统的功能。
(2)概念结构设计:应用E-R模型真实地反映现实世界,包括事物和相互之间的了解,能满足用户对数据的处理要求,是现实世界的一个真实模型;易于理解、易于更改、易于向关系、网状、层次等各种数据模型转换。
概念结构设计有以下四种方法:①自顶向下;②自底向上;③逐步扩张;④混合策略。
(3)逻辑结构设计:逻辑结构设计的目的是把概念设计阶段的基本E—R图转换成与选用的具体机器上DBMS所支持的数据模型相符合的逻辑结构(包括数据库模式和外模式)。
逻辑结构设计有如下三个步骤:①将概念模型(E—R图)转换为一般的关系、网状、层次模型;②将关系、网状、层次模型向特定的DBMS支持下的数据模型转换;③对数据模型进行优化。
(4)物理结构设计:对于一个给定的逻辑数据模式选取一个最适合应用环境的物理结构的过程,称为数据库的物理设计。
(5)数据库实施:建立实际数据库结构;试运行;装入数据;同时进行数据库的重新组织设计;故障恢复方案设计;安全性考虑;事务控制;(6)数据库的运行和维护:数据库的日常维护(安全性、完整性控制,数据库的转储和恢复);性能的监督、分析与改进;扩充新功能;修改错误。
2.依据你对数据库管理员和程序员职业岗位的了解,说明这两个岗位对数据库知识和能力的需求。
要求学生通过前程无忧(bbb://aaa51jobaaa)等人才招聘网站进行了解。
oracle课后题答案.doc
第一章一、选择题1.若关系的某一屈性组的值能唯一地标识一个元组,我们称之为(B )。
A、主码B、候选码C、外码D、联系2.以下不属于数据库模式的三要素的是(C )。
A、数据结构B、数据操作C、数据控制D、完整性约束3.以下对关系性质的描述屮,哪个是错误的?( B )A、关系中每个属性值都是不可分解的B、关系中允许出现相同的元组C、定义关系模式时可随意指定属性的排列次序D、关系中元组的排列次序可以任意交换二、填空题1.数据管理发展的三个阶段是人工管理、文件管理和数据库系统管理。
2.数据库系统的三级模式包括逻辑模式、用户模式、物理模式。
三、思考题1.数据库管理系统的主要功能有哪些?1)数据定义功能。
DBMS提供相应数据语言来定义(DDL)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。
2)数据存取功能。
DBMS提供数据操纵语言(DML),实现对数据库数据的基本存取操作:检索,插入,修改和删除。
3)数据库运行管理功能。
DBMS提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据止确有效。
4)数据库的建立和维护功能。
包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
5)数据库的传输;DBMS提供处理数据的传输,实现用户程序与DBMS Z间的通信,通常与操作系统协调完成。
2.思考关系规范化的过程。
答:对于存在数据兀余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。
3.思考数据库设计的步骤。
答:1需求分析、2概念设计阶段、3逻辑结构设计阶段、4数据库物理结构设计阶段、5数据库实施阶段、6数据库运行和维护阶段。
第二章一、选择题1、Oracle llg不具备的版本是(C)A.个人版B.标准版C.扩展板D.企业版2、oracle数据库的数据字典不能做的工作有(B)A.查找oracle数据库用户信息B.查找oracle数据库表中的信息C.查找oracl e数据库模式对象的信息D.查找oracle数据库存储结构的信息二、填空题1、Oracle体系结构由内存结构、进程结构和存储结构组成。
oracle综合实验报告
华北科技学院计算机学院综合性实验实验报告课程名称网络数据库实验学期2017 至2018 学年第一学期实验题目: 图书借阅系统数据库设计实验地点: 信息楼大软实验时间: 2017-11-22班级学号学生姓名成绩评定:1、工作量:A(),B(),C(),D(),F( )2、难易度:A(),B(),C(),D(),F( )3、答辩情况:基本操作:A(),B(),C(),D(),F( )代码理解:A(),B(),C(),D(),F( )4、报告规范度:A(),B(),C(),D(),F( )5、学习态度:A(),B(),C(),D(),F( )总评成绩:指导教师: 孙改平计算机学院制一、实验目的通过该实验把数据库的理论知识(数据库和数据表的设计理论、视图、索引、存储过程、触发器、数据库备份、数据库安全等)应用到具体的综合实例中,达到数据库知识整合的目的。
完成学生成绩管图书借阅理系统基本功能设计,提高学生的分析问题、解决问题的能力。
二、设备与环境硬件:多媒体计算机软件:WindowsXP以上的操作系统、Oracle 10g 数据库管理系统三、实验内容及实验结果1.数据库设计设计思想(1)用户身份用户、管理员。
(2)图书管理模块对图书进行添加、查询、修改、删除、添加。
(3)副本信息模块对图书的副本信息进行添加、修改、删除。
(4) 用户管理模块对用户进行添加、删除、修改。
2.数据表设计设计思想Books表Copies表Authors表Categories表Writers表Publishers表Users表具体实现表空间的创建create tablespace data loggingdatafile 'D:\Oracle\product\10.2.0\oradata\library\data01.dbf' size 50mreuse autoextend off;数据表. 数据表的创建(1)创建Books表create table Books(isbn char(20) not null primary key,title char(30),pubname char(30),author char(30),authorno number(30),zncode number(30));(2)创建Copies表create table copies(copyno number(10) not null primary key, isbn char(20), constraint fk_copyno foreign key(isbn) references Books(isbn));(3)创建Authors表create table Authors(authorno number(10) not null primary key,authorname char(20));(4)创建Categories表create table Categories(zncode number(20)not null primary key, catename char(20));(5)创建Writers表create table Writers(isbn char(20)not null,authorno number(20)not null,constraint pk_writers primary key(isbn,authorno));(6)创建Publishers表create table Publishers(pubname char(30)not null primary key, address char(50));(7)创建Users表create table Users(UserName char(20) not null, UserPwd char(20) not null, UserNo number(12) primary key, Birth date not null, Quanxian number(20),Email char(30),TEL char(20),Address char(20));3.视图设计设计思想(1)创建视图“cx_books”,查看图书的图书编码,书名,出版社名,中南分校编码,作者名,作者号。
Oracle数据库基础教程课后实验---实验报告
Oracle数据库基础教程实验报告专业计算机科学与技术姓名李文成学号 2010指导老师肖卓宇实验一创建数据库和表目的与要求(1)了解oracle数据库的逻辑结构和物理结构。
(2)了解Oracle Enterprise Manager的使用情况。
(3)学习关闭和启动数据库实例的方法。
(4)学会使用SQL语句创建数据库的方法。
(5)学会使用SQL语句删除数据库的方法。
实验准备首先要了解Oracle数据库的逻辑结构,包括方案对象,数据块、区间、段、和表空间等。
数据库由若干个表空间组成,表空间由表组成,表由段组成,段由区间组成,区间则由数据块组成。
Oracle数据库的物理结构由构成数据库的操作系统文件所决定。
每个Oracle数据库都由3种类型的文件组成:数据文件、日志文件和控制文件。
这些数据库文件为数据库信息提供真正的物理存储。
Enterprise Manager 10g是Oracle 10g提供的新的管理工具,简称EM。
使用它可以完成启动、关闭数据库,创建、删除数据库等功能。
只有系统管理员或拥有CREATE DATABASE权限的用户才能创建数据库。
可以在Enterprise Manager 中通过图形界面创建数据库,也可以使用CREATE DATABASE语句创建数据库。
实验内容oracle 服务器端的安装先解压10201_client_win32.zip压缩包,双击setup.exe。
如下图:稍等之后进入欢迎界面,如下图:点击下一步选择“管理员”安装类型,点击下一步:选择安装的详细目录后点击下一步。
点击安装:选择执行典型配置:点击下一步:完成。
创建数据库使用OEM创建表图1-1创建Employees表图1-2成功创建Employees表图1-3成功删除Employees表图1-4创建Departments表图1-5成功创建Departments表图1-6 成功删除Departments表图1-7创建Salary表图1-8成功创建Salary表图1-9成功删除Salary表在PL/SQL语句创建表1.创建Employees表create table Employee(EmployeeID char(6) NOT NULL PRIMARY KEY,Name char(10) NOT NULL,Bithday date N OT NULL,Sex number(1) NOT NULL,Address char(20) NULL,Zip char(6) NULL,PhoneNumber char(12) NULL,DepartmentID char(3) NOT NULL REFERENCES Departments(DepartmentID))tablespace users;图1-10 使用SQL语句创建Employees表2.创建Departments表create table Departments(DepartmentID char(3) NOT NULL PRIMARY KEY, Departmentname char(20) NOT NULL,Note varchar2(100) NULL)tablespace users;图1-11 使用SQL语句创建Departments表3.创建Salary表create table Salary(EmployeeID char(6) NOT NULL PRIMARY KEY,InCome number(8,2) NOT NULL,OutCome number(8,2) NOT NULL)tablespace users;图1-11 使用SQL语句创建Salary表实验二角色和用户管理目的与要求(1)了解Oracle数据库用户和角色的概念。
oracle实验以及答案
实验1SQL*Plus的使用和基本SELECT语句实验目的通过该实验使学员掌握简单查询语句的基本使用方法以及别名的指定方法,能够创建和执行SQL脚本。
实验要求(1)掌握SQL*Plus的基本使用(2)掌握SELECT语句的简单用法。
实验步骤(1)登录到SQL*Plus,初始用户名为:SCOTT,口令为TIGER。
答:打开sql plus,输入用户名和密码登陆;也可以从dos窗口输入命令sqlplus Scott/tiger 连接数据库(2)分别显示EMP、DETP、SALGRADE表结构,并察看表中的数据。
答:DESC emp;DESC dept;DESC salgrade;(3)创建一个查询显示每个雇员的姓名、工作、受雇日期及雇员编号,并且要将雇员编号作为第一列显示。
最后将该SQL语句保存成文件p1q1.sql,并执行该脚本文件。
答:SELECT empno,ename,job,hiredate FROM emp;(4)将脚本文件p1q1.sql调取到SQL缓冲区,并将列标题设置为Emp #,Employee,Job及Hire Date,将该SQL语句保存成文件p1q2.sql,最后返回查询结果。
答:SELECT empno "Emp #",ename "Employee",job "Job",hiredate "Hire Date" FROMemp;思考练习题1.SQL*Plus命令是用于访问数据库的吗?答:可以访问数据库。
2.下面的SELECT语句能成功执行吗?SQL>SELECT ename,job,sal Salary2FROM emp;答:可以成功执行。
3.下面的语句有3处错误,请纠正它们。
SQL>SELECT empno,ename2Salary x 12 ANNUAL SALARY3FROM emp;答:A.表中没有Salary项,改为sal;B.ename后缺少逗号。
Oracle实验5
实验五Oracle支持的SQL●实验目的1.掌握连接查询与子查询方法。
2.掌握SQL中的集合运算、Top-N分析。
3.了解层次树型查询、rollup与cube应用。
●实验环境Oracle10g●实验内容1.简单Select查询练习1、请查询表DEPT中所有部门的情况。
select * from dept;练习2、查询表DEPT中的部门号、部门名称两个字段的所有信息。
select deptno,dname from dept;练习3、请从表EMP中查询10号部门工作的雇员姓名和工资。
select ename,sal from emp where deptno=10;练习4、请从表EMP中查找工种是职员CLERK或经理MANAGER的雇员姓名、工资。
select ename,sal from emp where job='CLERK' or job='MANAGER';练习5、请在EMP表中查找部门号在10-30之间的雇员的姓名、部门号、工资、工作。
select ename,deptno,sal,job from emp where deptno between 10 and 30;练习6、请从表EMP中查找姓名以J开头所有雇员的姓名、工资、职位。
select ename,sal,job from emp where ename like 'J%';练习7、请从表EMP中查找工资低于2000的雇员的姓名、工作、工资,并按工资降序排列。
select ename,job,sal from emp where sal<=2000 order by sal desc;2.连接查询与子查询练习8、请从表中查询工作是CLERK的所有人的姓名、工资、部门号、部门名称以及部门地址的信息。
select ename,sal,emp.deptno,dname,loc from emp,dept where emp.deptno=dept.deptno and job=’CLERK’;练习9、查询表EMP中所有的工资大于等于2000的雇员姓名和他的经理的名字。
最新《Oracle技术》实验报告5(答案)1资料
《Oracle技术》实验报告实验名称PL/SQL编程(选作10题,程序另加附页)姓名学号日期专业班级实验目的(1)了解PL/SQL块的基本结构和分类。
(2)熟练掌握编写PL/SQL块的方法。
(3)了解PL/SQL存储过程、触发器、游标的作用。
(4)熟练掌握编写PL/SQL存储过工程的方法及维护过程。
(5)熟练掌握创建触发器的方法及维护过程。
(6)孰练掌握显式游标和隐式游标的使用。
实验内容(1)编写一个PL/SQL块,输出所有员工的员工名、员工号、工资和部门号。
BEGINFOR v_emp IN (SELECT * FROM EMP) LOOP DBMS_OUTPUT.PUT_LINE(v_emp.ename||’‘||v_emp.empno|| ’‘||v_emp.sal||’‘|| v_emp.deptno);END LOOP;END;/(2)编写一个PL/SQL块,查询名为“SMITH”的员工信息,并输出其员工号、工资、部门号。
如果该员工不存在,则插入一条新记录,员工号为2007,员工名为“SMITH”,工资为1500,部门号为10。
如果存在多个名为“SMITH”的员工,则输出所有名为“SMITH”的员工号、工资和部门号。
成绩DECLAREV_empno emp.empno%type;V_sal emp.sal%type;V_deptno emp.deptno%type;BEGINSELECT empno,sal,deptno INTOV_empno,v_sal,v_deptno FROM emp WHERE ename=’SMITH’;DBMS_OUTPUT.PUT_LINE(v_empno||’’||v_sal||’’||v_dept no);EXCEPTIONWHEN NO_DATA_FOUND THENINSERT INTO EMP(empno, ename,sal,deptno)V ALUES(2007,’SMITH’,1500,10);WHEN TOO_MANY_ROWS THENFOR v_emp IN (SELECT empno,sal,deptno FROM emp WHERE ename=’SMITH’) LOOPDBMS_OUTPUT.PUT_LINE(v_emp.empno||’‘||v_emp.sal|| ’‘||v_emp.deptno);END LOOP;END;/(3)创建一个存储过程,以员工号为参数,输出该员工的工资。
Oracle实验五实验报告
实验五用户、角色与权限管理一、实验目的及要求掌握Oracle的安全管理方法。
二、实验主要内容(1) 概要文件的建立、修改、查看、删除操作。
(2) 用户的建立、修改、查看、删除操作。
(3) 权限的建立、修改、查看、删除操作。
(4) 角色的建立、修改、查看、删除操作。
三、实验仪器设备在局域网环境下,有一台服务器和若干台客户机。
服务器成功安装Oracle 11g数据库服务器(企业版),客户机成功安装Oracle 11g客户端软件,网络服务配置正确,数据库和客户端正常工作。
四、实验步骤1创建概要文件。
①利用企业管理器创建概要文件“ygbx+学号_pro”,要求在此概要文件中CPU/会话为1000,读取数/会话为2000,登录失败次数为3,锁定天数为10。
②利用SQL*Plus或PL/SQL Developer,创建概要文件“ygbx+学号_pro_sql”,其结构与“ygbx+学号_pro”一致。
2 查看概要文件。
②利用企业管理器查看概要文件“ygbx+学号_pro”的信息。
②利用SQL*Plus或PL/SQL Developer,从DBA_PROFILES数据字典中查看“ygbx+学号_pro_sql”概要文件的资源名称和资源值等信息。
③利用SQL*Plus或PL/SQL Developer,从查看“ygbx+学号_pro_sql”概要文件中锁定天数的值。
3修改概要文件。
②利用企业管理器,修改“ygbx+学号_pro”概要文件,将CPU/会话改为4000,连接时间为60。
②利用SQL*Plus或PL/SQL Developer,修改“ygbx+学号_pro_sql”概要文件,将并行会话设为20,读取数/会话设为DEFAULT。
4创建用户。
①利用企业管理器,创建“ygbxuser+学号”用户,密码为“user+学号”,默认表空间为“ygbx_tbs”。
②利用SQL*Plus或PL/SQL Developer,创建“ygbxuser+学号_sql”用户,密码为“user+学号+sql”,该用户处于锁状态。
oracle课后习题答案
oracle课后习题答案Oracle课后习题答案在学习Oracle数据库时,完成课后习题是巩固知识的重要方式。
本文将为大家提供一些常见Oracle课后习题的答案,帮助读者更好地理解和应用数据库知识。
一、基本概念题1. 什么是数据库?答:数据库是一个组织和存储数据的系统。
它是一个结构化的集合,用于存储、管理和操纵数据,并提供对数据的安全性和完整性的保证。
2. 什么是表?答:表是数据库中的一个基本组成部分,用于存储数据。
它由行和列组成,行表示记录,列表示记录中的字段。
3. 什么是SQL?答:SQL(Structured Query Language)是一种用于访问和管理关系型数据库的语言。
它可以用于查询、插入、更新和删除数据,以及创建和管理数据库对象。
二、SQL查询题1. 查询员工表中所有员工的姓名和工资。
答:SELECT 姓名, 工资 FROM 员工表;2. 查询订单表中订单金额大于1000的订单号和金额。
答:SELECT 订单号, 订单金额 FROM 订单表 WHERE 订单金额 > 1000;3. 查询客户表中所有客户的姓名和地址,按照地址降序排列。
答:SELECT 姓名, 地址 FROM 客户表 ORDER BY 地址 DESC;三、SQL插入题1. 向员工表中插入一条记录,姓名为"张三",工资为5000。
答:INSERT INTO 员工表 (姓名, 工资) VALUES ('张三', 5000);2. 向订单表中插入一条记录,订单号为"2021001",金额为2000。
答:INSERT INTO 订单表 (订单号, 订单金额) VALUES ('2021001', 2000);四、SQL更新题1. 将员工表中工资低于3000的员工工资增加1000。
答:UPDATE 员工表 SET 工资 = 工资 + 1000 WHERE 工资 < 3000;2. 将客户表中地址为"北京市"的客户地址改为"上海市"。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
dbms_output.put_line(v_sum);
end;
7、 编写PL/SQL程序,查询5号员工工资,如果工资小于3000,则加200员工资,并提示信息“5号员工工资已更新。”,如果工资大于3000,则提示信息“5号员工工资为XXX,已达到规定标准。”并编写可能的异常情况处理代码。
INSERT INTO DHB.departments VALUES ('4','技术部');
INSERT INTO DHB.departments VALUES ('5','服务部');
commit;
5、INSERT INTO DHB.employees VALUES ('1','张三','男','部门经理',6000, '1101123aadx1','1');
when others then
dbms_output.put_line('发生其它错误!');
end;
8、 编写PL/SQL程序,查询1号员工的工资,使用CASE语句输出其工资等级。工资小于等于3000,等级为“低”;工资大于3000,小于5000,等级为”中”;工资大于等于5000,等级为高;
v_grade:=case
when v_wage<=3000 then '低'
when v_wage>=3000 and v_wage<5000 then '中'
when v_wage>=5000 then '高'
else '工资不明'
end;
dbms_output.put_line('该员工工资等级是'||v_grade);
1、
sqlplus sys/jsjorcl as sysdba
create user dhb identified by jsjorcl
default tablespace users
temporary tablespace temp;
grant sysdba,connect,resource to dhb;
Declare
V_num integer:=2;
v_sum integer:=0;
begin
loop
v_sum:=v_sum+v_num;
v_num:=v_num+2;
if v_num>100 then
exit;
end if;
INSERT INTO DHB.employees VALUES ('4','赵六','男','部门经理',6500, '1101123dddx4','2');
INSERT INTO DHB.employees VALUES ('5','高七','男','职员',2500, '1101123aadx5','2');
INSERT INTO DHB.employees VALUES ('8','孙十','男','职员',2800, '1101123dddx8','3');
commit;
6、 编写PL/SQL程序,使用LOOP…EXIT…END语句计算1—100之间所有偶数之和.
Set serveroutput on;
else
dbms_output.put_line('5号员工工资为'||v_wage||',已达到规定标准。');
end if;
exception
when no_data_found then
dbms_output.put_line('数据库中没有该员工信息');
insert into dhb.departments values('6','后勤部');
dbms_output.put_line('插入了一条新记录!');
comloyees
set dhb.employees.wage=dhb.employees.wage+200
where dhb.employees.emp_id=5;
commit;
dbms_output.put_line('5号员工工资已更新。');
quit
sqlplus dhb/jsjorcl as sysdba
2、
create table dhb.departments
(dep_id number primary key,
dep_name varchar2(20));
3、
create table dhb.employees
(emp_id number primary key,
emp_name varchar2(20),
sex varchar2(2),
title varchar2(10),
wage number,
idcard varchar2(12),
dep_id number,
foreign key(dep_id) references dhb.departments(dep_id));
from dhb.departments
where dhb.departments.dep_id=6;
dbms_output.put_line('已存在部门号为6的记录,其部门名称是'||v_depname);
exception
when no_data_found then
Set serveroutput on;
Declare
v_wage dhb.employees.wage%type;
v_grade varchar2(10);
begin
select wage into v_wage
from dhb.employees
where dhb.employees.emp_id=1;
Set serveroutput on;
Declare
v_depname dhb.departments.dep_name%type;
v_grade varchar2(2);
begin
select dhb.departments.dep_name into v_depname
exception
when no_data_found then
dbms_output.put_line('数据库中没有该员工信息');
when others then
dbms_output.put_line('发生其它错误!');
end;
9、 编写PL/SQL程序,查询departments表中是否有部门号为“6”的记录,如果没有,插入新记录部门号为6,部门名称为“后勤部”。如果有,显示“已存在部门号为'6'的记录,其部门名称是XXX”。
4、INSERT INTO DHB.departments VALUES ('1','人事部');
INSERT INTO DHB.departments VALUES ('2','办公室');
INSERT INTO DHB.departments VALUES ('3','财务部');
INSERT INTO DHB.employees VALUES ('2','李四','男','职员',3000, '1101123dddx2','1');
INSERT INTO DHB.employees VALUES ('3','王五','女','职员',3500, '1101123aadx3','1');
Set serveroutput on;
Declare
v_wage dhb.employees.wage%type;
begin
select wage into v_wage
from dhb.employees
where dhb.employees.emp_id=5;
if v_wage<3000 then
INSERT INTO DHB.employees VALUES ('6','马八','男','职员',3100, '1101123dddx6','2');
INSERT INTO DHB.employees VALUES ('7','钱九','女','部门经理',5000, '1101123aadx7','3');