当前位置:文档之家› 数据库原理实验指导书

数据库原理实验指导书

数据库原理实验指导书实验名称:试验一:SQL语言嵌套查询和数据更新操作所属课程:数据库原理实验类型:设计型实验实验类别:基础□专业基础√专业□实验学时:4学时一、实验目的1.熟悉和掌握对数据表中数据的查询操作和SQL命令的使用,学会灵活熟练的使用SQL 语句的各种形式;2.加深理解关系运算的各种操作(尤其的关系的选择,投影,连接和除运算);3.熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用;4.加深理解表的定义对数据更新的作用二、预习与参考1.熟悉SQL SERVER 工作环境;2.连接到学生-课程数据库3.复习对表中数据查询的SQL语言命令;4.复习对表中数据的插入、修改和删除的SQL语言命令。

三、实验要求(设计要求)针对教材例子,通过SQL SERVER企业管理器和查询分析器两种模式,熟悉数据嵌套查询、更新操作。

四、实验方法及步骤1.在表S、C、SC上进行简单查询;2.在表S、C、SC上进行连接查询;3.在表S、C、SC上进行嵌套查询;4.使用聚合函数的查询;5.对数据的分组查询;6.对数据的排序查询。

7.将数据插入当前数据库的表S、C、SC中;A:用SQL命令形式B:用SQL SERVER提供的企业管理器以交互方式进行8.将以上插入的数据分别以.SQL文件和.txt文件的形式保存在磁盘上;9.修改表S、C、SC中的数据;A:用SQL命令形式B:用SQL SERVER提供的企业管理器以交互方式进行10.删除表S、C、SC中的数据。

A:用SQL命令形式B:用SQL SERVER提供的企业管理器以交互方式进行五、实验内容在表S,C,SC上完成以下操作:1.查询学生的基本信息;2.查询‚CS‛系学生的基本信息;3.查询‚CS‛系学生年龄不在19到21之间的学生的学号、姓名;4.找出最大年龄;5.找出‚CS‛系年龄最大的学生,显示其学号、姓名;6.找出各系年龄最大的学生,显示其学号、姓名;7.统计‚CS‛系学生的人数;8.统计各系学生的人数,结果按升序排列;9.按系统计各系学生的平均年龄,结果按降序排列;10.查询每门课程的课程名;11.查询无先修课的课程的课程名和学时数;12.统计无先修课的课程的学时总数;13.统计每位学生选修课程的门数、学分及其平均成绩;14.统计选修每门课程的学生人数及各门课程的平均成绩;15.找出平均成绩在85分以上的学生,结果按系分组,并按平均成绩的升序排列;16.查询选修了‚1‛或‚2‛号课程的学生学号和姓名;17.查询选修了‚1‛和‚2‛号课程的学生学号和姓名;18.查询选修了课程名为‚数据库系统‛且成绩在60分以下的学生的学号、姓名和成绩;19.查询每位学生选修了课程的学生信息(显示:学号,姓名,课程号,课程名,成绩);20.查询没有选修课程的学生的基本信息;21.查询选修了3门以上课程的学生学号;22.查询选修课程成绩至少有一门在80分以上的学生学号;23.查询选修课程成绩均在80分以上的学生学号;24.查询选修课程平均成绩在80分以上的学生学号;25.选做:针对SPJ数据库中的四个表S,P,J,SPJ,完成教材P74-75--习题5中的查询及教材P127--习题5中的查询。

26.将数据分别插入表S、C、SC;27.将表S、C、SC中的数据分别以.SQL文件和.txt文件的形式保存在磁盘上。

28.在表S、C、SC上练习数据的插入、修改、删除操作。

(比较在表上定义/未定义主码(Primary Key)或外码(Foreign Key)时的情况)29.将表S、C、SC中的数据全部删除,再利用磁盘上备份的数据来恢复数据。

30.如果要在表SC中插入某个学生的选课信息(如:学号为‚200215121‛,课程号为‚c123‛,成绩待定),应如何进行?31.求各系学生的平均成绩,并把结果存入数据库;32.将‚CS‛系全体学生的成绩置零;33.删除‚CS‛系全体学生的选课记录;34.删除学号为‚S1‛的相关信息;35.将学号为‚S1‛的学生的学号修改为‚S001‛;36.把平均成绩大于80分的男同学的学号和平均成绩存入另一个表S——GRADE (SNO,AVG——GRADE);37.把选修了课程名为‚数据结构‛的学生的成绩提高10%;38.把选修了‚C2‛号课程,且成绩低于该门课程的平均成绩的学生的成绩提高5%;39.把选修了‚C2‛号课程,且成绩低于该门课程的平均成绩的学生成绩删除掉;40.选做:将数据插入SPJ数据库中的四个表S,P,J,SPJ中,并以.SQL文件和.txt 文件的形式保存在磁盘上。

六、实验成绩评定方法实验成绩总分以100分计,其中实验准备占30%,实验操作占40%,其它占30%。

七、实验报告要求按规定格式撰写八、实验思考1.使用SQL的更新语句时,一次可以对几个表进行更新。

