ORACLE 实验一
实验一:数据定义
实验学时:4学时
实验类型:综合型
实验要求:必修
一、实验目的
1、熟悉Oracle的client配置;
2、掌握SQL Plus的使用;
3、掌握SQL模式定义语句,定义相关的表、索引与完整性约束。
二、实验内容
1 Oracle的使用
Oracle数据库管理系统採用客户机/server结构,client上须要配置数据库网络服务命名。在操作系统的“開始”菜单的“Oracle”程序组中,找到并执行“Net8”。查看当中的服务命名配置是否与server的数据库监听服务一致。比如:服务命名为“Oracle”,參数主机名“Db_server”(也能够输入主机的IP地址),监听port“1521”,数据库名“Orcl”。
在操作系统的“開始”菜单的“Oracle”程序组中,找到并执行“SQL Plus”。提供username(user1)、口令(123)和Net8中配置服务命名(oracle)。
2project项目採购数据库
设有供应商S、零件P、project项目J三个关系模式以及反映它们之间联系(某project使用了某供应商提供的某零件多少个)的关系模式SPJ。
S (SNO, SNAME, STATUS, CITY)
P (PNO, PNAME, COLOR, WEIGHT)
J (JNO, JNAME, CITY)
SPJ(SNO, PNO, JNO, QTY)
使用SQL模式定义语句定义以上关系模式,注意主键与外键的约束。在须要的属性上建立索引,在关系中插入例如以下演示样例数据。(数据插入或改动后输入COMMIT;更新提交命令。)
S SPJ
SNO |
PNO |
JNO |
QTY |
S1 S1 S1 S1 S2 S2 S2 S2 S2 S2 S3 S3 S4 S4 S4 S5 S5 S5 S5 |
P1 P1 P1 P2 P3 P3 P3 P3 P5 P5 P1 P3 P5 P6 P6 P2 P3 P6 P6 |
J1 J3 J4 J2 J1 J2 J4 J5 J1 J2 J1 J1 J1 J3 J4 J4 J1 J2 J4 |
200 100 700 100 400 200 500 400 400 100 200 200 100 300 200 100 200 200 500 |
SNO |
SNAME |
STATUS |
CITY |
S1 S2 S3 S4 S5 |
精益 为民 光大 友好 三利 |
20 10 30 20 30 |
天津 北京 北京 天津 上海 |
P
PNO |
PNAME |
COLOR |
WEIGHT |
P1 P2 P3 P4 P5 P6 |
螺母 螺钉 螺丝刀 螺丝刀 凸轮 齿轮 |
红 绿 兰 红 兰 红 |
12 17 14 14 40 30 |
J
JNO |
JNAME |
CITY |
J1 J2 J3 J4 J5 J6 J7 |
汽车厂 弹簧厂 造船厂 机车厂 无线电厂 半导体厂 仪器厂 |
北京 长春 天津 天津 唐山 常州 南京 |
3产品价格数据库
设有下面四个关系模式
PRODUCT (MAKER, MODEL, TYPE)
PC (MODEL, SPEED, RAM, HD, CD, PRICE)
LAPTOP (MODEL, SPEED, RAM, HD, SCREEN, PRICE)
PEINTER(MODEL, COLOR, TYPE, PRICE)
演示样例数据:
PC PRODUCT
MODEL |
SPEED |
RAM |
HD |
CD |
PRICE |
1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 |
122 120 166 166 166 200 200 180 200 160 |
16 16 24 32 16 32 32 32 32 16 |
1.6 1.6 2.5 2.5 2.0 3.1 3.2 2.0 2.5 1.2 |
6X 6X 6X 8X 8X 8X 8X 8X 8X 8X |
1595 1399 1899 1999 1999 2099 2349 3699 2599 1495 |
MAKER |
MODEL |
TYPE |
A A A B B B B C C D D D D D D D D E E F G G H I |
1001 1002 1003 1004 1006 3002 3004 1005 1007 1008 1009 1010 2001 2002 2003 3001 3003 2004 2008 2005 2006 2007 3005 3006 |
PC PC PC PC PC Printer Printer PC PC PC PC PC Laptop Laptop Laptop Printer Printer Laptop Laptop Laptop Laptop Laptop Printer Printer |
LAPTOP
MODEL |
SPEED |
RAM |
HD |
SCREEN |
PRICE |
2001 2002 2003 2004 2005 2006 2007 2008 |
100 117 117 133 133 120 150 120 |
20 12 32 16 16 8 16 16 |
1.10 0.75 1.00 1.10 1.00 0.81 1.35 1.10 |
9.5 11.3 10.4 11.2 11.3 12.1 12.1 12.1 |
1999 2499 3599 3499 2599 1999 4799 2009 |
PRINTER
MODEL |
COLOR |
TYPE |
PRICE |
3001 3002 3003 3004 3005 3006 |
True True False False False True |
Ink-jet Ink-jet Laser Laser Ink-jet Dry |
275 269 829 879 180 470 |
以上2、3题能够选做1题,编写实验报告,上机调试,记录实验结果。
三、实验原理、方法和手段
使用SQL模式定义语句定义以上关系模式,注意主键与外键的约束。在须要的属性上建立索引,在关系中插入演示样例数据。(数据插入或改动后输入COMMIT;更新提交命令。)
四、实验组织执行要求
本实验为综合型实验,採用集中授课形式,学生集中上机操作。详细要求例如以下:
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、教师在学生实验过程中予以必要的辅导,学生独立完毕实验。
五、实验条件
1、提供一台具有WINDOWS 98/2000/NT/XP操作系统的计算机;
2、Oracle 8.0以上设计环境。
六、实验步骤
1、用SQL语言的模式定义设计上述实验内容,并採用Insert Into语句插入实验数据;
2、採用文本编辑器如Windows的记事本,编辑上述SQL语句;
3、执行“SQL Plus”,将文本编辑器中的语句逐条拷贝到“SQL Plus”中执行调试。
七、思考题
在上述关系模式的定义中有未定义外keyword?假设有请指出參照表、被參照表及參照属性,当删除或改动被參照关系主keyword的值时,为了不破坏參照完整性约束,应採取何种參照策略。
八、实验报告
1.实验预习
在实验前每位同学都须要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求、简要的实验步骤,形成一个操作提纲。
2.实验记录
学生開始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、所得结果及相关条件如实地记录下来。
3.实验报告
主要内容包含实验中的关系模式定义代码、执行结果以及对调试过程中出现错误的分析总结,回答思考题,给出实验结论。
九、其他说明
学生严格遵守实验室的各项规章制度,配合和服从实验室人员管理。
实验代码例如以下(在Oracle developer中执行无误 Index引用由主键自己主动生成了 所以这边我不要自己设计)
PS:因为用的是非管理员权限 所以使用的是默认表空间 即;后不加不论什么的TABLESPACE tablesapce_name
CREATE TABLE S
(
SNO VARCHAR2(8) PRIMARY KEY,
SNAME VARCHAR2(8),
STATUS VARCHAR2(8),
CITY VARCHAR2(8)
); CREATE TABLE P
(
PNO VARCHAR2(8) PRIMARY KEY,
PNAEM VARCHAR2(8),
COLOR VARCHAR2(8),
WEIGHT NUMBER(10)
);
CREATE TABLE J
(
JNO VARCHAR2(8) PRIMARY KEY,
JNAME VARCHAR2(8),
CITY VARCHAR2(8)
);
CREATE TABLE SPJ
(
SNO VARCHAR2(8),
PNO VARCHAR2(8),
JNO VARCHAR2(8),
QTY NUMBER(10),
CONSTRAINT SPJ_SNO FOREIGN KEY(SNO)
REFERENCES S(SNO),
CONSTRAINT SPJ_PNO FOREIGN KEY(PNO)
REFERENCES P(PNO),
CONSTRAINT SPJ_JNO FOREIGN KEY(JNO)
REFERENCES J(JNO)
);
//索引自己建立 在上面建立外键约束的时候自己建立了
CREATE INDEX S_SNO_INDEX
ON S(SNO)
CREATE INDEX P_PNO_INDEX
ON P(PNO)
CREATE INDEX J_JNO_INDEX
ON J(JNO)
CREATE INDEX SPJ_SNO_PNO_JNO_INDEX
ON SPJ(SNO,PNO,JNO) INSERT INTO S VALUES('S1','精益',20,'天津');
INSERT INTO S VALUES('S2','为民',10,'北京');
INSERT INTO S VALUES('S3','光大',30,'北京');
INSERT INTO S VALUES('S4','友好',20,'天津');
INSERT INTO S VALUES('S5','三利',30,'上海');
COMMIT; INSERT INTO P VALUES('P1','螺母','红',12);
INSERT INTO P VALUES('P2','螺钉','绿',17);
INSERT INTO P VALUES('P3','螺丝刀','兰',14);
INSERT INTO P VALUES('P4','螺丝刀','红',14);
INSERT INTO P VALUES('P5','凸轮','兰',40);
INSERT INTO P VALUES('P6','齿轮','红',30);
COMMIT; INSERT INTO J VALUES('J1','汽车厂','北京');
INSERT INTO J VALUES('J2','弹簧厂','长春');
INSERT INTO J VALUES('J3','造船厂','天津');
INSERT INTO J VALUES('J4','机车厂','天津');
INSERT INTO J VALUES('J5','无线电厂','唐山');
INSERT INTO J VALUES('J6','半导体厂','常州');
INSERT INTO J VALUES('J7','仪器厂','南京');
COMMIT; INSERT INTO SPJ VALUES('S1','P1','J1',200);
INSERT INTO SPJ VALUES('S1','P1','J3',100);
INSERT INTO SPJ VALUES('S1','P1','J4',700);
INSERT INTO SPJ VALUES('S1','P2','J2',100);
INSERT INTO SPJ VALUES('S2','P3','J1',400);
INSERT INTO SPJ VALUES('S2','P3','J2',200);
INSERT INTO SPJ VALUES('S2','P3','J4',500);
INSERT INTO SPJ VALUES('S2','P3','J5',400);
INSERT INTO SPJ VALUES('S2','P5','J1',400);
INSERT INTO SPJ VALUES('S2','P5','J2',100);
INSERT INTO SPJ VALUES('S3','P1','J1',200);
INSERT INTO SPJ VALUES('S3','P3','J1',200);
INSERT INTO SPJ VALUES('S4','P5','J1',100);
INSERT INTO SPJ VALUES('S4','P6','J3',300);
INSERT INTO SPJ VALUES('S4','P6','J4',200);
INSERT INTO SPJ VALUES('S5','P2','J4',100);
INSERT INTO SPJ VALUES('S5','P3','J1',200);
INSERT INTO SPJ VALUES('S5','P6','J2',200);
INSERT INTO SPJ VALUES('S5','P6','J4',500);
COMMIT;
第二个数据库
CREATE TABLE PRODUCT
(
MAKER VARCHAR2(5) ,
MODEL VARCHAR2(12) PRIMARY KEY,
TYPE VARCHAR2(12)
);
CREATE TABLE PC
(
MODEL VARCHAR2(12) PRIMARY KEY,
SPEED NUMBER(10),
RAM NUMBER(10),
HD NUMBER(8,2),
CD VARCHAR2(4),
PRICE NUMBER(10),
CONSTRAINT PC_PRODUCT_MODEL FOREIGN KEY(MODEL)
REFERENCES PRODUCT(MODEL)
); CREATE TABLE LAPTOP
(
MODEL VARCHAR2(12) PRIMARY KEY,
SPEED NUMBER(10),
RAM NUMBER(10),
HD NUMBER(8,2),
SCREEN NUMBER(8,2),
PRICE NUMBER(10),
CONSTRAINT LAPTOP_PRODUCT_MODEL FOREIGN KEY(MODEL)
REFERENCES PRODUCT(MODEL)
);
CREATE TABLE PEINTER
(
MODEL VARCHAR2(12) PRIMARY KEY,
COLOR VARCHAR2(10),
TYPE VARCHAR2(10),
PRICE NUMBER(10),
CONSTRAINT PEINTER_PRODUCT_MODEL FOREIGN KEY(MODEL)
REFERENCES PRODUCT(MODEL)
); INSERT INTO PRODUCT VALUES('A','1001','PC');
INSERT INTO PRODUCT VALUES('A','1002','PC');
INSERT INTO PRODUCT VALUES('A','1003','PC');
INSERT INTO PRODUCT VALUES('B','1004','PC');
INSERT INTO PRODUCT VALUES('B','1006','PC');
INSERT INTO PRODUCT VALUES('B','3002','Printer');
INSERT INTO PRODUCT VALUES('B','3004','Printer');
INSERT INTO PRODUCT VALUES('C','1005','PC');
INSERT INTO PRODUCT VALUES('C','1007','PC');
INSERT INTO PRODUCT VALUES('D','1008','PC');
INSERT INTO PRODUCT VALUES('D','1009','PC');
INSERT INTO PRODUCT VALUES('D','1010','PC');
INSERT INTO PRODUCT VALUES('D','2001','Laptop');
INSERT INTO PRODUCT VALUES('D','2002','Laptop');
INSERT INTO PRODUCT VALUES('D','2003','Laptop');
INSERT INTO PRODUCT VALUES('D','3001','Printer');
INSERT INTO PRODUCT VALUES('D','3003','Printer');
INSERT INTO PRODUCT VALUES('E','2004','Laptop');
INSERT INTO PRODUCT VALUES('E','2008','Laptop');
INSERT INTO PRODUCT VALUES('F','2005','Laptop');
INSERT INTO PRODUCT VALUES('G','2006','Laptop');
INSERT INTO PRODUCT VALUES('G','2007','Laptop');
INSERT INTO PRODUCT VALUES('H','3005','Printer');
INSERT INTO PRODUCT VALUES('I','3006','Printer'); INSERT INTO PC VALUES('1001', 122,16,1.6,'6X',1595);
INSERT INTO PC VALUES('1002', 120,16,1.6,'6X',1399);
INSERT INTO PC VALUES('1003', 166,24,2.5,'6X',1899);
INSERT INTO PC VALUES('1004', 166,32,2.5,'8X',1999);
INSERT INTO PC VALUES('1005', 166,16,2 ,'8X',1999);
INSERT INTO PC VALUES('1006', 200,32,3.1,'8X',2099);
INSERT INTO PC VALUES('1007', 200,32,3.2,'8X',2349);
INSERT INTO PC VALUES('1008', 180,32,2 ,'8X',3699);
INSERT INTO PC VALUES('1009', 200,32,2.5,'8X',2599);
INSERT INTO PC VALUES('1010', 160,16,1.2,'8X',1495); INSERT INTO LAPTOP VALUES('2001', 100, 20, 1.1 ,9.5 ,1999);
INSERT INTO LAPTOP VALUES('2002', 117, 12, 0.75,11.3 ,2499);
INSERT INTO LAPTOP VALUES('2003', 117, 32, 1 ,10.4 ,3599);
INSERT INTO LAPTOP VALUES('2004', 133, 16, 1.1 ,11.2 ,3499);
INSERT INTO LAPTOP VALUES('2005', 133, 16, 1 ,11.3 ,2599);
INSERT INTO LAPTOP VALUES('2006', 120, 8 , 0.81,12.1 ,1999);
INSERT INTO LAPTOP VALUES('2007', 150, 16, 1.35,12.1 ,4799);
INSERT INTO LAPTOP VALUES('2008', 120, 16, 1.1 ,12.1 ,2009); INSERT INTO PEINTER VALUES('3001','TRUE' ,'Ink-jet',275);
INSERT INTO PEINTER VALUES('3002','TRUE' ,'Ink-jet',269);
INSERT INTO PEINTER VALUES('3003','FALSE' ,'Laser' ,829);
INSERT INTO PEINTER VALUES('3004','FALSE' ,'Laser' ,879);
INSERT INTO PEINTER VALUES('3005','FALSE' ,'Ink-jet',180);
INSERT INTO PEINTER VALUES('3006','TRUE' ,'Dry' ,470); DROP TABLE PC;
DROP TABLE LAPTOP;
DROP TABLE PEINTER;
DROP TABLE PRODUCT;
第一次ORACLE实验
ORACLE 实验一的更多相关文章
- 怎样让oracle实验本在不做实验时性能提升——win7下举例
怎样让oracle实验本在不做实验时性能提升--win7下举例 型号:ThinkPad E431 系统:WIN7 实验使用的笔记本不使用数据库时.建议将oracle关闭,使其释放占用的资源. orac ...
- ORACLE实验一-三
警告: 创建的触发器带有编译错误. SQL> show error;TRIGGER TRG_SCORE_AFT_ROW 出现错误: LINE/COL ERROR-------- -------- ...
- Oracle 实验四-七
shutdown immediateORA-01097: 无法在事务处理过程中关闭 - 请首先提交或回退 解决:先 "commit" 实验四 SQL Production :: C ...
- ORACLE 实验二
实验二:数据操纵 实验学时:4学时 实验类型:综合型 实验要求:必修 一.实验目的 1.掌握SQL数据查询语句: 2.掌握SQL聚集函数的使用. 3.掌握SQL插入.改动.删除语句的使用. 二.实验内 ...
- Oracle实验手册
oracle安装 安装virtualbox: # yum install gcc kernel-devel kernel-headers # yum install virtualbox-5.... ...
- 随笔:Oracle实验课(软件系统开发综合实践)B/S结构;java——图书管理系统
以上是我需要注意的要求 -------------------------------此处为放假分割线-1-20----------------------------------- 初步完成了整个程 ...
- oracle上机实验内容
这是oracle实验的部分代码,我花了一中午做的. 第一次上机内容 实验目的:熟悉ORACLE11G的环境 实验内容: 第二次上机内容 实验目标:掌握oracle体系结构,掌握sqlplus的运行环境 ...
- 浅析Oracle PL/SQL 学习--未完待续
这是一篇关于Oracle Pl/SQL数据库编程的课程学习分享... 首先说明几点: 学习这门课程之前,已经学过并且掌握一些基础的SQL语句.数据库结构分析.ER图设计等知识: 这里也只是较为大概地将 ...
- Oracle 的DBA考证
转自 :https://www.cnblogs.com/chunge2050/archive/2013/04/16/3023730.html 详细的了解了几天之后,总结起来就是oracle为DBA认证 ...
随机推荐
- 漫谈并发编程(二):java线程的创建与基本控制
java线程的创建 定义任务 在java中使用任务这个名词来表示一个线程控制流的代码段,用Runnable接口来标记一个任务,该接口的run方法为线程运行的代码段. public ...
- MyEclipse 2013 新功能介绍
http://pan.baidu.com/share/link?shareid=3310814720&uk=4012618212 下载地址 HTML5 Mobile Projects MyEc ...
- Python数据结构之注意事项
1.列表 列表是Python中使用最频繁的数据结构,列表提供很多函数操作,比如下标存取,分片,index,append,remove等等. 例如: list=[1,2,'hello','python ...
- JVM必备指南(转)
本文由 ImportNew - xiafei 翻译自 anturis.欢迎加入翻译小组.转载请见文末要求. 简介 Java虚拟机(JVM)是Java应用的运行环境,从一般意义上来讲,JVM是通过规范来 ...
- 正則表達式 取出img标签 保存于指定路径
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- JSP生成word文件
1.jsp生成word文件,直接改动jsp格式: <%@ page contentType="application/vnd.ms-word;charset=GB2312"% ...
- Cocos2d-x 脚本语言Lua中的面向对象
Cocos2d-x 脚本语言Lua中的面向对象 面向对象不是针对某一门语言,而是一种思想.在面向过程的语言也能够使用面向对象的思想来进行编程. 在Lua中,并没有面向对象的概念存在,没有类的定义和子类 ...
- Qt 3D研究(九):尝试第二边缘检测方法
Qt 3D研究(九):尝试第二边缘检测方法 三维应用程序,通过FBO.将3D图像渲染成纹理,然后对渲染成的纹理进行图像处理,终于显示在屏幕上的.是风格化后的图案.上一次我使用了一种普通的图像处理方法: ...
- 足球和oracle列(4):巴西惨败于德国,认为,差额RAC拓扑控制!
足球与oracle系列(4):从巴西慘败于德国,想到,差异的RAC拓扑对照! 前期回想: 本来想说今晚,回头一想,应该是今早第二场半决赛就要开战了!先来回味一下之前的比赛,本届8支小组赛第一名已经所有 ...
- 完全合并C++面试题
C++面试题 1.是不是父母写了virtual 功能,假设子类重写它的功能不virtual ,也使多态性? virtual修饰符隐形遗传. private 还集成.问权限而已 virtual可加可不加 ...