桂林理工《数据库原理及应用》实验指导改版.docx
- 文档编号:24301347
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:18
- 大小:123.93KB
桂林理工《数据库原理及应用》实验指导改版.docx
《桂林理工《数据库原理及应用》实验指导改版.docx》由会员分享,可在线阅读,更多相关《桂林理工《数据库原理及应用》实验指导改版.docx(18页珍藏版)》请在冰豆网上搜索。
桂林理工《数据库原理及应用》实验指导改版
数据库原理及应用(本科)
实验指导书
-计算机信息教研室-
桂林理工大学信息科学与工程学院
二○一二年五月
目录
实验1创建数据库与数据表……………………………………………………………2
实验2简单查询和连接查询……………………………………………………………10
实验3嵌套查询和集合查询……………………………………………………………12
实验4数据完整性………………………………………………………………………14
时间:
机房号:
得分:
实验1创建数据库与数据表
实验目的:
1.熟悉SQLSERVER环境;
2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER和DROP命令;
3.掌握数据表的创建和数据记录的插入方法。
实验内容:
1.创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE和选修SC三个数据表,各表中的数据如下所示:
学生STUDENT:
Sno
Sname
Ssex
Sage
Sdept
95001
李勇
M
20
CS
95002
刘晨
F
19
IS
95003
王敏
F
18
MA
95004
张立
M
18
IS
课程COURSE:
Cno
Cname
Cpno
Ccredit
1
数据库
5
4
2
数学
2
3
信息系统
1
4
4
操作系统
6
3
5
数据结构
7
4
6
数据处理
2
7
C语言
6
4
选修SC:
Sno
Cno
Grade
95001
1
92
95001
2
85
95001
3
88
95002
2
90
95002
3
80
2.创建供应系统“GYXT”数据库,其中包括供应商表S、零件表P、工程项目表J和供应情况表SPJ四个数据表,各表中数据如下所示。
供应商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
S2
P5
J2
100
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
P3
J1
200
S5
P6
J2
200
S5
P6
J4
500
实验步骤:
1.创建教学管理“JXGL”数据库。
(注:
可采用可视窗体和SQL命令两种方法创建。
以下是SQL命令方法)
(1)创建教学管理“JXGL”数据库。
在命令窗格中输入如下命令,然后单击“运行”钮执行该命令。
CREATEDATABASEJXGL;
(2)清空命令窗格后,在JXGL数据库中建立STUDENT表,并插入记录,然后执行。
CREATETABLESTUDENT
(Snochar(5)notnullunique,
Snamechar(20)notnullunique,
Ssexchar
(1),
Sageint,
Sdeptchar(20));
INSERTINTOSTUDENTVALUES(‘95001’,’李勇’,’M’,20,’CS’);
INSERTINTOSTUDENTVALUES(‘95002’,’刘晨’,’F’,19,’IS’);
INSERTINTOSTUDENTVALUES(‘95003’,’王敏’,’F’,18,’MA’);
INSERTINTOSTUDENTVALUES(‘95004’,’张立’,’M’,18,’IS’);
(3)清空查询窗格后,JXGL数据库中建立COURSE表,并插入记录,然后执行。
CREATETABLECOURSE
(Cnochar
(2)notnullPRIMARYKEY(Cno),
Cnamechar(20),
Cpnochar
(2),
Ccreditsmallint);
INSERTINTOCOURSEVALUES(‘1’,’数据库’,’5’,4);
INSERTINTOCOURSEVALUES(‘2’,’数学’,’’,2);
INSERTINTOCOURSEVALUES(‘3’,’信息系统’,’1’,4);
INSERTINTOCOURSEVALUES(‘4’,’操作系统’,’6’,3);
INSERTINTOCOURSEVALUES(‘5’,’数据结构’,’7’,4);
INSERTINTOCOURSEVALUES(‘6’,’数据处理’,’’,2);
INSERTINTOCOURSEVALUES(‘7’,’C语言’,’6’,4);
(4)清空查询窗格后,JXGL数据库中建立SC表,并插入记录,然后执行。
CREATETABLESC
(Snochar(5)notnull,
Cnochar
(2)notnull,
Gradesmallint,
PRIMARYKEY(Sno,Cno),
FOREIGNKEY(Sno)REFERENCESSTUDENT(Sno),
FOREIGNKEY(Cno)REFERENCESCOURSE(Cno));
INSERTINTOSCVALUES(‘95001’,‘1’,92);
INSERTINTOSCVALUES(‘95001’,‘2’,85);
INSERTINTOSCVALUES(‘95001’,‘3’,88);
INSERTINTOSCVALUES(‘95002’,‘2’,90);
INSERTINTOSCVALUES(‘95002’,‘3’,80);
(5)查看三个表中的内容。
分别执行以下命令,查看STUDENT、COURSE和SC数据表中的内容。
SELECT*FROMSTUDENT;
SELECT*FROMCOURSE;
SELECT*FROMSC;
(6)ALTERTABLE、DROPTABLE、DROPDATABASE命令运用。
①向STUDENT表增加“入学时间”列,其数据类型为日期型,用SELECT命令查看表中内容。
ALTERTABLESTUDENTADDSCOMEDATETIME;
SELECT*FROMSTUDENT;
②删除“入学时间”列,再用SELECT命令查看表中内容。
ALTERTABLESTUDENTDROPCOLUMNSCOME;
SELECT*FROMSTUDENT;
③删除数据表。
DROPTABLESC;
DROPTABLESTUDENT;
DROPTABLECOURSE;
④删除数据库命令。
切换到其他任意数据库,然后可用如下命令删除JXGL数据库。
DROPDATABASEJXGL;
重复
(1)~(4)过程,建立数据库备以后的查询使用。
2.创建供应系统“GYXT”数据库。
(注:
可采用可视窗体和SQL命令两种方法创建。
)
下面写出实现如下操作的SQL语句:
(1)创建供应系统“GYXT”数据库。
(2)建立供应商表S。
(3)建立零件表P。
(4)建立工程项目表J。
(5)建立供应情况表SPJ。
(6)应用INSERTINTO命令将相应数据写入到供应商表S、零件表P、工程项目表J和供应情况表SPJ四个数据表。
时间:
机房号:
得分:
实验2简单查询和连接查询
实验目的:
1.熟练掌握SQLServer查询分析器的使用方法,加深对标准SQL查询语句的理解。
2.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
实验内容:
1.基于实验一创建的教学管理JXGL数据库,实现数据的基本查询操作。
2.基于实验一创建的供应系统GYXT数据库,实现数据的基本查询操作。
实验步骤:
写出下列操作的SQL语句。
1.在教学管理JXGL数据库中进行如下操作:
(1)求数学系学生的学号和姓名。
(2)求选修了课程的学生学号。
(3)求选修了数学课的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)求选修数学课其且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数0.8输出。
(5)求数学系或计算机系姓刘的学生的信息。
(6)求缺少了成绩的学生的学号和课程号。
(7)查询每个学生的情况以及他(她)所选修的课程。
(8)求学生的学号、姓名、选修的课程名及成绩。
(9)求选修数学课且成绩为90分以上的学生学号、姓名、及成绩。
(10)查询每一门课的间接先行课(即先行课的先行课)。
2.在供应系统GYXT数据库中进行如下操作:
(1)求供应工程J1零件的供应商号SNO。
(2)求供应工程J1零件P1的供应商号SNO。
(3)统计每种零件的供应总量。
时间:
机房号:
得分:
实验3嵌套查询和集合查询
实验目的:
1.熟练掌握SQLServer查询分析器的使用方法,加深对标准SQL查询语句的理解。
2.熟练掌握数据查询中的嵌套、分组、统计、计算和组合的操作方法。
实验内容:
1.基于实验一创建的教学管理JXGL数据库,实现数据的高级查询操作。
2.基于实验一创建的供应系统GYXT数据库,实现数据的基本查询操作。
实验步骤:
写出下列操作的SQL语句。
1.在教学管理JXGL数据库中进行如下操作:
(1)求选修了数学的学生的学号和姓名。
(2)求数学课程成绩高于李勇的学生学号和成绩。
(3)求其他系中年龄小于计算机系年龄最大者的学生。
(4)求其他系中比计算机系学生年龄都小的学生。
(5)求选修了数学课的学生姓名。
(6)求没有选修数学课的学生姓名。
(7)查询选修了全部课程的学生的姓名。
(8)求至少选修了学号为“95002”的学生所选修的全部课程的学生学号和姓名。
(9)求选修各门课的人数及平均成绩。
(10)求选修课程在2门以上且都及格的学生号及总平均分。
(11)求95级学生中选修课程在2门以上且都及格的学生号及总平均分,并按平均成绩排序。
(12)统计每个人及格的成绩的平均值,及格的门数,结果按平均成绩降序,及格门数降序排列。
(13)统计所有课程均及格学生的平均成绩,及格的门数,结果按平均成绩降序,及格门数降序排列。
2.在供应系统GYXT数据库中进行如下操作:
(1)求供应工程J1红色零件的供应商号SNO。
(2)求零件供应总量在1000种以上的供应商名字。
时间:
机房号:
得分:
实验4数据完整性
实验目的:
1.了解SQLServer用约束来维护数据完整性的机制。
2.掌握在企业管理器和查询分析器中如何创建、使用及删除约束的方法。
实验内容:
1.基于实验一创建的教学管理JXGL数据库,实现约束的创建、查看和删除操作。
2.创建人事关系RSGX数据库及其中的职工数据表和部门数据表,并实现完整性约束条件的定义。
实验步骤:
约束是SQLServer提供的自动强制数据完整性的一种方法,它是通过定义列的取值规则来维护数据的完整性。
常用的约束是NOTNULL(非空)、CHECK(检查)、UNIQUE(惟一)、PRIMARYKEY(主键)、FOREIGNKEY(外键)和DEFALT(默认)约束。
1.在教学管理JXGL数据库中进行如下操作:
(1)建立一个CITY表(CityNo,CityName),将CityNo指定为主键。
企业管理器方法:
①在JXGL数据库中创建CITY表,其方法见实验1。
②打开企业管理器,展开JXGL数据库下的“表”文件夹,在右边的详细窗格中选择要创建约束的表CITY,右击该表,选择“设计表”命令,启动表设计器。
在表设计器中,右击需要设为主键的字段CityNo,选择“设置主键”命令其左侧将出现一个钥匙样图标。
设置完毕,关闭表设计器。
查询分析器方法:
①用SQL语句创建主键,可使用CREATETABLE命令完成:
CREATETABLECITY
(CityNoCHAR
(2)CONSTRAINTc1PRIMARYKEY,
CityNameVARCHAR(30)NOTNULL);
②若创建表时没有设置主键,也可以使用ALTERTABLE命令为已存在的表创建主键约束:
ALTERTABLECITYADDCONSTRAINTc1PRIMARYKEY(CityNo);
其中c1为主键约束名称。
(2)为JXGL数据库中的CITY表,为其“CityName”创建惟一约束。
企业管理器方法:
①在企业管理器中,选择设置惟一约束的CITY表,打开表设计器。
②在表设计器中,右击CityName字段,选择“索引/键”命令,出现“属性”对话框,并进入“索引/键”选项卡。
③在该选项卡中,单击“新建”按钮,然后在“索引名”文本框中输入惟一约束名称,再从列名选项的下拉列表框中选择字段名称(如“CityName”),最后选择“创建UNIQUE”复选框和“约束”单选框,如图5.1所示。
单击“关闭”按钮,完成惟一约束的创建。
图5.1创建惟一约束对话框图5.2设置检查约束
查询分析器方法:
为已存在的表创建惟一约束,SQL语句如下:
ALTERTABLECITYADDCONSTRAINTc2UNIQUE(CityName);
(3)为JXGL数据库中的SC表,为其“GRADE”创建检查约束。
企业管理器方法:
①在企业管理器中,选择设置检查约束的SC表,打开表设计器。
②在表设计器中,右击GRADE字段,选择“CHECK约束”命令,出现“属性”对话框,并进入“CHECK约束”选项卡。
③在该选项卡中,单击“新建”按钮,然后在“约束名”文本框中输入惟一约束名称,再在“约束表达式”文本框中输入约束条件“GRADE>=0ANDGRADE<=100”,如图5.2所示。
单击“关闭”按钮,完成检查约束的创建。
查询分析器方法:
为已存在的表创建检查约束,SQL语句如下:
ALTERTABLESCADDCONSTRAINTc3CHECK(GRADE>=0ANDGRADE<=100);
(4)为JXGL数据库中的STUDENT表,为其“Ssex”创建默认约束’M’。
企业管理器方法:
①在企业管理器中,选择设置默认约束的STUDENT表,打开表设计器。
②在表设计器中,选择Ssex字段,在默认值栏中输入“’M’”即可,如图5.3所示。
单击“关闭”按钮,完成默认约束的创建。
查询分析器方法:
为已存在的表创建默认约束,SQL语句如下:
ALTERTABLESTUDENTADDCONSTRAINTc4DEFAULT‘M’FORSsex;
图5.3创建默认约束图5.4创建外键约束
(5)为JXGL数据库中的SC表,为其“Sno”创建外键约束。
企业管理器方法:
①在企业管理器中,选择设置外键约束的SC表,打开表设计器。
②鼠标右击,选择“关系”命令,打开“属性”对话框的“关系”选项卡。
③在该选项卡中,单击“新建”按钮,从主键表下拉列表中选择外键引用表STUDENT,并在其下拉列表框中选择外键引用的SNO列;在外键表下拉表框中选择要创建外键的SC表,并从其下拉表框中选择要创建外键约束的SNO列,如图5.4所示。
单击“关闭”按钮,完成外键约束的创建。
查询分析器方法:
为已存在的表创建外键约束,SQL语句如下:
ALTERTABLESCADDCONSTRAINTc5FOREIGNKEY(Sno)REFERENCESSTUDENT(Sno);
(6)查看约束的定义
在企业管理器中,选择要查看约束的表,打开表设计器,单击鼠标右键,分别选择“索引/键”、“关系”、“CHECK”命令,可以查看各类约束。
(7)删除约束
企业管理器方法:
在企业管理器的表设计器中,可以删除主键、去掉默认值。
单击鼠标右键,分别选择“索引/键”、“关系”、“CHECK”命令,可以删除各类约束。
查询分析器方法:
删除约束的SQL语句格式为:
ALTERTABLE<表名>DROPCONSTRAINT<约束名>;
例如,删除上例在JXGL数据库中为SC表的“Sno”列创建的外键约束。
ALTERTABLESCDROPCONSTRAINTc5;
2.创建人事关系RSGX数据库,并定义职工和部门两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;
部门(部门号,名称,经理名,电话),其中部门号为主码;
要求在模式中完成以下完整性约束条件的定义:
(1)定义每个模式的主码;
(2)定义参照完整性;
(3)定义职工年龄不得超过60岁。
附录一:
实验课考核办法
上机实验是《数据库系统原理》这门课程的重要环节。
通过基于关系型网络数据库管理系统SQLServer的上机实验,使学生进一步了解关系数据模型及关系数据库管理系统的基本原理和标准的SQL语言的使用。
本课程的实验环境:
服务器使用WINDOWS2000SERVER操作系统,并安装SQLServer2000标准版数据库软件;客户端操作系统为WINDOWS。
实验方式和基本要求:
实验一人一组,要求学生在规定时间内独立完成操作,并在实验结束后提交实验报告。
结合实验纪律、出勤情况、实验操作、综合实验报告,分五级给出成绩,评分标准如下:
优秀:
出勤满,实验纪律好,听从指导老师指挥,动手能力强,综合试验数据处理正确,报告分析思路清晰,字迹工整。
良好:
出勤满,实验纪律好,听从指导老师指挥,动手能力较强,综合试验数据处理正确,报告分析思路清晰,字迹较工整。
中等:
出勤满,实验纪律好,听从指导老师指挥,动手能力较强,综合试验数据处理较正确,报告分析思路较清晰,字迹基本工整。
及格:
只有少数特殊情况下没有出勤,实验纪律一般,听从指导老师指挥,动手能力一般,综合试验数据处理基本正确,报告分析思路一般。
不及格:
经常不参加实验,实验纪律不好;不听从指导老师指挥;动手能力较差;综合试验数据处理不正确;不写实验报告。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理及应用 桂林 理工 数据库 原理 应用 实验 指导 改版
![提示](https://static.bdocx.com/images/bang_tan.gif)