《数据库系统原理》实践手册Word文件下载.docx
《《数据库系统原理》实践手册Word文件下载.docx》由会员分享,可在线阅读,更多相关《《数据库系统原理》实践手册Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
![《数据库系统原理》实践手册Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/1/8aeb778a-51ec-4ab6-9118-2b91113cff71/8aeb778a-51ec-4ab6-9118-2b91113cff711.gif)
注:
本实验需要1学时。
实验二
完成数据库设计,创建数据库。
根据一个具体应用进行数据库设计,使用SQL语言的CREAT命令及SQLServer企业管理器创建这个数据库,并建立表和索引。
并学会使用SQLServer查询分析器接收SQL语句和进行结果分析。
假设某一高校要用计算机进行简单的教务管理,根据要求进行数据库设计。
1.建立下列四张表,各表结构如下:
学生表S
列(属性)名
类型
约束控制
含义说明
SNO
CHAR(6)
主键
学号
SNAME
CHAR(8)
NotNull
姓名
SSEX
CHAR
(2)
性别
SAGE
SMALLINT
‘男’或‘女’
年龄
SDEPT
CHAR(10)
系别
课程表C
字段名
字段类型
字段含义说明
CNO
CHAR(6)
课程号
CNANE
CHAR(10)
课程名
CT
学分
TNO
外键
授课教师号
选课表SC
SCORE
0~100之间
成绩
教师表T
教师号
TNAME
教师姓名
TSEX
TITLE
职称
2.在学生表S的学号列上建立唯一索引。
3.在教师表T的教师号上建立唯一索引。
●服务器端:
运行SQLServer服务器
●为用户分配适当的权限和角色,确保用户能登录SQLServer服务器并完成相关数据库操作
五、实验步骤
1.使用SQLServer企业管理器创建“教学XX”数据库(XX为学生的学号),并设置数据库选项;
2.使用SQLServer企业管理器查看上述创建的数据库属性
3.通过“SQL查询分析器”,用SQL的CREATTABLE语句在建好的“教学XX”数据库中建立学生表S、课程表C及选课关系表SC三个表,练习使用SQL语句撤销数据表;
4.通过“企业管理器”,在在建好的“教学XX”数据库中建立教师表T;
5.通过“企业管理器”,进入表设计器查看或调整各表的结构;
6.通过“SQL查询分析器”,使用CREATINDEX语句为学生表S的SNO列上建立唯一索引。
7.通过“企业管理器”,进入表设计器为教师表T的TNO列上建立唯一索引。
8.练习分离和附加数据库的操作。
本实验需要4学时。
实验三
数据输入和维护,数据处理命令操作。
根据已经建立好的数据库和表,进行数据处理操作。
掌握使用SQLServer企业管理器向表中输入数据、修改数据和删除数据的操作,并熟练掌握INSERT、UPDATE、DELETE等命令的使用。
将下列各表中的数据分别输入到学生表S、课程表C、选课表SC和教师表T中。
并对表中的数据进行插入(INSERT)、删除(DELETE)、修改(UPDATE)等操作。
学生表:
95001
李勇
男
20
计算机
95002
刘晨
女
19
信息
95003
王敏
18
数学
95004
张立
95005
欧阳锋
95006
欧阳震华
24
95007
刘秋明
课程表:
CNAME
C1
数据库
72
T1
C2
80
T5
C3
信息系统
30
T3
C4
操作系统
60
T2
C5
数据结构
C6
计算机网络
50
C7
C语言
T4
C8
DB_Design
选课表:
CTO
SCROE
92
85
NULL
90
66
48
93
教师表:
李力
教授
王平
讲师
刘伟
张雪
张兰
副教授
T6
王一
助教
●相关的数据库及表结构已创建并设置正确
1.通过“企业管理器”,在“教学XX”数据库的学生、课程、选课中输入若干条记录;
2.在“查询分析器”中,使用INSERTINTO语句向教师表中插入数据;
3.使用“企业管理器”,查看学生表、课程表、选课表及教师表中数据,并练习对表中数据进行插入、删除和修改操作;
4.使用UPDATE语句修改表中数据,如把选修“C2”课程的学生成绩提高10%等;
5.使用DELETE语句删除表中的记录,如删除教师表中教师号为“T1”的相关信息等;
实验四
数据库的简单查询和连接查询。
根据已经建立好的数据表,进行数据查询操作。
掌握SQLServer“查询分析器”的使用方法,加深对SQL语言的查询语句SELECT的理解。
熟练掌握表的简单查询和连接查询的命令书写和实现方法。
依据要求查询、显示表的数据。
1、简单查询
1)查询全体学生的姓名、学号、所在系
2)查询全体学生的详细记录
3)查询全体学生的姓名及出生年份
4)查询选修了课程的学生学号
5)查询所有年龄在20岁以下的学生姓名及其年龄
6)查询考试成绩有不及格的学生的学号
7)查询年龄在18到20间的学生的姓名,系别及年龄
8)查询年龄不在20到23间的学生的姓名,系别及年龄
9)查询信息系、数学系和计算机系学生的姓名和性别
10)查询不是信息系、数学系和计算机系学生的姓名和性别
11)查询学号为“95001”的学生详细情况
12)查询所有姓刘的学生的姓名,学号和性别
13)查询姓“欧阳”且命名为三个汉字的学生的姓名
14)查询名字中第2个字为”阳”字的学生姓名和学号
15)查询所有不姓刘的学生姓名
16)查询DB_Design课程的课程号和学时
17)查询以“DB_”开头,且倒数第3个字符为i的课程的详细情况
18)查询缺少成绩的学生的学号和相应的课程号
19)查询所有有成绩的学生学号和课程号(wheregradeisnotnull)
20)查询选修课程号为C2或C4课程的学生学号
21)查询课程号为C2、C4、C5的所有课程,要求显示出课程号和课程名(要求用in运算符)
2、连接查询
1)查询选修“C2”号课程的学生学号和姓名
2)查询所有选课学生的学号、姓名、选课名称及成绩
3)查询所有学生的选课及成绩情况,要求显示学生的姓名、选课名称及成绩,并将查询结果存放到一个新的数据表new_table
4)查询选修了课程名为“C语言”的学生学号和姓名
5)查询选修了课程名为“数据结构”的所有学生的姓名、课程成绩
6)查询“计算机”系的学生的选课及成绩情况,要求显示学生的学号、姓名、课程号、课程名称及成绩
7)查询选修“C2”号课程且成绩在90分以上的学生学号和姓名。
8)查询所有比刘晨年龄大的学生姓名、性别、年龄和刘晨的年龄。
9)查询所有选修了课程但未参加考试的所有学生的学号、姓名、课程号和课程名
10)查询所有选修了课程但考试成绩不及格的所有学生的学号、姓名、课程号、课程名和成绩。
●相关的数据库及表已创建,输入数据并设置正确
1.将查询需求用SQL语言表示;
在SQLServer“查询分析器”的输入区中输入SQL查询语句,并运行查看查询结果;
2.设置“查询分析器”的结果区为“文本显示结果”或“表格显示结果”方式,发布执行命令,并在结果区中查看查询结果,如果结果不正确,要进行修改,直到正确为止。
本实验需要5学时。
实验五
数据库的分组及统计、汇总查询。
熟练掌握数据查询中分组、排序、统计、计算的操作方法,进一步加深对SELECT查询语句的理解。
(使用集函数count,sum,avg,max,min)
1.求男学生的总人数和平均年龄
2.统计选修了课程的学生人数
3.计算C1号课程的学生平均成绩、总分、最高分、最低分
4.查询选修C1号课程的学生最高分数
5.求各个课程号及相应的选课人数
6.查询选修了3门以上的课程的学生学号
7.查询选修了C3课程的学生的学号及其成绩,分数降序排列
8.查询全体学生情况,结果按所在系升序排列,同一系中的学生按年龄降序
本实验需要3学时。
实验六
数据库的嵌套查询及合并查询。
掌握使用IN、比较符、ANY或ALL和EXSTS等操作符进行嵌套查询操作,理解合并查询的使用,进一步加深对SELECT查询语句的理解。
(嵌套查询)
1.求C2号课程的成绩高于李勇的学生学号和成绩;
带有谓词in的子查询
2.查询与“刘晨”在同一个系学习的学生
3.查询选修了课程名为“信息系统”的学生学号和姓名
带有Any或all谓词的子查询
4.查询其他系中比信息系中某一学生年龄小的学生姓名和年龄
5.查询其他系中比信息系所有学生年龄都小的学生姓名及年龄
6.检索平均成绩最高的学生学号
带有Exist谓词的子查询
7.检索学习课程号为C2课程的学生学号和姓名(也可用谓词in)
8.检索不学课程号为C2课程的学生姓名与年龄(也可用谓词all或notin)
9.查询选修所有全部课程的学生姓名
10.查询到至少选修了学生95002选修的全部课程的学生号
实验七
数据库视图的定义和使用。
掌握视图的创建方法,加深对视图的作用的理解。
依据要求创建、查看、修改和删除视图。
1.创建从教师数据表T中查看职称为“教授”的基本情况的视图,将该视图命名为:
Teacher_view,要求该视图能列出教师的教师号、姓名、职称。
2.定义一个有关男学生的视图,将该视图命名为:
S_MILE,要求该视图能显示出学生学号、姓名和年龄。
3.创建一个从教师表T、课程表C中查出所有教师的任课门数的视图,将该视图命名为:
Teaching_view,要求该视图能显示出教师姓名、教授课程的门数(将该列命名为:
course_number)。
4.创建一个从学生表S、选课表SC和课程表C中查出所有学生的学号、姓名、所选修的课程名和成绩的视图,将该视图命名为:
STUDENT_SCORE。
5.创建一个从学生表S、选课表SC和课程表C中查出所有选修了课程但考试不及格的所有学生及相应的课程的视图,将该视图命名为:
Notpass_view,要求显示出学生的学号、姓名、课程号、课程名、课程成绩。
6.创建一个从学生表S、选课表SC和课程表C中查出“计算机系”的所有学生及成绩情况的视图,将该视图命名为:
Computerdep_view,要求显示出学生的学号、姓名、课程号、课程名、课程成绩。
利用视图进行查询:
分别写出能利用以上5个视图进行数据查询的SQL语句。
1.在SQLServer“查询分析器”中使用SQL语句“CREATEVIEW”语句创建上述各视图;
2.在企业管理器中以图形化的方式创建、查看、修改和删除视图;
3.利用视图进行查询:
分别写出能利用以上6个视图进行数据查询的SQL语句。
实验八
数据库的备份和恢复。
根据需求,进行数据库的备份和恢复。
使学生了解SQLServer的数据备份和恢复机制,掌握SQLServer中数据库备份和恢复的方法。
依据要求建立数据库的备份,进行数据库的恢复。
运行SQLServer服务器。
●服务器及所有客户端均已正确配置,并与网络相连。
●为用户分配适当的权限和角色,确保用户能登录SQLServer服务器并完成相关数据库操作。
●相关的数据库及表已创建,输入数据并设置正确。
1.用企业管理器创建一个备份设备;
2.为数据库设置一个备份计划,要求每当CPU空闲时进行数据库备份;
3.为数据库设置一个备份计划,要求每月1号进行数据库备份;
4.在企业管理器中恢复数据库;
5.修改教学数据库备份计划,要求每星期对数据库备份一次。
本实验需要2学时。
实验九
熟悉和编写存储过程和触发器。
熟悉在SQLServer环境中存储过程和触发器的创建、查看、修改、删除等管理方法。
1.熟悉教材中SQLServer2000的系统存储过程。
2.在查询分析器或企业管理器下用Transact_SQL语句自定义存储过程:
1)创建一个能向学生表S中插入一个记录的存储过程Insert_student,该过程需要5个参数,分别用来传递学号、姓名、性别、年龄、系别5个值;
2)写出执行存储过程Insert_student的SQL语句,向学生表S中插入一个新同学,并提供相应的实参值(实参值由用户自己给出)。
3.在查询分析器或企业管理器下用Transact_SQL语句自定义触发器:
1)创建一个向学生表S中插入一新同学时能自动列出全部同学信息的触发器display_trigger;
2)执行存储过程insert_student,向学生表S插入一新同学,看触发器display_trigger是否执行。
特别是本实验所用的学生表(见实验二)。
见教材P194—P199
实验十
软件开发工具PowerBuilder的使用。
了解软件开发工具,掌握PowerBuilder建立数据库和编写应用程序的技术和方法。
1.启动PB9.0,熟悉PB9.0的集成开发环境。
2.对数据库和表的基本操作:
建立数据库,连接数据加,建立表、主键、外键,建立视图,输入数据,使用交互式SQL语句。
3.建立应用的基本操作:
建立工作空间、目标、应用,建立数据窗口,建立主窗口。
4.书写脚本:
能正确实现数据的插入、删修改以及按条件查找数据的要求。
四、实验环境要求
●PowerBuilder9.0
本实验需要8学时。