天津理工大学计算机专业数据库实验一

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
学院(系)名称:计算机与通信工程学院
姓名范学号2009 专业计算机科学与技术
班级中加4班实验项目数据库创建与交互式SQL数据操作课程名称数据库系统概论课程代码0660096
实验时间2011年10月19日实验地点主校区7—219
批改意见成绩
教师签字:
一、实验目的
二、实验的软硬件环境
软件环境:Windows 2000
MS SQL Server
硬件环境:P4 2.4GHz 256内存
三、实验内容
1.熟悉SQL2008基本操作:包括服务器的启动、关闭;数据的备份、恢复;交互式SQL 窗口的打开;基本的可视化数据操作。

2.创建数据库,建立基本表,用SQL语句建立所需要的基本表,不得少于三个,并插入元组(课本第三章
3.3节例1-7,全做)。

3.基本表的修改与删除(课本第三章3.3节例8-12,全做)。

4.索引的建立与删除(课本第三章3.3节例13-15,全做)
5.针对单个基本表的查询。

(课本第三章3.4节例1-例32,任选6个查询,覆盖单条件、多条件、去除重复行、使用别名、排序子句的使用、在目标列中包含一些计算值以及分组子句的使用等。

6.多表连接查询(课本第三章3.4节例33-例38,任选5个)。

7.嵌套查询(课本第三章3.4节例39-例47,任选5个)。

8.集合查询(课本第三章3.4节例48-例52,任选3个)。

9.复杂更新操作,带子查询的插入、修改和删除(选做)
10.个人自拟题目
实验前准备工作:
供应商-工程-零件”应用场景概念模型(用E-R图表示)
概念模型转换成关系模型:
S:
主码:SNO;
外码:SNO
数据类型和约束条件:SNO CHAR(3),SNAME VARCHAR(5),STAT SMALLINT,CITY CHAR(20) P:
主码: PNO
外码:PNO
数据类型和约束条件:PNO CHAR(3),PNAME VARCHAR(20),COLOR CHAR(2),
WEIGHT_ SMALLINT,
J:
主码:JNO
外码:JNO
数据类型和约束条件:JNO CHAR(3),JNAME VARCHAR(20),CITY CHAR(5) SPJ:
数据类型和约束条件:SNO CHAR(3),PNO CHAR(3),JNO CHAR(3),QTY INT,
四、实验过程及结果
实验所基于的表
供应商表S(SNO,SNAME,STAT,CITY);
零件表P(PNO,PNAME,COLOR,WEIGHT);
工程项目表J(JNO,JNAME,CITY);
供应情况表SPJ(SNO,PNO,JNO,QTY);
1.打开SQL Server 2008登录如图:使用默认设置单击连接登录
2.新建数据库:自己输入一个数据库名称
3.单机系统的新建查询开始进行各类查询操作:
4.使用SQL语言在数据库fanjixiang中创建表:供应商表S
CREATE TABLE S
(SNO CHAR(3) PRIMARY KEY , //以SNO作为主键SNAME V ARCHAR(50),
STAT SMALLINT,
CITY CHAR(20)
);
单机执行后刷新表
刷新后如图表S建立成功!
依次创建零件表P 工程项目表J 供应情况表SPJ
所有表建好后如图一共有四个表
表的建立和删除
建立student表
删除表student
5.向表中添加元组
向S表中插入元素时,若重复插入,由于设置了主键,所以会报错
所有元素插入完后右键单击表刷新,查看表S中的内容
说明所有都插入成功~
6.删除,修改表中的元祖的值以P表为例
P表
给P表增加一新列名为"Product_Date",执行以下代码
效果图
删除PNO="P4"的行,执行
刷新之后的效果图为:
PNO="P4"的行已删除将P3的名称改为"螺丝刀",执行以下代码
之后效果如图
最后完善P表如图
7.J表,
8.SPJ表如图
9.索引的建立与删除(以P,J表为例)
P表中建立以WEIGTH_为降序的聚簇索引
查看索引文件中有
在J表中建立以JNO降序的唯一索引执行代码为
查看索引文件中有
是唯一的。

删除索引DEX_J
删除成功
10.针对单个基本表的查询
1.从供应情况表SPJ中查询出QTY>300的SNO,JNO和QTY
从供应情况表SPJ中查询出所有不重复的QTY
2.查询在天津的工程结果如图
3.查询P表中SNO和WEIGHT_并将PNO化为小写,将WEIGHT_加50并且将P表中的字段名改为编号,名称,颜色,重量
4.从SPJ表中查询供应量在400~600之间的所有信息
SELECT*
FROM SPJ
WHERE QTY BETWEEN 400AND 600;
5.字符匹配,在J表中查询以“北”字开头地址的工程号和工程名集地址
查询出北京
6.查询零件的总重量
7.查询供应量QTY>400的供应商数量且不重复将列名置为numberOfS
8.查询零件的平均质量
查询出P表中的零件的平均重量为21g
9.查询零件编号和相应的供应商供应数量
SELECT PNO零件编号,COUNT(DISTINCT SNO)供应商数量
FROM SPJ
GROUP BY PNO;
注意加标记的地方,此时一定要
为不能重复
说明提供零件P1的供应商有2家,最后以PNO分组
11.多表连接查询
以学生选课表为例
Student
Course
Scourse(选课结果统计)
I.等值于非等值连接查询
查询每个学生及其选课成绩的情况,没有选课的同学不显示
结果以学号排序
用自然连接查询上面的结果
去掉了学号
II.自身连接查询
查询每一门课程的简介先修课(即学该门课之前必须学习的课程)
III.外连接
查询学生选课情况对比等值于非等值查询的表,没有选课的同学仍然显示其个人信息,选课栏置空
IV.符合条件查询
查询选3号课程并且成绩在75~85之间的所有学生
查询每个学生的学号,姓名,性别,地址以及所选课程的名称和成绩(涉及到3个标的查询)
11.嵌套查询
I.查询和付筱同学选了相同课程的学生号码,名字,性别和课程号
用了两个子查询II.查询选了"信息系统"课程的学生的学号和姓名和电话号码和课程名
III.找出每个学生超过他选修课程平均成绩的课程号
带有EXISTS谓词的子查询
IV.查询所有选修8号课程的学生学号和姓名
VI.查询没有选修3号课程的同学的学号和姓名
12.集合查询
I.查询选修了课程1或者或者是2号课程的学生集合的并集
II.查询既选了3号可又选了6号课的学生(求选了3号课和6号课学生的交集)
III.查询学习成绩不低于85分与学习成绩在95分以上的同学的差集
选做题
复杂更新操作,带子查询的插入、修改和删除
1.将所有选课程的同学的成绩减10分
2.将所有学生的成绩加上1
3.删除所有选了"信息系统"课程的学生选课记录
自拟题
将所有学生的成绩置为零
以零件供应的表为例:
查询天津的供应商供应情况
五.问题及体会
1.安装SQL Server 2008软件容易报错,甚至安装不上;
2.在建表时,容易忘记创建主码和外码,这样以来导致多次创建表格的麻烦;
3.在删除表时,用DROP TABLE **** CASCADE;会报错,删除失败,如果不加CASCADE侧可以
正常删除表,不知道为什么;
4.在表插入的操作中总是报错,说外键冲突;
5.在多表进行连接时,需要利用主码和外码进行外连接,容易犯错~
6.数据库是一个庞大的工程,利用图形界面来创建表格后,再输入数据,需要仔细~
大学啊不错啊,好好学习,不要耽误了青春,但是是这个专业坑爹啊,,找好自己的方向,不要被这个专业误导了啊,,
理工的学妹,学弟们,你说呢,,哈哈哈哈,嘿嘿联系/。

相关文档
最新文档