oracle表设计实践,Oracle数据库实训报告.docx

这份实训报告详细记录了一位计算机科学与技术专业的学生在2015-2016学年第一学期进行Oracle数据库项目的全过程。从实训目标、项目描述到实施步骤,包括需求分析、E-R图设计、数据库创建、表空间、用户权限管理、数据入库、视图创建和PL/SQL编程等,全面展示了数据库的设计与维护技能。通过此次实训,学生不仅巩固了理论知识,还提升了数据库管理和开发能力。
摘要由CSDN通过智能技术生成

《Oracle数据库》

实训报告

系 别 信息工程系

专 业 计算机科学与技术

班 级 2013级计算机科学与技术本科1班

姓 名

学 号

指导教师 徐鲁辉

地 点 资讯楼306

学年学期 2015-2016学年第一学期

目 录

TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc452475813" _Toc452475813 HYPERLINK \l "_Toc452475814" 1 实训目标 PAGEREF _Toc452475814 \h 1

HYPERLINK \l "_Toc452475815" 1.1 知识目标 PAGEREF _Toc452475815 \h 1

HYPERLINK \l "_Toc452475816" 1.2 能力目标 PAGEREF _Toc452475816 \h 1

HYPERLINK \l "_Toc452475817" 1.3 素质目标 PAGEREF _Toc452475817 \h 1

HYPERLINK \l "_Toc452475818" 2 项目描述 PAGEREF _Toc452475818 \h 1

HYPERLINK \l "_Toc452475819" 3 项目目标 PAGEREF _Toc452475819 \h 1

HYPERLINK \l "_Toc452475820" 4 项目实施 PAGEREF _Toc452475820 \h 1

HYPERLINK \l "_Toc452475821" 4.1 需求分析 PAGEREF _Toc452475821 \h 1

HYPERLINK \l "_Toc452475822" 4.2 概念结构设计 PAGEREF _Toc452475822 \h 1

HYPERLINK \l "_Toc452475823" 4.2.1 确定实体和属性 PAGEREF _Toc452475823 \h 1

HYPERLINK \l "_Toc452475824" 4.2.2 E-R图 PAGEREF _Toc452475824 \h 1

HYPERLINK \l "_Toc452475825" 4.3 逻辑结构设计 PAGEREF _Toc452475825 \h 1

HYPERLINK \l "_Toc452475826" 4.4 数据库物理设计与实施 PAGEREF _Toc452475826 \h 1

HYPERLINK \l "_Toc452475827" 4.4.1 创建数据库 PAGEREF _Toc452475827 \h 1

HYPERLINK \l "_Toc452475828" 4.4.2 创建表空间 PAGEREF _Toc452475828 \h 1

HYPERLINK \l "_Toc452475829" 4.4.3 创建用户并授予系统权限 PAGEREF _Toc452475829 \h 1

HYPERLINK \l "_Toc452475830" 4.4.4 在用户下创建表 PAGEREF _Toc452475830 \h 1

HYPERLINK \l "_Toc452475831" 4.4.5 授予用户表权限 PAGEREF _Toc452475831 \h 1

HYPERLINK \l "_Toc452475832" 4.4.6 组织数据入库 PAGEREF _Toc452475832 \h 1

HYPERLINK \l "_Toc452475833" 4.4.7 创建视图 PAGEREF _Toc452475833 \h 1

HYPERLINK \l "_Toc452475834" 4.4.8 PL/SQL编程之创建存储过程和触发器 PAGEREF _Toc452475834 \h 1

HYPERLINK \l "_Toc452475835" 4.5 数据库维护计划 PAGEREF _Toc452475835 \h 1

HYPERLINK \l "_Toc452475836" 5 实训小结 PAGEREF _Toc452475836 \h 1

1 实训目标

数据库项目实训是巩固数据库基本理论知识、提高学生数据库管理和开发能

