实验一:数据定义

实验学时: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 实验一的更多相关文章

  1. 怎样让oracle实验本在不做实验时性能提升——win7下举例

    怎样让oracle实验本在不做实验时性能提升--win7下举例 型号:ThinkPad E431 系统:WIN7 实验使用的笔记本不使用数据库时.建议将oracle关闭,使其释放占用的资源. orac ...

  2. ORACLE实验一-三

    警告: 创建的触发器带有编译错误. SQL> show error;TRIGGER TRG_SCORE_AFT_ROW 出现错误: LINE/COL ERROR-------- -------- ...

  3. Oracle 实验四-七

    shutdown immediateORA-01097: 无法在事务处理过程中关闭 - 请首先提交或回退 解决:先 "commit" 实验四 SQL Production :: C ...

  4. ORACLE 实验二

    实验二:数据操纵 实验学时:4学时 实验类型:综合型 实验要求:必修 一.实验目的 1.掌握SQL数据查询语句: 2.掌握SQL聚集函数的使用. 3.掌握SQL插入.改动.删除语句的使用. 二.实验内 ...

  5. Oracle实验手册

    oracle安装 安装virtualbox: # yum install gcc kernel-devel kernel-headers # yum install virtualbox-5.... ...

  6. 随笔:Oracle实验课(软件系统开发综合实践)B/S结构;java——图书管理系统

    以上是我需要注意的要求 -------------------------------此处为放假分割线-1-20----------------------------------- 初步完成了整个程 ...

  7. oracle上机实验内容

    这是oracle实验的部分代码,我花了一中午做的. 第一次上机内容 实验目的:熟悉ORACLE11G的环境 实验内容: 第二次上机内容 实验目标:掌握oracle体系结构,掌握sqlplus的运行环境 ...

  8. 浅析Oracle PL/SQL 学习--未完待续

    这是一篇关于Oracle Pl/SQL数据库编程的课程学习分享... 首先说明几点: 学习这门课程之前,已经学过并且掌握一些基础的SQL语句.数据库结构分析.ER图设计等知识: 这里也只是较为大概地将 ...

  9. Oracle 的DBA考证

    转自 :https://www.cnblogs.com/chunge2050/archive/2013/04/16/3023730.html 详细的了解了几天之后,总结起来就是oracle为DBA认证 ...

随机推荐

  1. Android SDK r23

    SDK Tools Only Platform Package Size MD5 Checksum Windows 32 & 64-bit android-sdk_r23-windows.zi ...

  2. gem5 设定checkpiont以及从checkpoint开始运行

    同spec2006中间bzip2一个例子,如何设置checkpoint .以及从checkpoint继续以启动运行.这样做的目的是为了,采纳automic运行N指令,然后detailed运行M指令. ...

  3. 【译】ASP.NET MVC 5 教程 - 5:使用 SQL 服务器 LocalDB 创建连接字符串

    原文:[译]ASP.NET MVC 5 教程 - 5:使用 SQL 服务器 LocalDB 创建连接字符串 在上一节中,我们创建了MovieDBContext 类来连接数据库.处理Movie 对象和数 ...

  4. H264 编解码框架简单介绍

    阅读完H264/AVC 编解码器的介绍,脑海中仅仅是留下下面三条: 1.H264并没有明白规定一个编解码器怎样实现,仅仅是规定了一个编码后的视频比特流的句法,和该比特流的解码方法,这个与MPEG 类似 ...

  5. NET通用平台

    NET通用平台.通用权限.易扩展.多语言.多平台架构框架 先拿出我半前年前平台的设计初稿,经过半年的努力我已经完成了该设计稿的所有功能.并且理念已经远远超出该设计稿. 下面是一些博友对我贴子的评价: ...

  6. 【JavaEE基础】在Java中如何使用jdbc连接Sql2008数据库

    我们在javaEE的开发中,肯定是要用到数据库的,那么在javaEE的开发中,是如何使用代码实现和SQL2008的连接的呢?在这一篇文章中,我将讲解如何最简单的使用jdbc进行SQL2008的数据库的 ...

  7. 内存泄露检測及cvClone造成的泄露

    调了几个小时,到最后发现内存泄露的原因是opencv的cvClone函数,採用cvCopy函数后,问题解决. vs2010使用vld进行内存泄露检測 (1) 下载vld工具 (2) 将D:\Progr ...

  8. vps自己搭建VPN(转)

    1.购买一个VPS: https://www.pzea.com/North-America-openvz-vps.html 2.下载putty软件,进行vpn安装: http://www.chiark ...

  9. JDK1.8源码分析之HashMap(一) (转)

    一.前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也 ...

  10. 内网port映射具体解释(花生壳)

    关于怎样建立服务器的解答. 一.花生壳的作用 首先,我们先来了解一下花生壳的究竟有什么作用.由于ADSL每次拨号上网所获得的IP地址每次都是不同的,花生壳起到的作用就是方便用户訪问我们的server( ...