oracle实验2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库原理与应用》实验报告
实验名称:数据定义和查询班级:计算机143 学号:姓名:
一、实验目的
1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。
2、掌握使用SQL语句修改表的结构。
3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。
二、实验对象
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 SNAME CITY
S1 精益天津
S2 盛锡北京
S3 东方红北京
S4 丰泰盛天津
S5 为民上海
P表
PNO PNAME COLOR WEIGHT
P1 螺母红12
P2 螺栓绿17
P3 螺丝刀蓝14
P4 螺丝刀红14
P5 凸轮蓝40
P6 齿轮红30
J表
JNO JNAME CITY
J1 三建北京
J2 一汽长春
J3 弹簧厂天津
J4 造船厂天津
J5 机车厂唐山
J6 无线电厂常州
J7 半导体厂南京
SPJ表
SNO PNO JNO QTY S1 P1 J1 200 S1 P1 J3 100 S1 P1 J4 700 S1 P2 J2 100 S2 P3 J1 400 S2 P3 J2 200 S2 P3 J4 500 S2 P3 J5 400 S2 P5 J1 400 S3 P1 J1 200 S3 P3 J1 200 S4 P5 J1 100 S4 P6 J3 300 S4 P6 J4 200 S5 P2 J4 100
S5 P6 J4 500
打开SQL窗口,在窗口中利用Creat语句,将每个表中各自需要的列和相应的数据输入,则可实现表S、P、J和SPJ表的建立。如图1。
图1. 创建表格
三、实验过程
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. 定义数据类型
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. 删除属性列
3.在J表的Jname属性列上创建唯一性索引。
利用Create和INDEX语句,建立索引。建立在相应的表的相应属性列上。
由于为唯一条件,所以需加UNIQUE。
如图10所示。
图10. 建立索引
4.练习EXP和IMP命令的使用方法,使用EXP命令将数据表导出。
5.完成以下查询:
(1)查询所有供应商所在的城市。
Select语句选择所要查询的属性列,From语句选择所要查询属性列所在的表。
从S表中查找City的属性列。
如图11所示。
图11. 简单查询
(2)查询零件重量在10-20之间(包括10和20)的零件名和颜色。
利用Select语句选择所要查询的属性列,From语句选择所要查询属性列
所在的表,Where语句后面加相应的条件。
从P表中查找Pname,Color的属性列,并且加所需条件。
如图12所示。
图12. 条件查询