2.在进行数据更新时,可能产生破坏数据完整性的情况,因此,在数据更新(尤其是多表更新)时,应注意什么问题。

3.比较表中定义/未定义主码(Primary Key)时,对表S的更新操作有何异同。

4.比较在表之间定义/未定义外码(Foreign Key)时,对表S的更新操作有何异同。

5.若要修改已定义表的属性或删除已定义表的某一属性列,应如何进行?6.在表上未定义主码时,数据更新的情况?7.在表S 和SC 表上建立了外码联系时,要删除学号为‘S2’的学生记录,应如何进行?如果在表S 和SC 表上未建立外码联系,情况会是怎样的?DELETE FROM "s"WHERE "s"."sno" = 's2' ;DELETE FROM "sc"WHERE "sc"."sno" = 's2' ;DELETE FROM "sc"WHERE "sc"."sno" = 's2' ;DELETE FROM "s"WHERE "s"."sno" = 's2' ;实验名称:试验二:通过嵌入式SQL访问数据库所属课程:数据库原理实验类型:设计型实验实验类别:基础□专业基础√专业□实验学时:4学时一、实验目的应用C语言、、VC#等开发工具,通过ODBC接口,实现嵌入式SQL语言与高级语言的通信,验证SQL以同一种语法提供的两种不同的使用方式,实现数据定义(Create 、Alter、Drop)、数据操作(Insert、Update、Delete、Select)和数据控制(Grant、Revoke)功能。

二、预习与参考1.熟悉SQL SERVER 工作环境;2.连接到学生-课程数据库;3.熟悉一种开发工具;4.复习对表中数据查询的SQL语言命令;5.复习对表中数据的插入、修改和删除的SQL语言命令。

三、实验工具通过C语言等编写访问数据库的应用程序来对数据库进行各种数据操作。

编程工具自选。

四、实验内容和要求所有的SQL操作均在自己建立的新库里进行,在SQL Server 2000中建立一个名为TEMP的库进行各种操作。

根据以下要求认真填写实验报告,并且提交源程序(开发语言可以用C、、VC#等,下文以C/C++,或VC++为例),保证可正确编译运行。

将一段连续的SQL操作写成嵌入到C程序中的程序,调试程序,使得程序能完成一项复杂的数据访问功能。

要求:提交程序五、实验成绩评定方法实验成绩总分以100分计,其中实验准备占30%,实验操作占40%,其它占30%。

六、实验报告要求按规定格式撰写七、参考资料1.嵌入式SQL由SQL语句和C/C++代码组成。

其中SQL语句由预处理器翻译成C或C++的源代码。

对预处理后的源代码进行编译、连接生成可执行程序后方可运行。

2.SQLServer的预处理程序是nsqlprep.exe。

其常用的语法格式如下:Nsqlprep 程序文档名–nosqlaccessNsqlprep详细的语法格式以及参数意义,请看联机帮助。

要求程序文档名的后缀为.sqc,可以省略。

3.预编译后得到的文档,与程序文档同名,后缀为.c;放在与程序文档名同一个路径下。

4.nsqlprep.exe在SQLServer的安装目录的 MSSQL\Binn下。

例如,如果SQLServer 的安装目录是D:\Program Files\Microsoft SQL Server,那么nsqlprep.exe则在D:\Program Files\Microsoft SQL Server\MSSQL\Binn。

但是,默认的安装方式(典型安装)并没有安装应用程序nsqlprep.exe,因此,需要把binn.rar的内容拷贝到该目录下。

5.连接方式经预处理后的c文件就可以用c的编译器进行编译连接了。

使用Visual C++ 6.0进行编译连接,连接方式是动态连接,用到动态链接库SQLakw32.dll,SQLaiw32.dll;此两文件已经随同binn.rar的其他内容,被拷贝到D:\Program Files\Microsoft SQL Server\MSSQL\Binn下;但仍然需要把该路径加到系统的路径变量中,以使得程序运行时能找到这两个文件。

方法1:把该两文件拷贝到操作系统目录下的子目录system32中方法2:把D:\Program Files\Microsoft SQL Server\MSSQL\Binn加到系统环境变量path中。

“我的电脑”->“属性”->“高级”->“环境变量”->“path,编辑”,如下图所示:在变量值中加入该路径值;注意,路径间用分号”;”分开。

6.初始化环境:SQL Server2000为其嵌入式SQL提供了一些特殊的接口;默认的安装方式(典型安装)并没有安装这些接口;因此,需要把devtools.rar解压到SQLServer的系统目录下(注意,不是安装目录);例如操作系统安装在C盘,则SQLServer的系统目录则是C:\Program Files\Microsoft SQL Server。

后面的设置,假设操作系统安装在C盘。

(1)初始化SQL Server的预编译环境。

(2)初始化Visual C++ 6.0 编译器环境,运行文件:\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT(3)初始化SQLServer的预编译环境,运行文件:\devtools\samples\esqlc\setenv.bat。

相关主题