oracle实验2

更新时间:2023-09-25 11:15:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《数据库原理与应用》实验报告

实验名称: 学 号:

数据定义和查询

班 级: 姓 名:

计算机143

一、实验目的

1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。 2、掌握使用SQL语句修改表的结构。

3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。

-1-

二、实验对象

1.使用SQL语句建立4个关系,如下:

供应商表S (Sno, Sname, Ctiy)

零件表P(Pno, Pname, Color, Weight) 工程项目表J(Jno, Jname, City)

供应情况表 SPJ(Sno, Pno, Jno, QTY)

其中:

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商所在城市(CITY)组成;

零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;

工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量组成(QTY),表示某供应商供应某种零件给某工程项目的数量为QTY。

数据如下:

S表

SNO S1 S2 S3 S4 S5

P表

PNO P1 P2 P3 P4 P5 P6

J表

JNO J1 J2 J3

SNAME 精益 盛锡 东方红 丰泰盛 为民

CITY 天津 北京 北京 天津 上海

J4 J5 J6 J7 造船厂 机车厂 无线电厂 半导体厂 SPJ表

天津 唐山 常州 南京

SNO S1 S1 S1 S1 S2 S2 S2 S2 S2 S3 S3 S4 S4 S4 S5 S5 -2-

PNO P1 P1 P1 P2 P3 P3 P3 P3 P5 P1 P3 P5 P6 P6 P2 P3 JNO J1 J3 J4 J2 J1 J2 J4 J5 J1 J1 J1 J1 J3 J4 J4 J1 QTY 200 100 700 100 400 200 500 400 400 200 200 100 300 200 100 200 PNAME COLOR WEIGHT

12 螺母 红

17 螺栓 绿

14 螺丝刀 蓝

14 螺丝刀 红

40 凸轮 蓝

30 齿轮 红

JNAME 三建

一汽 弹簧厂

CITY 北京 长春 天津

S5 S5 P6 P6 J2 J4 200 500

打开SQL窗口,在窗口中利用Creat语句,将每个表中各自需要的列和相应的数据输入,则可实现表S、P、J和SPJ表的建立。如图1。

图1. 创建表格

-3-

三、实验过程

1.要求:

(1) 创建每个关系的主键,有外键的创建外键。

S表中的Sno、P表中的Pno和J表中的Jno,只需在相应的列后加Primary Key即可。SPJ中的Sno、Pno和Jno需要在单独写一行,以确保其表级完整性。在SPJ表中利用Foreign Key()references()语句,创建相应的外键。如图1所示。

(2) S表中的Sname属性列的取值唯一

在Sname的属性列后,加UNIQUE即可。如图2所示。

图2. 属性列取值唯一

(3) P表中weight属性列的取值范围在1-50之间

在Weight属性列后,利用check语句,加相应的约束条件即可。如图3所示。

图3. 设置范围

(4) J表中的Jname取值不能为空并且是唯一的

在Jname的属性列,加UNIQUE使其唯一,再加not NULL则Jname取值不为空。如图4所示。

图4. 取值唯一且不为空

(5) SPJ表中QTY属性列的数据类型必须为NUMBER

定义QTY的数据类型为NUMBER。如图5。

图5. 定义数据类型

-4-

2.用SQL语句完成以下操作:

(1)给S表增加Sphone和Semail两个属性列,分别用来存放供应商的联系电话

和电子信箱。 如图6所示。

利用Alter 和ADD语句完成对S表的属性列的添加。如图6所示。

图6. 增添属性列

(2)删除Jname属性列取值唯一的约束。

先查明,Jname约束条件的条件名,再利用Alter和Drop语句,完成删除。

如图7所示。

图7. 取值唯一

(3)将QTY属性列的数据类型修改为Integer型。

先查明,利用Alter和modify语句对QTY属性列的数据类型进行修改。

如图8所示。(非“”内的内容可忽略大小写)

图8. 修改数据类型

(4)删除S表中的属性列Semail。

用Alter和Drop语句删除属性列,必须说明删除的为列,还是行。 如图9所示。

图9. 删除属性列

-5-

本文来源:https://www.bwwdw.com/article/k0nd.html

Top