数据库系统实验指导书.docx
- 文档编号:28050751
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:35
- 大小:2.81MB
数据库系统实验指导书.docx
《数据库系统实验指导书.docx》由会员分享,可在线阅读,更多相关《数据库系统实验指导书.docx(35页珍藏版)》请在冰豆网上搜索。
数据库系统实验指导书
《数据库系统原理》
实验指导书
实验一数据库的定义、建立和维护
一、实验目的
1、掌握使用SQLServer企业管理器、SQL创建数据库、基本表和修改基本表的结构;
2、掌握使用SQLServer企业管理器、SQL向数据库表输入数据、修改数据和删除数据的操作。
二、实验内容
1、创建数据库和查看数据库属性;
2、创建学生表、课程表和选课表,为主键创建索引;
3、查看和修改表结构;
4、通过企业管理器,在学生选课数据库中的学生、课程和选课3个表中,各输入10条以上记录;
5、通过企业管理器对学生选课数据库的学生、课程和选课3个表中的数据进行插入、删除和修改操作;
三、实验步骤
1、创建数据库
(1)使用企业管理器建立数据库的步骤
1)从“开始”菜单中依次选取“所有程序”、“MicrosoftSQLServer”、“企业管理器”。
2)选中需要在其上创建数据库的服务器,点击前面的“+”号,使其展示为树形目录。
3)选中“数据库”文件夹,单击鼠标右键,在弹出菜单上选择“新建数据库”,如图1-1所示:
图1-1创建数据库
(1)
随后在数据库属性对话框的常规页面中,输入数据库名“学生选课”,如图1-2所示:
数据库属性对话框有3个页面:
常规页码、数据文件页面和事务日志页码。
分别用来义数据库名、数据文件属性和日志文件属性。
请结合帮助文档,了解这些页面中选项的含义。
4)单击“确定”按钮,关闭对话框。
在企业管理器窗口中出现“学生选课”数据库标志,表明已经成功创建数据库。
5)SQLServer企业管理器中,右键单击“学生选课”数据库,在弹出菜单中选择“属性”,将弹出一个对话框,显示“学生选课”数据库的属性。
图1-2创建数据库
(2)
2、创建数据库表
(1)打开刚才创建的“学生选课”数据库,并在“SQLServerEnterpriseManager”窗口的右边窗口中用鼠标右键点击“表”对象,选择“新建表”命令,打开SQLServer的表编辑器窗口,如图1-3所示:
图1-3新建表
(2)根据表1-1所示的表结构,添加新列。
(3)点击工具栏上的“保存”按钮,在弹出的“选择名称”对话框中输入表名“学生表”,然后单击“确定”按钮,关闭表编辑器窗口,完成新表的创建。
表1-1学生表
列名
数据类型
长度
是否允许为空值
默认值
说明
学号
char
6
N
主键
姓名
Char
8
N
性别
bit
1
N
男1女0
出生日期
smalldatetime
4
N
专业名
Char
10
N
所在系
Char
10
N
联系电话
char
11
Y
(4)同理,根据表1-2建课程表,根据表1-3建选课表
表1-2课程表
列名
数据类型
长度
是否允许为空值
默认值
说明
课程号
char
6
N
主键
课程名
Char
20
N
教师
char
10
N
开课学期
tinyint
1
N
只能1-6
学时
tinyint
1
N
60
学分
tinyint
1
N
表1-3选课表
列名
数据类型
长度
是否允许为空值
默认值
说明
学号
char
6
N
外键
课程号
Char
6
N
外键
成绩
char
1
0-100
3、定义表的完整性约束和索引
(1)在学生表,课程表的主键上建立索引。
(2)在学生表和选课表之间(学号字段)、课程表和选课表之间(课程号字段)建立表间关联。
4、查看和修改表结构
(1)打开SQLServer企业管理器,展开数据库文件夹,进一步展开“学生选课”数据库。
单击表文件夹,找到要查看表结构的表。
(2)右键单击要查看表结构的表名,在弹出菜单中选择“设计表”,将弹出“设计表”对话框。
在改对话框中可以查看/修改表结构。
(3)将修改过的表的结构改回表1-1,表1-2,表1-3所示的结构。
5、使用SQLServer企业管理器向数据库表输入数据、修改数据、删除数据。
(1)打开SQLServer企业管理器,选中服务器,展开数据库文件夹,进一步展开“学生选课”数据库。
单击表文件夹,找到“学生表”。
(2)用鼠标右键单击“学生表”,选择“打开表”――“返回全部行,就会出现表更新对话框,如图1-4所示:
图1-4数据更新对话框
(3)按照表1-4的内容,为学生表输入数据。
表1-4学生表记录
学号
姓名
性别
出生日期
专业
所在系
联系电话
杨颖
0
1984-7-20
计算机应用
计算机
方露露
0
1985-1-15
计算机应用
计算机
俞奇军
1
1984-2-20
信息管理
计算机
胡国强
1
1985-11-7
信息管理
计算机
薛冰
1
1985-7-29
水利工程
水利系
秦盈飞
0
1985-3-10
电子商务
经济系
董含静
0
1984-9-25
电子商务
经济系
陈伟
1
1984-8-7
电子商务
经济系
陈新江
1
1984-7-20
房建
水利系
(4)同理,按照表1-5,表1-6的内容,为课程表,选课表输入数据。
表1-5课程表记录
课程号
课程名
教师开课
学期
学时
学分
101
计算机原理
陈红
2
45
3
102
计算方法
王颐
3
45
3
103
操作系统
徐格
2
60
4
104
数据库原理及应用
应对刚
3
75
5
105
网络基础
吴江江
4
45
3
106
高等数学
孙中文
1
90
6
107
英语
陈刚
1
90
6
108
VB程序设计
赵红韦
3
70
5
表1-6选课表记录
学号
课程号
成绩
101
85
102
87
107
88
101
58
102
63
107
76
103
55
108
80
103
57
103
71
(5)在表更新对话框中,对原有数据进行修改、删除操作。
四、实验报告要求
1、分别用SQL表示学生选课数据库建库和建表(建索引)操作。
2、实验操作步骤和实验结果,实验中出现的问题和解决方法。
3、以一条记录为例,分别写出用SQL和Transact-SQL表示的向学生表中插入、修改和删除数据的语句。
实验二数据库的简单查询和连接查询
一、实验目的
1、使用SQLServer查询分析器的使用方法。
2、加深对SQL语言的查询语句的理解。
3、熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
二、实验内容
1、查询操作。
包括投影、选择条件表达、数据排序等。
2、连接查询操作。
包括等值连接、自然连接、左外连接、右外连接、自身连接查询。
三、实验方法
1、在企业管理器中,点击菜单“工具”――“SQL查询分析器”,打开查询分析器的
窗口。
如图2-1所示:
图2-1查询分析器
2、分析器的工具栏上的下拉列表框中,选择“学生选课”数据库。
3、查询分析器的右边窗口中,输入一条SQL或T-SQL语句。
4、按下工具栏上的三角形按钮,执行输入的SQL或T-SQL语句,查询的结果将在查
询分析器右下窗口中显示,如图2-2所示。
图2-2查询分析器使用示例
四、实验步骤
1、简单查询实验。
用T-SQL语句表示下列操作,在学生选课数据库中实现数据查询操作:
(1)查询计算机系学生的学号和姓名。
(2)查询选修了课程的学生学号。
(3)查询选修101课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号的升序排列。
2、连接查询实验
(1)查询每个学生的情况以及他所选修的课程。
(2)查询学生的学号、姓名、选修的课程名及成绩。
(3)查询选修101课程且成绩为90分以上的学生学号、姓名及成绩。
(4)查询计算机系的所有同学的所有课程的成绩。
五、实验报告要求
1、分别用SQL、Transact-SQL写出实验操作的查询语句,对两种语言进行比较。
2、实验操作步骤和实验结果,实验中出现的问题和解决方法。
实验三数据库的组合查询和统计查询
一、实验目的
1、使用SQLServer查询分析器的使用方法。
2、加深对SQL语言的查询语句的理解。
3、熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
二、实验内容
1、分组查询实验。
改实验包括分组条件表达、选择组条件的表达方法。
2、使用函数查询的实验。
该实验包括统计函数和分组函数统计函数的使用方法。
3、组合查询实验。
4、计算和分组计算查询的实验
三、实验方法
与实验2中介绍的实验方法相同。
将查询需要用T-SQL语言表示;在SQLServer查询分析器的输入区中输入T-SQL查询语句;设置查询分析器的结果为StandardExecute(标准执行)或ExecutetoGrid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。
查询举例:
(1)“选课表”中按学号分组汇总学生的平均分,并按平均分的降序排列。
SELECT学号,平均分=AVG(成绩)FROM选课表
GROUPBY学号
ORDERBY平均分DESC
(2)“选课表”中查询选修了3门以上课程的学生学号。
SELECT学号FROM选课表
GROUPBY学号
HAVINGCOUNT(*)>3
(3)按学号对不及格的成绩记录进行明细汇总。
SELECT学号,课程号,成绩FROM选课表
WHERE成绩<60
ORDERBY学号
COMPUTECOUNT(成绩)
GROUPBY学号
四、实验步骤
在SQLServer查询分析器上,实现以下查询操作:
1、查询各个系学生选修101课程的平均成绩。
2、查询各个系学生选修课程的总门数。
3、查询每门课程的平均分。
4、查询学校开设的课程总数。
5、查询选修两门及两门以上课程的学生姓名。
6、查询经济系且选修课程的最低成绩大于等于60分的学生信息。
7、查询经济系或者选修课程的最低成绩大于等于60分的学生信息。
五、实验报告要求
1、用SQ写出实验操作的查询语句。
2、实验操作步骤和实验结果,实验中出现的问题和解决方法。
六、注意事项
1、子句WHERE<条件>表示元组筛选条件,子句HAVING<条件>表示组选择条件。
2、组合查询的子句间不能有语句结束符。
3、子句HAVING<条件>必须和GROUPBY<分组字段>子句配合使用。
七、思考题
1、组合查询语句是否可以用其他语句代替,有什么不同?
2、使用GROUPBY<分组条件>子句后,语句中的统计函数的运行结果有什么不同。
实验四视图的定义和使用
一、实验目的
1、掌握SQLServer中的创建视图的方法,加深对视图的理解。
二、实验内容
1、创建、查看、修改和删除视图。
三、实验步骤
1、创建视图。
在“学生表”,“课程表”,“选课表”3个表的基础上建立一个视图,取名为“学生成绩”。
(1)打开企业管理器窗口,确认服务器、打开数据库文件夹,选中新“学生成绩”数据库,右键单击,在弹出菜单上选“新建”――“视图”。
弹出窗口如图4-1所示:
图4-1新建视图
(1)
(2)在工具栏上单击“添加表”按钮,在弹出的窗口中选取创建视图所需的3个表:
学生表、课程表、选课表。
(3)在学生表中,选取“学号”、“姓名”字段;在课程表中,选取“课程名”字段;在选课表中,选取“成绩”字段,最后单击工具栏中的“运行”按钮。
结果如图4-2所示:
(4)单击工具栏中的“保存”按钮,为新建的视图取名为“视图1”,单击“确定按钮”保存视图。
图4-2新建视图
(2)
2、查看和修改视图
在企业管理器中,选择服务器、数据库,并使数据库展开,然后用鼠标右键单击要修改结构的视图,在弹出的菜单中,选择“设计视图”,则弹出和图4-2类似的视图设计对话框。
用户可以在该对话框中查看视图,修改视图。
3、删除视图
在企业管理器中,将鼠标指向数据库中的视图文件夹中的“视图1”,并单击鼠标右键,在弹出的菜单中,选择“删除”,会出现如图4-3所示的窗口:
选中“全部移出”按钮,被选中的视图就被删除。
图4-3删除视图
四、实验报告要求
1、用T-SQL写出实验操作的语句。
2、实验操作步骤和实验结果,实验中出现的问题和解决方法。
实验五触发器和存储过程的定义和使用
一、实验目的
1、掌握用户存储过程的创建操作。
2、掌握用户存储过程执行操作。
3、掌握用户存储过程的删除操作。
4、学会创建触发器,了解触发器的基本概念,理解触发器的功能。
二、实验内容
1、创建带存储过程。
2、执行所创建的存储过程。
3、删除所有新创建的存储过程。
2、创建、修改和删除触发器。
三、实验步骤
1、创建触发器
(1)在企业管理器中,由服务器开始逐步扩展到触发器所属的表。
打开表文件夹,在细节窗口中用鼠标右键单击触发器所属的表,在弹出的菜单上选择“全部任务”――“管理触发器”。
如图5-1所示:
图5-1创建触发器
(1)
(2)在弹出的窗口中,输入创建触发器的T-SQL语句(如图5-2所示),单击“检查语法”按钮,进行语法检查,检查无误后,单击确认。
图5-2创建触发器
(2)
(3)打开查询分析器,在顶部的下拉框中选中学生选课数据库,运行如下INSERT语句在学生表中加入一条学生记录:
INSERTINTO学生表
VALUES('','李伟','1','1984-10-25','机械设计','机械系','');来验证触发器,看看会出现什么结果。
5、修改触发器
在图4-5的界面中,用户可以通过直接修改T-SQL语句来修改触发器。
6、删除触发器
在图4-5的界面中,用户可以先选取一个触发器,再点击“删除”按钮,删除该触发器。
1、创建带输入参数的存储过程。
(1)启动SQLServer查询分析器,打开“SQL查询分析器”窗口。
选择要操作的数据库,如“XSCJ”数据库。
(2)在查询命令窗口中输入创建存储过程的CREATEPROCEDURE语句,如图5-3所示:
这里,我们创建一个带输入参数的存储过程proc_XSQK1,其中的输入参数用于接收课程号,默认值为“101”,然后在“选课表”中查询该课成绩不及格的学生学号,接着在“学生表”中查找这些学生的基本信息,包括学号、姓名、性别和联系电话信息,最后输出。
图5-3用查询分析器创建存储过程
(3)点击快捷工具栏上的快捷铵钮,对输入的CREATEPROCEDURE语句进行语法分析。
如果有语法错误,则进行修改,直到没有语法错误为止。
(4)点击快捷工具拦上的快捷按钮,执行CREATEPROCEDURE语句。
2、执行所创建的存储过程
(1)在查询命令窗口中输入以下EXECUTE语句,执行存储过程proc_XSQK1。
EXECUTEproc_XSQK1’101’
(2)点击快捷工具拦上的快捷按钮,执行存储过程。
(3)在查询命令窗口中输入以下EXECUTE语句,执行存储过程proc_XSQK2。
EXECUTEproc_XSQK2DEFAULT
(4)点击快捷工具拦上的快捷按钮,执行存储过程。
3、删除新建的存储过程
(1)在查询命令的窗口中输入DROPPROCEDURE语句和所有新创建的存储过程名。
DROPPROCEDURE
Proc_XSQK1,proc_XSQK2
(2)点击快捷工具上的快捷按钮,删除存储过程。
四、实验报告要求
1、用Transact-SQL写出实验操作的语句。
2、实验操作步骤和实验结果。
3、实验中出现的问题和解决方法。
实验六嵌入式SQL的使用
一、实验目的
1、熟悉嵌入式SQL编程;
2、巩固SQL的知识。
二、实验内容
1、阅读和分析程序esql.sqc,解释程序的主要内容和主要数据结构。
2、对程序esql.sqc作适当的修改,使之可以在本地系统上可以运行。
进行预处理、编译、连接(lib连接),查看运行结果。
三、实验步骤
实验平台
OS:
WindowsXP
DBMS:
SQLServer2000
Compiler:
VisualC++6.0
预备知识
1)嵌入式SQL编程:
嵌入式SQL由SQL语句和C/C++代码组成。
其中SQL语句由预处理器翻译成C或C++的源代码。
对预处理后的源代码进行编译、连接生成可执行程序后方可运行。
SQL预处理器
SQLServer的预处理程序是nsqlprep.exe。
其常用的语法格式如下:
nsqlprep程序文档名
nsqlprep详细的语法格式以及参数意义,请看联机帮助。
经查阅联机帮助,nsqlprep的语法格式如下:
nsqlprepprogram_file_name[/SQLACCESS|/NOSQLACCESS]
[/FLAGGER{ENTRY|NONE}][/DB[server_name.]database_name
/PASS{login[.password]|$INTEGRATED}][/BINDfile_name]
[/MSGfile_name][/NOLOGO][/PLANname][/NOLINES]
[/user_defined_option]
要求程序文档名的后缀为.sqc,可以省略。
预编译后得到的文档,与程序文档同名,后缀为.c;放在与程序文档名同一个路径下
nsqlprep.exe在SQLServer的安装目录的MSSQL\Binn下。
在本机中SQLServer的安装目录是C:
\ProgramFiles\MicrosoftSQLServer,nsqlprep.exe在C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Binn。
连接方式
经预处理后的c文件就可以用c的编译器进行编译连接了。
使用VisualC++6.0进行编译连接,连接方式是动态连接,用到动态链接库SQLakw32.dll,sqlaiw32.dll;此两文件已经随同binn.rar的其他内容,被拷贝到C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Binn下;但仍然需要把该路径加到系统的路径变量中,以使得程序运行时能找到这两个文件。
方法1:
把该两文件拷贝到操作系统目录下的子目录system32中
方法2:
把C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Binn加到系统环境变量path中。
“我的电脑”->“属性”->“高级”->“环境变量”->“path,编辑”,如下图所示:
在变量值中加入该路径值;注意,路径间用分号”;”分开。
2)通过ODBC访问数据库:
配置ODBC,为SQLServer添加数据源。
如下图所示:
初始化环境:
SQLServer2000为其嵌入式SQL提供了一些特殊的接口;默认的安装方式(典型安装)并没有安装这些接口;因此,需要把devtools.rar解压到SQLServer的系统目录下(注意,不是安装目录);本机是把操作系统安装在C盘,则SQLServer的系统目录则是C:
\ProgramFiles\MicrosoftSQLServer。
初始化SQLServer的预编译环境。
初始化VisualC++6.0编译器环境,运行文件:
\MicrosoftVisualStudio\VC98\Bin\VCVARS32.BAT
这个过程要在DOS下运行才有效,即找vcvars32.bat的路径,在DOS下运行。
具体步骤如下:
初始化SQLServer的预编译环境,运行文件:
\devtools\samples\esqlc\setenv.bat。
运行方式与vcvars32.bat相同,结果如下:
初始化VisualC++6.0环境。
Tools->options->directories->Include
Files:
C:
\ProgramFiles\MicrosoftSQLServer\devtools\include
Tools->options->directories->Lib
Files:
C:
\ProgramFiles\MicrosoftSQLServer\devtools\x86lib
注意:
这些路径需要设为第一项。
如下图所示:
Project->Settings->Link->Object/LibraryModules,添加库文件:
SQLakw32.lib,Caw32.lib
注意,两个文件之间用空格分开。
四、实验报告要求
1、用Transact-SQL写出实验操作的语句。
2、实验操作步骤和实验结果。
3、实验中出现的问题和解决方法。
实验七数据库设计
一、实验目的
学习使用数据库设计工具进行数据库的设计,并熟悉数据库的设计的基本方法和步骤,搞清数据库设计各阶段的任务。
二、实验内容
1、熟悉数据库设计工具的设计环境;
2、复习SQL语言命令;
3、复习E-R图的绘制;
4、复习数据库设计的方法、步骤
5、系统数据库的设计;
三、实验步骤
1、对一小型数据库应用系统进行需求分析;
2、绘制E-R图;
3、将E-R模型向数据模型转换;
4、创建数据库,定义基本表
四、实验报告要求
1、用Transact-SQL写出实验操作的语句。
2、实验操作步骤和实验结果。
3、实验中出现的问题和解决方法。
实验八数据完整性和安全性
一、实验目的
1、使学生加深对数据安全性和完整性的理解。
2、掌握SQLServer中有关用户、角色及操作权限的管理方法。
3、掌握域完整性、实体完整性、参照完整性的实现方法。
二、实验内容
1、设置SQLServer的安全认证模式。
2、设置登录帐户。
3、设置数据库用户。
4、设置数据库角色。
5、设置数据库用户权限。
6、使用界面方式创建规则对象,并绑定到列,实现域完整性。
7、为表添加一个标识列,实现实体完整性。
8、为两表建立关联,实现参照完整性。
三、实验步骤
1、设置SQLServer的安全认证模式。
(1)打开企业管理器,在“树”窗口中展开一个服务
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 实验 指导书