《数据库原理》实验指导Word格式文档下载.docx
- 文档编号:16758350
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:45
- 大小:820.13KB
《数据库原理》实验指导Word格式文档下载.docx
《《数据库原理》实验指导Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《数据库原理》实验指导Word格式文档下载.docx(45页珍藏版)》请在冰豆网上搜索。
Sdept
95001
李勇
M
20
CS
95002
刘晨
F
19
IS
95003
王敏
18
MA
95004
张立
课程COURSE:
Cno
Cname
Cpno
Ccredit
1
数据库
5
4
2
数学
3
信息系统
操作系统
6
数据结构
7
数据处理
C语言
选修SC:
Grade
92
85
88
90
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
P5
凸轮
40
P6
齿轮
30
工程项目J:
JNO
JNAME
J1
三建
J2
一汽
长春
J3
弹簧厂
J4
造船厂
J5
机车厂
唐山
J6
无线电厂
常州
J7
半导体厂
供应情况SPJ:
QTY
200
100
700
400
500
300
实验步骤:
1.用企业管理器创建教学管理“JXGL”数据库。
(1)连接“服务器管理器”。
选择“开始/程序/MicrosoftSQLServer/服务管理器”,进入SQL服务管理器窗口,如图1.1所示。
选择要启动的服务器和准备启动的服务,单击“开始/继续”按钮,开始启动服务,稍后绿灯亮,启动成功。
(2)打开“企业管理器”。
选择“开始/程序/MicrosoftSQLServer/企业管理器”,就出现企业管理器窗口。
企业管理器是SLQServer的一个最重要的管理工具,它提供了一个遵从Microsoft管理控制台(MMC)的用户界面,以层叠形式显示出所有SQLServer对象,使用企业管理器几乎可以完成所有的管理工作。
在控制台根目录窗口中展开“控制台根目录”树,依次展开“MicrosoftSQLServers/SQLServer组/(Local)(WindowsNT)/数据库”文件夹,如图1.2所示。
图1.1SQL服务管理器图1.2企业管理器
(3)创建教学管理“JXGL”数据库。
选择“操作”菜单中的“新建数据库”命令,进入“数据库属性窗口”,在“常规”标签“名称”框中输入“JXGL”,其他选项采用默认值,如图1.3所示。
单击“确定”按钮,系统自动创建JXGL数据库。
(4)在JXGL数据库中建立STUDENT表,并插入学生记录。
在控制台根目录窗口中展开“数据库”文件夹,就会看到新建立的数据库“JXGL”,如图1.4所示,鼠标右击“表”图标,在弹出的快捷菜单中选择“新建表”命令,启动“表设计器”,在表设计器窗口上部网格中,每一行描述了表中的一个字段,每一行有四列,分别描述了列名、数据类型、长度和允许空等属性,将STUDENT表的各列属性依次输入到网格中去,如图1.5所示。
图1.3创建数据库窗口图1.4“新建表”命令
图1.5表设计器图1.6设置主键
然后,可以右击列名Sno,选择“设置主键”命令,其左侧将出现一个钥匙样图标,如图1.6所示。
单击表设计器的工具栏中的“保存”按钮,出现保存对话框,输入表名“STUDENT”,如图1.7所示,并按“确定”按钮。
图1.7保存对话框
在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“打开表/返回所有行”命令,如图1.8所示。
然后在出现的表格中依次输入新记录,如图1.9所示。
图1.8“返回所有行”命令
图1.9输入数据
(5)同样方法,可以在JXGL数据库中建立COURSE表,并插入记录。
(6)同样方法,可以在JXGL数据库中建立SC表,并插入记录。
(7)查看三个表中的内容。
在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“打开表/返回所有行”命令,如图1.8所示,即可查年STUDENT表中的内容。
同样方法,可以查看COURSE表和SC表中的内容。
(8)修改数据表结构。
①向STUDENT表增加“入学时间”列,其数据类型为日期型。
在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“设计表”命令,即进入表设计器窗口,如图1.5所示,即可继续增加“入学时间”列,数据类型选择为“datetime”型。
单击工具栏中的“保存”按钮。
在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“打开表/返回所有行”命令,如图1.8所示,即可查年STUDENT表中的内容,此时Scome列值都为NULL。
②删除“入学时间”列。
在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“设计表”命令,即进入表设计器窗口,右击上方网格中的“Scome”,选择为“删除列”命令。
在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“打开表/返回所有行”命令,如图1.8所示,看到Scome列已被删除。
(9)删除数据表。
在企业管理器中,展开JXGL数据库节点,单击“表”图标,在右侧窗格中右击STUDENT表,选择“删除”命令,即可删除STUDENT表。
同样方法,可以删除其他指定表。
(10)删除数据库
在企业管理器中,右击JXGL数据库,选择“删除”命令,即可删除JXGL数据库。
2.用查询分析器创建教学管理“JXGL”数据库。
(2)打开“查询分析器”。
选择“开始/程序/MicrosoftSQLServer/查询分析器”,就出现登录窗口,如图1.10所示,在“SQLServer”栏中输入登录的服务器名称,这里的“.”表示是本地服务器。
使用SQLServer身份验证模式,并在登录名栏中输入用户名,然后在密码栏中输入密码,这里的用户名和密码都输入“sa”。
最后单击“确定”按钮连接到数据库服务器,出现如图1.11所示的查询分析器窗口。
图1.9登录窗口图1.11查询分析器
查询分析器界面如图1.10所示,它由标题栏、菜单栏、工具栏、对象浏览窗格、查询窗格、查询结果窗格等组成。
其中,查询窗格是编辑和执行SQLServer程序的地方,查询结果窗格是浏览查询结果的地方,结果可以“文本显示”和“表格显示”两种方式显示出来。
在查询窗格中输入如下命令,然后单击“运行”钮执行该命令。
CREATEDATABASEJXGL;
(4)清空查询窗格后,在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’);
(5)清空查询窗格后,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);
(6)清空查询窗格后,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);
分别执行以下命令,查看STUDENT、COURSE和SC数据表中的内容。
SELECT*FROMSTUDENT;
SELECT*FROMCOURSE;
SELECT*FROMSC;
①向STUDENT表增加“入学时间”列,其数据类型为日期型,用SELECT命令查看表中内容。
ALTERTABLESTUDENTADDSCOMEDATETIME;
②删除“入学时间”列,再用SELECT命令查看表中内容。
ALTERTABLESTUDENTDROPCOLUMNSCOME;
DROPTABLESC;
DROPTABLESTUDENT;
DROPTABLECOURSE;
(10)删除数据库命令。
切换到其他任意数据库,然后可用如下命令删除JXGL数据库。
DROPDATABASEJXGL;
3.创建供应系统“GYXT”数据库。
(注:
可采用企业管理器和查询分析器两种方法创建。
)
下面写出实现如下操作的SQL语句:
(1)创建供应系统“GYXT”数据库。
(2)建立供应商表S。
(3)建立零件表P。
(4)建立工程项目表J。
(5)建立供应情况表SPJ。
实验2简单查询和连接查询
1.熟练掌握SQLServer查询分析器的使用方法,加深对标准SQL查询语句的理解。
2.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
1.基于实验一创建的教学管理JXGL数据库,参考教材简单查询和连接查询章节中的SQL操作实例,实现数据的基本查询操作。
2.基于实验一创建的供应系统GYXT数据库,实现下列基本查询操作。
首先,写出下列操作的SQL语句,然后进入到SQLServer查询分析器中调试结果,并将结果抄写下来。
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嵌套查询和集合查询
2.熟练掌握数据查询中的嵌套、分组、统计、计算和组合的操作方法。
1.基于实验一创建的教学管理JXGL数据库,参考教材嵌套查询和集合查询中的SQL操作实例,实现数据的高级查询操作。
(1)求选修了数学的学生的学号和姓名。
(2)求数学课程成绩高于李勇的学生学号和成绩。
(3)求其他系中年龄小于计算机系年龄最大者的学生。
(4)求其他系中比计算机系学生年龄都小的学生。
(5)求选修了数学课的学生姓名。
(6)求没有选修数学课的学生姓名。
(7)查询选修了全部课程的学生的姓名。
(8)求至少选修了学号为“95002”的学生所选修的全部课程的学生学号和姓名。
(9)求选修各门课的人数及平均成绩。
(10)求选修课程在2门以上且都及格的学生号及总平均分。
(11)求95级学生中选修课程在2门以上且都及格的学生号及总平均分,并按平均成绩排序。
(12)统计每个人及格的成绩的平均值,及格的门数,结果按平均成绩降序,及格门数降序排列。
(13)统计所有课程均及格学生的平均成绩,及格的门数,结果按平均成绩降序,及格门数降序排列。
(1)求供应工程J1红色零件的供应商号SNO。
(2)求零件供应总量在1000种以上的供应商名字。
实验4数据更新
1.熟练掌握在SQLServer的企业管理器和查询分析器中进行数据更新的方法。
2.熟练掌握数据库的插入、修改和删除数据的操作方法,加深对标准SQL更新语句的理解。
1.基于实验一创建的教学管理JXGL数据库,参考教材数据更新的SQL操作实例,实现数据的插入、修改和删除操作。
2.基于实验一创建的供应系统GYXT数据库,实现数据的插入、修改和删除操作。
提示:
用企业管理器实现数据更新,先打开企业管理器,展开指定的数据库节点,单击“表”图标,在右侧窗格中右击指定的表,选择“打开表/返回所有行”命令,如图1.8所示,若插入数据,则在出现的表格中依次输入新记录,如图1.9所示;
若删除数据,在出现的表格中右击指定的整行记录,选择“删除”命令,即可删除该记录;
若修改某数据项,可以直接在表格中进行修改。
用企业管理器实现数据更新的方法在实验一中已作简要介绍,以下各实验步骤主要使用查询分析器实现,写出其SQL操作语句。
(1)将一个新学生记录(学号:
95020;
姓名:
陈冬;
性别:
男;
所在系:
IS;
年龄:
18)插入STUDENT表中。
(2)数据的插入操作:
插入一条选课记录,学号为95020的学生选修了1号课程。
(3)对每门课程,求学生的平均分数,并把结果存入数据库。
(4)将学生95020转到数学系。
(5)所有学生成绩乘系数0.8。
(6)删除95020学生的记录。
(7)删除数学系所有学生的选课记录。
(1)往S,P,J,SPJ表中插入部分数据(参照教材P64页,此题实验一已完成)
(2)将供应商序号为S5的名称改为宏民厂。
(3)S表中删除供应商序号为S5的记录,考虑对SPJ表的相应操作。
(4)在S表中插入一条供应商信息:
(S6,华天,深圳)。
(5)把全部红色零件的颜色改为粉红色。
(6)将S1供应给J1的零件P1改为由S2供给。
(7)删去全部蓝色零件及相应的SPJ记录。
实验5数据完整性
1.了解SQLServer用约束来维护数据完整性的机制。
2.掌握在企业管理器和查询分析器中如何创建、使用及删除约束的方法。
1.基于实验一创建的教学管理JXGL数据库,实现约束的创建、查看和删除操作。
2.创建人事关系RSGX数据库及其中的职工数据表和部门数据表,并实现完整性约束条件的定义。
约束是SQLServer提供的自动强制数据完整性的一种方法,它是通过定义列的取值规则来维护数据的完整性。
常用的约束是NOTNULL(非空)、CHECK(检查)、UNIQUE(惟一)、PRIMARYKEY(主键)、FOREIGNKEY(外键)和DEFALT(默认)约束。
(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约束
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理 数据库 原理 实验 指导