目 录 绪论……………………………………………………………….….……………… 1 第1章 准备安装Oralce环境…………………………….….……………2   1.1 安装Oracle 10g R2所需的软件包………………………………………3   1.2 检查内核并修改linux版本信息......………………………………..……3   1.3 配置内核核心参数………………………………………..……….....……3   1.4 建立安装Oracle需要的用户,组,及目录……………..……….....……3   1.5 设置oracle的登录环境变量……………..……….....……3   1.6 配置X windows 1.7创建目录存放oracle安装文件………… ……………………….……………...3 1.8使用ssh 把oracle安装文件上传到10gR2_db目录下…….……………...……....7   1.9解压安装文件……………....7    第2章 Linux下安装Oracle数据库…………… .…… ……………………….….....3   2.1 选择安装类型,选择高级安装………………….….....3   2.2 指定证书存放目录 ….….....3   2.3 选择安装的数据库类型及oracle所支持的语言 ….….....3   2.4 指定oracle环境变量,安装路径….….....3   2.5 Oracle开始进行安装前的检查工作….….....3   2.6 选择配置选项….….....3   2.7 选择创建的数据库模式….….....3   2.8 指定数据库配置的相关选项.…… ……………………….….....3   2.9 选择数据库管理选项 .…… ……………………….….....3   2.10 指定数据库备份回复选项.…… ……………………….….....3   2.11 指定数据库相关用户密码oracle.…… ……………………….….....3   2.12 开始安装.…… ……………………….….....3   2.13 执行脚本信息.…… ……………………….….....3   2.14 安装结束.…… ……………………….….....3    验证安装的Oracle…………… .…… ……………………….….....3   3.1 使用浏览器登录isqlplus…… .…… ……………………….….....3   3.2 使用浏览器登录企业管理器…… .…… ……………………….….3   3.3终端登录sqlplus …… .…… ……………………….….....3   3.4 使用dbca创建数据库…… .…… ……………………….….....3    通过shell脚本实现oracle的自动化的管理.......33      4.1 编写shell 脚本启动数据库监听及数据库 .........3   4.2 编写shell 脚本关闭数据库监听及数据库.................33   4.3 系统启动关闭时自动执行的shell脚本…………….….....3   4.4.监控监听进程是否运行…………….….....3   4.5 全冷备份数据库........................3   4.6全热备份数据库........................3   
实验一 SQL*PLUS练习 【实验目的】 (1) 了解Oracle的工作环境和基本使用方法。 (2) 练习标准SQL的数据操作,查询命令及其查询优化。 (3) 学会使用高级SQL命令,排序、分组、自连接查询等。 (4) 学会使用SQL*PLUS命令显示报,存储到文件等。 【实验内容】 一、 准备使用SQL*PLUS 1. 进入SQL*PLUS 2. 退出SQL*PLUS 3. 显示结构命令DESCRIBE SQL>DESCRIBE emp 使用DESCRIBE(缩写DESC)可以列出指定的基本结构,包括各字段的字段名以及类型、长度、是否非空等信息。 4. 使用SQL*PLUS显示数据库中EMP的内容 输入下面的查询语句: SQL>SELECT * FROM emp; 按下回车键执行查询 5. 执行命令文件 START或@命令将指定文件调入SQL缓冲区中,并执行文件内容。 SQL>@ 文件名(文件后缀缺省为.SQL)或 SQL>START 文件名 文件中每条SQL语句顺序装入缓冲区并执行。 二、 数据库命令——有关、视图等的操作 1. 创建employee 例1 定义一个人事信息管理系统中存放职工基本信息的一张。可输入如下命令: SQL>CREATE TABLE employee (empno number(6) PRIMARY KEY, /* 职工编号 name varchar2(10) NOT NULL, /* 姓名 deptno number(2) DEFAULT 10, /* 部门号 salary number(7,2) CHECK(salarycreate table emp2 as select * from emp where 1=2; 在命令的where子句中给出1=2,示条件不可能成立,因而只能复制结构,而不能复制任何数据到新中去。另外,还可以复制一个的部分列定义或部分列定义及其数据。 三、 Oracle数据库数据查询 1、单查询 2、多查询 四、 SQL*PLUS常用命令 1 常用报格式化名命令 命令 定义 Btitle 为报的每一页设置底端标题 Column 设置列的标题和格式 Compute 让SQL*PLUS计算各种值 Remark 将某些字标记为注释 Set linesize 设置报的行宽字符数 Set newpage 设置报各页之间的行数 Spool 使SQL*PLUS将输出写入文件中 Start 使SQL*PLUS执行一个sql文件 Ttitle 设置报每页的头标题 Break 让SQL*PLUS进行分组操作 例3 建立一个批命令文件对查询到的数据以报的形式输出并将其保存到指定的文件中。 处理方法:利用SQL*PLUS语言工具(也可以使用其他文本编辑器)建立批命令的.SQL文件。在“SQL>”提示符下,使用EDIT命令在”E:\”中建立SCGB.SQL文件。 SCGB.SQL文件中的命令组如下: SQL>EDIT E:\ SCGB.SQL SET echo off SET pagesize 30 SET linesize 75 TTITLE’2008年4月10号’CE’公司职员基本情况登记’R’Page:’ FORMAT 99- >SQL.PNO SKIP 1 CE’===========================’ BTITLE COL 60 ’制标单位’ TAB 3 ‘人事部’ COLUMN empno heading ‘职工|编号’ COLUMN ename format a10 heading ‘姓 名’ COLUMN job heading ‘工 种’ COLUMN sal format $99,990 heading 工 资’ COLUMN comm Like sal heading ‘奖 金’ COLUMN deptno format 9999 heading ‘部门|编号’ COLUMN hiredate heading ‘参加工作时间’ SPOOL e:\sjbb /*在E盘中建立格式报输出文件,默认属性为LST BREAK on deptno skip 1 COMPUTE sum of sal comm on deptno SELECT empno,ename,job,hiredate,sal,comm,deptno from emp ORDER BY deptno,sal; SPOOL off /*终止SPOOL功能,关闭其文件。注意,此命令不可省,否则将建立空文件。 五、 实验内容 1、以cs+学号为用户名创建用户,并授予用户创建数据对象的权限。 2、复制emp,复制名为emp_学号,然后将emp中工资低于$2000 的职工插入到复制的中。 3、对复制的emp插入一行只包含有职工号,职工名,工资与部门号四个数据 项值的记录。 4、在复制的emp中将雇员ALLEN提升为经理,工资增至$2500, 奖(佣 )金增加40%。 5、删除复制的emp中工资低于500的记录行。 6、列出10号部门中既不是经理,也不是秘书的职工的所有信息。 7、查找出部门所在地是CHICAGO的部门的职工姓名、工资和工种。 8、统计各部门中各工种的人数、工资总和及奖金总和。 9、查找出工资比其所在部门平均工资高的职工姓名、工种与工资情况。 实验3 Oracle数据库开发环境下PL/SQL编程 【实验目的】 (1)掌握 PL/SQL 的基本使用方法。 (2)在SQL*PLUS环境下运行PL/SQL的简单程序。 (3)应用 PL/SQL 解决实际问题 【实验内容与步骤】 PL/SQL块中的可执行部分是由一系列语句组成的(包括对数据库进行操作的SQL语句,PL/SQL语言的各种流程控制语句等)。在块中对数据库查询,增、删、改等对数据的操作是由SQL命令完成的。在PL/SQL块中,可以使用SQL的数据查询命令,数据操纵命令和事务控制命令。可使用全部SQL函数。PL/SQL中的SQL语句,可使用SQL的比较操作等运算符。但不能使用数据定义语句。 在PL/SQL块中使用SELECT语句时注意几点: (1)SELECT语句必须含有INTO子句。 (2)INTO子句后的变量个数和位置及数据类型必须和SELECT命令后的字段名相同。 (3)INTO子句后可以是简单类型变量或组合类型变量。 (4)SELECT语句中的WHERE条件可以包含PL/SQL块中定义的变量及达式,但变量名不要同数据库列名相同。 (5)在未使用显式游标的情况下,使用SELECT语句必须保证只有一条记录返回,否则会产生异常情况。 [例3-1] 问题:编写一个过程,求和运算。 SET SERVEROUTPUT ON; DECLARE a number:=1; BEGIN a:=a+5; DBMS_OUTPUT.PUT_LINE('和为:'||TO_CHAR(a)); END; / 【例3-2】:使用%TYPE声明变量,输出制定中的相关信息。 DECLARE my_name student.sname%TYPE; BEGIN SELECT sname INTO my_name FROM student WHERE no=’01203001’; DBMS_OUTPUT.PUT_LINE(my_name); END; / 【例3-3】问题:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资增加10%。 declare v_sal emp.sal%type; begin select sal into v_sal from emp where ename=spName; if v_sal :NEW.sal THEN DBMS_OUTPUT.PUT_LINE('工资减少'); ELSIF :OLD.sal < :NEW.sal THEN DBMS_OUTPUT.PUT_LINE('工资增加'); ELSE DBMS_OUTPUT.PUT_LINE('工资未作任何变动'); END IF; DBMS_OUTPUT.PUT_LINE('更新前工资 :' || :OLD.sal); DBMS_OUTPUT.PUT_LINE('更新后工资 :' || :NEW.sal); END; / --执行UPDATE查看效果 UPDATE emp SET sal = 3000 WHERE empno = '7788'; 6、需要对在上进行DML操作的用户进行安全检查,看是否具有合适的特权。 Create table foo(a number); Create trigger biud_foo Before insert or update or delete On foo Begin If user not in (‘DONNY’) then Raise_application_error(-20001, ‘You don’t have access to modify this table.’); End if; End; / 即使SYS,SYSTEM用户也不能修改foo。 2、 利用PL/SQL编写程序实现下列触发器 1)、编写一个数据库触发器,当任何时候某个部门从dept中删除时,该触发器将从emp中删除该部门的所有雇员。(要求:emp、dept均为复制后的) 2)、创建一个触发器,当客户下完订单后,自动统计该订单的所有图书的价格总额。 3)、创建一个触发器,禁止客户在非工作时间(早上8:00前,晚上17:00后)下订单。 五、实验心得
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值