2024年3月6日发(作者:)
实验一 SQL SERVER2000的基本使用
【实验目的】
熟悉SQL SERVER2000的基本使用
【实验学时】
2学时(1周)
【实验类型】
综合型
【实验环境】
SQL Server2000
【实验人数】
1人/组
【实验内容及要求】
实验前应启动本机的SQL Server服务,其方法为:选择“程序”下“Microsoft SQL
Server”下的“服务管理器”,启动数据库服务。
1.连接数据库
(1)打开企业管理器,然后点击添加新服务器按钮。
(2)在打开的注册向导中点击“下一步”。
(3)在注册SQL Server向导中输入可用的服务器(可以输入服务器的ip,也可以从下面列表中选择局域网内的服务器)并添加到右边的列表框中,单击“下一步”。
(4)在注册SQL Server向导中选择“SQL Server身份验证”,单击下一步。
(5)在注册SQL Server向导中输入帐号和密码,单击下一步。
(6)按照默认设置单击“下一步”一直到“完成”,在界面左侧的树状列表中可以看到刚建立的连接。
2.建立数据库
(1)点开界面左侧的树目录,然后选中某个连接下的“数据库”项。
(2)在“数据库”上单击鼠标右键,选择“新建数据库”。
(3)在弹出的对话框中输入数据库的名称,数据库及日志文件的位置等设置。
(4)单击“确定”按钮完成数据库的创建。
3.创建表
(1)点开界面左侧的树目录,然后选中某个连接下的某个具体数据库。
(2)点开具体数据库前的“+”号,在“表”上单击鼠标右键,并选择“新建表”。
(3)在弹出的界面中输入列的名称、类型等相关信息,点击“保存”并输入表的名称。
4.修改表及读、写表
(1)点开界面左侧的树目录,然后选中某个连接下的某个具体数据库。
(2)点开具体数据库前的“+”号,在“表”上单击鼠标左键。
(3)在右边罗列出该数据库下的所有数据表,选中某个数据表并在上面单击鼠标右键,选择“设计表”就可以修改数据表的设置。
(4)选中某个数据表并在上面单击鼠标右键,选择“打开表”下的“返回所有行”就可以增、删、改表中的数据。
5.设置主键
在设计表的界面中(新建或修改表时),点击行首选中一行,然后单击“设置主键”按钮,即可以把某一列设为主键。
如果要设置多列为主键,则可以配合键盘的Ctrl和Shift键选中多行。
6.设置外键
(1)在设计表的界面中,选择“管理关系”按钮。
(2)在弹出的对话框中选择“关系”标签页。
(3)单击“新建”按钮,并输入主键表、外键表及对于的列和名称等相关设置。
(4)单击“关闭”按钮完成外键的设置。
7.查看数据库逻辑结构
(1)点开界面左侧的树目录,然后选中某个连接下的某个具体数据库。
(2)点开具体数据库前的“+”号,在“关系图”上单击鼠标左键。
(3)选择“新建数据库关系图”,并点击“下一步”。
(4)把需要显示的表添加到关系图中。
(5)点击“下一步”,并在提示窗口中点击“完成”,就可以从关系图中看到所选表的主键、外键及相互关系。
8.使用查询分析器
查询分析器可以用来执行输入的SQL语句,使用方法如下:
选中某个具体的数据库,然后选择“工具”菜单下的SQL查询分析器,在打开的界面中即可以输入SQL语句并执行和查看执行结果。在查询分析器工具栏上的下列列表中可以选择SQL语句执行的具体数据库。
9.用SQL语句和企业管理器建立如下的表结构并输入数据
学生表:student(主键Sno)
学号
Sno
姓名 性别
Sname Ssex
年龄
Sage
20
21
18
所在系
Sdept
CS
IS
MA
95001
李勇 男
95002
刘晨 女
95003
王敏 女
95004
张力 男
19 IS
课程表:Course(主键Cno)
课程号
Cno
1
2
3
4
5
6
7
课程名
Cname
先行课
Cpno
学分
Ccredit
4
2
4
3
4
2
4
数据库
5
数学
信息系统
1
操作系统
6
数据结构
7
数据处理
PASCAL语言
6
选课表:SC(主键Sno,Cno,外部键Sno,Cno)
学号
Sno
95001
95001
95001
95002
95002
95003
课程表
Cno
1
2
3
2
3
3
成绩
Grade
92
85
88
90
85
59
实验二 SQL语言的基本操作
【实验目的】
掌握利用SQL语句完成各种查询操作的能力。
【实验学时】
6学时(3周)
【实验类型】
综合型
【实验环境】
SQL Server2000
【实验人数】
1人/组
【实验内容及要求】
给定表结构如下:
学生表:student(主键Sno)
学号
Sno
姓名 性别
Sname Ssex
年龄
Sage
所在系
Sdept
95001
李勇 男
95002
刘晨 女
95003
王敏 女
95004
张力 男
20
21
18
19
CS
IS
MA
IS
课程表:Course(主键Cno)
课程号
Cno
1
2
3
4
5
6
7
课程名
Cname
先行课
Cpno
学分
Ccredit
4
2
4
3
4
2
4
数据库
5
数学
信息系统
1
操作系统
6
数据结构
7
数据处理
PASCAL语言
6
选课表:SC(主键Sno,Cno,外部键Sno,Cno)
学号
Sno
95001
95001
95001
95002
95002
95003
课程表
Cno
1
2
3
2
3
3
成绩
Grade
92
85
88
90
85
59
用SQL语句完成一下的要求:
1.查询信息系(IS)的所有学生信息
2.查询选修了“数学”课的所有学生名单
3.查询至少选修了一门其直接先行课为5号课程的学生的姓名。
4.查询全体学生的姓名和出生年份。
5.查询所有姓王的学生。
6.查询选修了3号课程的学生姓名及成绩,并按成绩降序排序。
7.查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。
8.计算2号课程的平均成绩。
9.查询选修了2号课程的学生的最高成绩。
10.求各个课程号及相应的选课人数。
11.查询至少选修了3门课程以上的学生学号。
12.查询“数据库”的间接先行课。
13.查询平均成绩最高的学生的学号和姓名。
14.查询数学成绩最高的学生的学号和姓名。
15.查询出成绩最低学号最大的学生学号。
16.查询成绩高于学生平均成绩的记录。
17.查询至少选修了1号课程和3号课程的学生学号。
18.查询只选修了1号课程和3号课程的学生学号。
19.查询没有选修1号课程的学生姓名。
20.查询选修了全部课程的学生姓名。
21.查询至少选修了95002所选修的全部课程的学生学号。
22.查询没有不及格课程的学生的学号和姓名。
23.查询没有不及格学生的课程的课程号和课程名。
24.建立信息系学生视图,并从视图中查询年龄最大的学生记录。
实验三 视图的创建及使用
【实验目的】
掌握视图的建立和使用,以及SQL的更新语句。
【实验学时】
2学时(1周)
【实验类型】
综合型
【实验环境】
SQL Server2000
【实验人数】
1人/组
【实验内容及要求】
1.建立视图IS_STUDENT显示“IS”系所有学生的学号、姓名、性别。
(1) 查询视图IS_STUDENT的所有信息。
(2) 查询视图IS_STUDENT的所有男生信息。
(3) 用insert语句向视图中插入元组('95009','王五','男'),查看基本表student表中插入的数据值。
修改视图的定义加入WITH CHECK OPTION子句,向视图插入一个新元组再查看student表中插入的数据值。
对比两次插入到基本表student的结果。
(4) 用update语句把视图IS_STUDENT的所有记录性别都改为'男',查看基本表student表中的数据值(对比没有WITH CHECK OPTION子句和有WITH CHECK OPTION子句的情况)。
(5) 用delete语句删除视图IS_STUDENT的所有记录,查看基本表student表中的数据值(对比没有WITH CHECK OPTION子句和有WITH CHECK OPTION子句的情况)。
2.建立视图用来显示每个系学生的平均年龄。尝试对视图进行增删改操作,分析能否执行成功。
3.建立视图显示学生各门课程的成绩,显示字段有:学号、姓名、课程名称、成绩。尝试对视图进行增删改操作,分析能否执行成功。
4.建立视图显示所有学生的数学成绩,显示字段有:学号、姓名、成绩。如果某个学生选择了数学课程则显示相应成绩;如果某个学生没有选择数学课程,则显示其学号和姓名,在成绩上显示空白。
实验四 数据完整性维护
【实验目的】
掌握在SQL Server 2000中定义及使用各种约束的能力。
【实验学时】
2学时(1周)
【实验类型】
综合型
【实验环境】
SQL Server2000
【实验人数】
1人/组
【实验内容及要求】
1.用SQL语句定义表student(sno,sname,ssex,sage,sdept),并加入如下约束:
主键:sno;sname有唯一约束;sname,ssex,sage都不允许空;
2.用SQL语句定义表course(cno,cname,Cpno,Ccredit),并加入如下约束:
主键:cno;cname不允许空;
3.用SQL语句定义表sc(sno,cno,Grade),并加入如下约束:
主键:sno,cno;为sno定义名为lsno的默认参照完整性;为cno定义名为lcno的默认参照完整性;
4.用SQL语句向student表输入如下元组:
('95001','李勇','男',20,'CS');
('95002','刘晨','女',21,'IS');
用SQL语句向course表输入如下元组:
('1','数据库','5',4);
('2','数学',NULL,2);
用SQL语句向sc表输入如下元组:
('95001','1',92);
('95001','2',85);
('95002','2',90);
5.执行下列语句,并查看执行结果。如果不能正确执行给出错误原因。
insert into student values('95001','张力','男',20,'CS');
insert into student values('95003','李勇','男',20,'CS');
insert into SC values('95004','1',92);
delete from student where sno='95001';
update course set cno='3' where cno='2';
6.给student表的ssex列添加名为fm的约束,使其取值只能取'男'或'女'。
执行insert into student values('95005','张力','f',20,'CS'),查看执行结果。
7.给student表的sage列添加约束,使其年龄不得超过20岁。查看约束是否能正确添加,并分析其原因。
8.删除约束lsno和lcno。
9.为sc表添加在列sno上的外键约束lsno1,并定义为级联删除。执行delete from
student where sno='95001';查看执行结果。
10.为sc表添加在列cno上的外键约束lcno1,并定义为级联修改。执行update course
set cno='3' where cno='2';查看执行结果。
实验五 触发器及存储过程
【实验目的】
掌握在SQL Server 2000中触发器和存储过程的定义及使用。
【实验学时】
2学时(1周)
【实验类型】
综合型
【实验环境】
SQL Server2000
【实验人数】
1人/组
【实验内容及要求】
1.有如下两个表:
教师(编号,姓名,性别,职称,工资,系别编号) 主码:编号
系别(系别编号,系名称,人数) 主码:系别编号
要求利用触发器完成下面的功能:
1) 对教师表进行插入、删除操作时维护系别人数。
2) 教授工资不得低于1500。
3) 工资只能增加不能减少。
4) 删除系别时,用触发器实现级联删除。
2.有如下视图:
选修记录(学号,姓名,课程号,课程名称,成绩)
其数据来源于学生表、选课表和课程表,利用触发器使视图可以更新,并将更新的数据保存于基本表中。
3. 建立存储过程完成以下功能:
1) 每门课程的课程名称及选课人数。
2) 某个学生的平均成绩(学号为参数)。
实验六 综合实验
【实验目的】
全面熟悉与领会本门课程所学习的内容,从实际系统开发中领会数据库完整性的意义和数据库设计理论的意义与设计过程,掌握开发数据库应用程序的基本能力。
【实验学时】
40(5周)
【实验类型】
综合型
【实验环境】
SQL Server2000
【实验人数】
2-3人/组
【实验内容及要求】
课题一:仓库管理系统
本系统的设汁模拟一般仓库的管理内容,包括物资管理、仓库管理、入库操作、入库查询统计、出库操作、出库查询统计、库存查询统计等处理情况,系统需要管理的主要内容如下:
⑴ 能分类管理物资信息。
⑵ 系统能管理多个仓库。
⑶ 能进行入库操作并打印入库单,能按物资种类、名称、入库时间等信息查询统计出入库的数量、金额等信息。
⑷ 能进行出库操作并打印出库单,能按物资种类、名称、入库时间等信息查询统计出出库的数量、金额等信息。如果物资数量小于出库数量不允许进行出库操作。
⑸ 能按各种方式查询库存信息。
功能要求如下:
⑴ 物资管理:包括物资类别,物资信息的维护(包括录入、删除、修改)。
⑵ 仓库管理:包括仓库信息的录入、修改、删除。
⑶ 能进行入库操作并打印入库单。
⑷ 能按各种方式查询入库记录。
⑸ 能按月、季度、年、物资种类、物资名称统计入库物资的数量、金额等信息。
⑹ 能进行出库操作并打印出库单。
⑺ 能按各种方式查询出库记录。
⑻ 能按月、季度、年、物资种类、物资名称统计出库物资的数量、金额等信息。
⑼ 能按物资种类、物资名称等查询库存信息。
⑽ 其他你认为系统应有的查询、统计功能。
⑾ 设计设计界面友好,功能操作方面合理,并适当考虑系统在安全性、完整性、备份、恢复等方面的功能要求。
课题二:邮局订报管理系统
设计本系统模拟客户在邮局订购报纸的管理内容,包括查询报纸、订报纸、开票、付钱结算、订购后的查询、统计等的处理情况,系统需要管理的主要内容如下:
⑴ 可随时查询处可订购报纸的详细情况,如报纸编号、报纸名称、报纸单价、版面规格、出版单位等,这样便于客户选定。
⑵ 客户查询报纸情况后即可订购所需报纸,可订购多种报纸,每种报纸可订若干份,交清所需金额后,就算订购处理完成。
⑶ 为便于邮局投递报纸,客户需写明如下信息:客户姓名、电话、地址及邮政编码,
邮局将即时为每一客户编制唯一代码。
⑷ 邮局对每种报纸订购人数不限,每个客户可多次订购报纸,所定报纸亦可重复。
功能要求如下:
⑴ 能对报纸、客户等信息进行添加、修改、删除、查询、打印等基本操作。
⑵ 能根据订报要求订购各报纸,并完成一次订购任务后汇总总金额,模拟付钱、开票操作。
⑶ 能明细查询某客户的订报情况及某报纸的订出情况。
⑷ 能统计出某报纸的总订购量与总金额及某客户订购报纸种数、报纸份数与总订购金额等。
⑸ 其他你认为系统应有的查询、统计功能。
⑹ 设计设计界面友好,功能操作方面合理,并适当考虑系统在安全性、完整性、备份、恢复等方面的功能要求。
课题三:图书借阅管理系统
设计本系统模拟学生在图书馆借阅图书的管理内容,包括查询图书、借书、借阅后的查询、统计、超期罚款等的处理情况,系统需要管理的主要内容如下:
⑴ 可随时查询出可借阅图书的详细情况,如图书编号,图书名称、出版日期、出版社、图书存放位置、图书总数量等,这样便于学生选借。
⑵ 学生查询图书情况后即可借阅所需图书,可借阅多种图书,每种图书一般只借一本,若已有图书超期请交清罚金后,才能开始本次借阅。
⑶ 为了唯一表示每一学生,图书室办借书证需如下信息:学生姓名、学生系别、学生所学专业、借书上限数及唯一的借书证号。
⑷ 每个学生一次可借多本书,但不能超出该生允许借阅上限数,每个学生可多次借阅,允许重复借阅同一本书,规定借书期限为两个月,超期每天罚两分。
⑸ 学生可以归还所借的图书。
功能要求如下:
⑴ 能对图书信息进行添加、修改、删除、查询、打印等基本操作。
⑵ 能根据学生要求借阅图书库中有的书,并完成一次借阅任务后汇总已借书总数,报告还可借书量,已超期的需付清罚款金额后才可借书。
⑶ 能明细查询某学生的借书情况及图书的借出情况。
⑷ 能统计出某图书的总借出量与库存量及某学生借书总数,当天为止总罚金等。
⑸ 能完成图书的归还操作。
⑹ 其他你认为系统应有的查询、统计功能。
⑺ 设计设计界面友好,功能操作方面合理,并适当考虑系统在安全性、完整性、备份、恢复等方面的功能要求。
课题四:提交一个“学生信息管理系统”的设计文档及源程序。任选一种开发工具设计一个“学生信息管理系统”。
功能要求:
1.需要管理的数据有班级、学生、课程和选课数据。对于课程只管理必修课,也就是一门课程如果选修的话一个班的学生都选。完成数据库逻辑结构的设计。
2.完成对班级信息、学生信息和课程信息的录入、修改、和删除工作(对学生数据删除的时候实现级联删除、对班级和课程数据如果存在引用的时候给出提示不允许删除)。
3.能够完成对班级信息、学生信息和课程信息的查询(对学生信息能够按照多个条件实现组合查询,例如能够按照班级、性别、姓名等组合查询;对字符数据能够利用like实现模糊查询)
4.成绩录入要求能够自动生成成绩单,也就是说如果某个班级的某门课程还没有录入成绩应该有生成成绩单的功能来提供录入界面(在界面中用表格的形式给出该班级所有学生该门课程成绩的录入,只需要给出学生相应成绩即可)
5.成绩单浏览(界面左边有一棵数,一级节点是数据库内的所有班级,二级节点是该班级下学生选修过的课程。界面右边是一个二维表格,用来显示选课信息。当点击二级节点的时候在右边表格中显示该班级学生在该课程上的成绩)。
6.综合成绩浏览。(提供以二维表格的形式浏览某个班学生的所有课程成绩,表格如下)
学生1
....
学生n
以上课题的设计报告内容要求如下:
⑴ 各阶段的书面文档,说明设计的理由。
⑵ 各系统配置参数的功能及参数值的确定。
⑶ 描述数据库系统实现的软件、硬件环境,说明采用这样环境的原因。
⑷ 说明在数据库设计过程碰到的主要困难,所使用的数据库系统在那些方面还有待改进。
⑸ 应用系统试运行情况与系统维护计划。
⑹ 课程设计体会。
课程1
课程2
.....
课程n


发布评论