南昌大学数据库实验报告.docx
《南昌大学数据库实验报告.docx》由会员分享,可在线阅读,更多相关《南昌大学数据库实验报告.docx(34页珍藏版)》请在冰点文库上搜索。
南昌大学数据库实验报告
实验报告
实验课程:
数据库原理与应用
******
学号:
**********
专业班级:
信息管理与信息系统131班
2015年06月20日
一、实验一实验环境的建立……………………………………3
二、实验二数据库及表的建立…………………………………9
三、实验三表的查询……………………………………………12
四、实验四数据操纵……………………………………………19
五、实验五数据库完整性、安全性研究………………………22
六、实验六简单系统的设计……………………………………
南昌大学实验报告
学生姓名:
学号:
专业班级:
信息管理
实验类型:
□验证□综合□设计□创新实验日期:
实验成绩:
一、实验项目名称:
实验环境的建立
二、实验目的:
1.了解SQLServer2000常用版本和对操作系统的不同要求
2.熟悉SQLServer2000的基本性能
3.正确安装和配置SQLServer2000
三、实验基本原理
SQL是结构化查询语言(StructuredQueryLanguage)的简称,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。
结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
自SQL成为国际标准语言之后,各个数据库厂家纷纷推出各自的SQL软件或与SQL的接口软件。
这就使大多数数据库均用SQL作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础。
SQLServer是一个关系数据库管理系统,它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。
在WindowsNT推出后,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。
SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的一个版本。
该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。
四、主要仪器设备及耗材
相互连成LAN的计算机2台以上,windows2000server操作系统,SQLServer2000安装标准版安装软件。
五、实验步骤
1.安装SQLServer2000:
将安装光盘放入CD-ROM,将自动弹出“SQLServer自动菜单”界面,如果没有自动弹出则选择光盘根目录下的autorun.exe,双击运行:
选择运行“安装SQLServer2000组件”进入安装组件界面,选择“安装数据库服务器”。
进入安装界面后,按照安装提示进行安装;一般需要人工进行干预的有:
●选择安装类型和安装路径:
安装类型有:
典型安装、最小安装、和自定义安装。
安装路径是指SQLServer的系统文件和数据文件的安装位置。
默认情况下“安装类型”是典型安装,“安装路径”是操作系统设定的“ProgramFiles”文件夹。
你可以自行改变,初次安装最好不要改变他,按默认情况使用;
●配置启动服务的帐号:
有两类用户帐号:
一类是与Windows操作系统的集成帐号,一类是混合帐号。
选择第一类帐号进行安装;
2.配置服务器端网络库:
SQLServer支持多种网络库,这些网络库必须与操作系统的网络协议共同工作,才能实现客户机与数据库服务器的通信。
安装完成后,可以通过操作系统的开始菜单操作:
“开始”―>SQLServer”->“数据库服务器网络配置”进行配置;
3.配置客户端网络库:
客户机要与数据库服务器通信,必须安装有与服务器网络库一样的网络库。
可以通过操作系统的开始菜单操作:
“开始”―>SQLServer”->“客户端网络配置”进行配置;
4.使用“企业管理器”:
(1)了解企业管理器的界面、菜单结构以及各项功能;
(2)了解“数据库服务器”的属性配置;(3)了解“数据库”的属性配置;(4)初步了解数据库、表、视图、用户、安全管理,复制等概念;
5.使用查询分析器:
进入查询分析器,在分析器中输入语句:
usepubs
select*fromauthors
运行观看结果
六、实验数据及处理结果
七、思考讨论题或体会或对改进实验的建议
1.查询分析器的作用是什么?
可以有几种启动查询分析器的方法?
分析分析器与数据库的关系;怎样在分析器中选择不同的数据库;怎样在分析器中查看数据库的结构?
答:
查询分析器的作用是:
1、创建查询和其它SQL脚本,并针对SQLServer数据库执行它们。
("查询"窗口)
2、,由预定义脚本快速创建常用数据库对象。
(模板)
3、快速复制现有数据库对象。
(对象浏览器脚本功能)
4、在参数未知的情况下执行存储过程。
(对象浏览器过程执行功能)
5、调试存储过程。
(T-SQL调试程序)
6、调试查询性能问题。
(显示执行计划、显示服务器跟踪、显示客户统计、索引优化向导)
7、在数据库内定位对象(对象搜索功能),或查看和使用对象。
(对象浏览器)
8、快速插入、更新或删除表中的行。
("打开表"窗口)
9、为常用查询创建键盘。
(自定义查询HYPERLINK快捷方式功能)
10、向"工具"菜单添加常用命令。
(自定义"工具"菜单功能)
启动查询分析器的方法:
1、在“开始”菜单中依次选择“所有程序|MicrosoftSQLServer|查询分析器”打开查询分析器。
2、在“开始”菜单中依次选择“所有程序|MicrosoftSQLServer|企业管理器”打开企业管理器后,单击菜单栏中的“工具”选项,选择“SQL查询分析器”,即可打开查询分析器。
分析器与数据库的关系:
在分析器中可以对数据库及数据库中的表进行一系列的操作,如查询和更撰。
在分析器中选择不同的数据库的方法:
在工具栏中“当剌数据库”栏目中,点击小黑三角,在弹凸的下拉列表中选择要倇换的数据库名称即可实现数据库的切换。
在分析器中查看数据库的结构:
在“对象浏览器”窗口不,单击要查看的数据库名称前的“+”,使其变为“-”展开数据库,就可看到数据库的结构,若要查看其中某一遹的结构,仍是单击要查看项目名称前的“弫”。
例如要查看表s的结构,可依次展开“用户表”、“dbo.s”、“列”,即可查看s的结构。
2.遇到的问题及解决的方法
SQL2000太过老旧,无法在win7,win8上运行。
解决办法:
使用虚拟机装XP系统,XP系统支持SQL2000.
3.体会或建议
SQL2000的安装和其他的软件安装类似。
但是这个软件所支持的平台太过老旧,我们教学应该跟紧时代脚步,学习新的SQL版本。
八、参考资料
1.《数据库系统实验指导》,单建魁等著,清华大学出版社
南昌大学实验报告
学生姓名:
学号:
专业班级:
信息管理
实验类型:
□验证□综合□设计□创新实验日期:
实验成绩:
一、实验项目名称:
数据库及表的建立
二、实验目的:
1.巩固数据库的基础知识
2.掌握创建数据库的两种方法,掌握表的建立和删除方法,掌握修改表结构的基本方法
3.掌握对数据库和表的相关操作方法
三、实验基本原理
SQL即结构化查询语言,是关系数据库的标准语言,SQL是一个综合的、功能极强同时又简洁易学的语言。
它集数据查询、数据操纵、数据定义和数据控制功能于一体。
在SQLserver2000中,建立数据库既可以在查询分析器中使用sql语句来实现,也可以在企业管理器中使用菜单命令直接创建。
同样的表的建立和删除,以及修改表结构也有这两种方法。
创建数据库的SQL语句:
createdatabase<数据库名>
创建表的SQL语句:
createtable<表名>(<列名><数据类型>[列级完整性约束条件]
[,<列名><数据类型>[列级完整性约束条件]]
........
[,<表级完整性约束条件>]);
删除基本表的SQL语句:
droptable<表名>[restrict|cascade];
修改表的结构的SQL语句:
altertable<表名>
[add<新列名><数据类型>[完整性约束]]
[drop<完整性约束名>]
[altercolumn<列名><数据类型>];
其中,add子句用于增加新列和新的完整性约束条件,drop字句用于删除指定的完整性约束条件,altercolumn子句用于修改原有的列定义,数据类型。
四、主要仪器设备及耗材
相互连成LAN的计算机2台以上,安装有SQLServer2000软件。
五、实验步骤
1.创建数据库
(1)使用查询分析器创建数据库
打开查询分析器,输入如下的sql命令:
createdatabaseDemo。
执行命令后即建立一个名为“Demo”的数据库。
(2)使用企业管理器创建数据库
打开企业管理器,在左边的小窗口中依次展开目录,找到数据库文件夹,在数据库文件夹处右击,选择“新建数据库”命令,在弹出的数据库属性对话框中输入数据库的名称“Demo”,即可完成创建。
2.查看数据库属性
在查询分析器中,输入如下的sql命令:
execsp_helpdbDemo
执行命令后查看Demo的相关属性
3.创建表
(1)打开查询分析器,在工具栏中切换数据库至新建的“Demo”,输入如下命令:
createtableStudent(
Snochar(10)PRIMARYKEY,
Snamechar(8),Ssexchar(8),SageSMALLINT,Sdeptchar(10)
);来创建学生表Student。
采用同样的方法创建表课程表Course、选课表SC。
创建的语句如下所示。
createtableCourse(
Cnochar(10),Cnamechar(10),Cpnochar(8),CcreditSMALLINT
);来创建课程表Course。
createtableSC(
Snochar(10),Cnochar(8),Gradechar(8)
);来创建选课表SC。
(2)可以使用如insertintoStudentvalues('2015052201','夜神月','男',19,'CS');的命令向Student表中输入数据,也可以在企业管理器中找到Student表后,右击选择“打开表|返回所有行”命令来向表中直接输入数据。
4.修改表结构
1)向Course表中增加“Tname”这一列。
altertableCourseaddTnamechar(5);
对课程表增加一列教师名称。
5.删除表
使用
DROPTABLE<表名>[restrict|cascade];
删除表。
或者直接在对象浏览器窗口中选中表后右击删除表。
六、实验数据及处理结果
创建的数据库名称为“Demo”,又在其下创建了三个表,分别为学生表“Student”(表1)、课程表“Course”(表2)和选课表“SC”(表3)。
图一
图二
图三
七、思考讨论题或体会或对改进实验的建议
1.说明数据库和表的关系?
答:
一个SQL数据库是由多个表构成的,即数据库是表的汇集,是表的主要组成部分。
表在数据库中是存储数据的方式。
2.遇到的问题及解决的方法
答:
在修改学号时提示输入的值与数据类型不一致,或者此值与列的长度不一致。
解决办法:
多打了空格。
删去控制字节数。
3.体会或建议
答:
企业管理器与查询分析器各有优势。
企业管理器中输入数据方便,查询分析器方便进行查询等操作。
八、参考资料
1.《数据库系统实验指导》,单建魁等著,清华大学出版社
南昌大学实验报告
学生姓名:
学号:
专业班级:
信息管理
实验类型:
□验证□综合□设计□创新实验日期:
实验成绩:
一、实验项目名称:
表的查询
二、实验目的:
1.了解查询的概念和方法,掌握查询分析器的使用方法
2.掌握select语句的语法和作用
3.掌握多表连接的方法,能熟练进行多表操作的复杂检索
三、实验基本原理
数据库查询是数据库的核心操作。
SQL提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。
其一般格式为:
SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>].......
FROM<表名或视图名>[,<表名或视图名>]......
[WHERE<条件表达式>]
[GROUPBY<列名1>[HAVING<条件表达式>]]
[ORDERBY<列名2>[ASC|DESC]];
整个SELECT语句的含义是,根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。
如果有GROUPBY子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组。
通常会在每组中作用聚集函数。
如果GROUPBY子句带HAVING短语,则只有满足指定条件的组才予以输出。
如果有ORDERBY子句,则结果还要按<列名2>的值的升序或降序排列。
SELECT语句既可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询。
视图是从一个或几个基本表(或视图)导出的表。
它与基本表不同,是一个虚表。
数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。
视图已经定义,就可以和基本表一样被查询、被删除。
也可以在一个视图之上再定义新的视图,但对视图的更新(增、删、改)操作则有一定的限制。
SQL语言用CREATEVIEW命令建立视图,其一般格式为
CREATEVIEW<视图名>[(<列名>[,<列名>]....)]
AS<子查询>
[WITHCHECKOPTION];
其中,子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDERBY子句和DISTINCT短语。
WITHCHECKOPTION表示对视图进行UPDATE,INSERT和DELECT操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。
删除视图的格式为DROPVIEW<视图名>[CASCADE];
视图定义后就可以像对基本表一样对视图进行查询了。
四、主要仪器设备及耗材
相互连成LAN的计算机2台以上,安装有SQLServer2000软件。
五、实验步骤
1.单表查询
(1)了解select语句的语法
(2)输入一些检索数据,进行简单的检索,并使用top,distinct等关键字
查询所有学生的详细情况:
select*fromStudent;
查询选修了课程的学生学号:
selectdistinctSnofromSC;
查询考试成绩低于80分的学生学号
selectdistinctSnofromSCwhereGrade<80;
查询学号为2015052201的学生的详细情况
select*fromStudentwhereSno='2015052201';
查询年龄在18-19岁之间的学生的姓名、系别和年龄:
selectSname,Sdept,SagefromStudentwhereSagebetween18and19;
查询计算机科学系CS的学生姓名和性别:
selectSname,SsexfromStudentwhereSdeptin('CS');
查询不是数学系MA的学生姓名和性别:
selectSname,SsexfromStudentwhereSdeptnotin('MA');
查询选修了1号课程的学生学号及成绩,查询结果按分数降序排列:
selectSno,GradefromSCwhereCno='1'orderbyGradeDESC;
查询选课学生的情况,查询结果按课程号升序排列,同一门课程按学号降序排列:
select*fromSCorderbyCno,SnoDESC;
查询选修了1号课程的学生的最高分:
selectmax(grade)fromSCwhereCno='1';
求出各个课程号及相应的选课人数:
selectCno,count(distinctSno)fromSCgroupbyCno;
2.多表查询
(1)连接查询
查询计算机科学系CS年龄在20岁以下的学生姓名:
selectdistinctSnamefromStudent,SCwhereSdept='CS'andSage<20;
查询选修了4号课程且成绩在85分以上的所有学生:
selectStudent.Sno,Student.SnamefromStudent,SC
whereStudent.Sno=SC.SnoandSC.Cno='4'andgrade>85;
查询学生131003的平均分
selectavg(Grade)asaveragefromSC,CoursewhereSno='2015052206'andSC.Cno=Course.Cno;
(2)嵌套查询
查询选修了6号课程且成绩在80分以上的所有学生
selectStudent.Sno,Student.SnamefromStudent,SCwhereStudent.Sno=SC.SnoandSC.Cno='6'andgrade>80;
查询与远坂凛同样专业的学生:
selectSno,SnamefromStudentwhereSdeptin(selectSdeptfromStudentwhereSname='远坂凛');
查询已经选课“操作系统”的学生的姓名
selectSnameFromStudentwhere
exists(select*fromSCwhereSno=Student.SnoandCno='4');
找出每个学生超过他选修课程平均成绩的课程号
selectSno,CnofromSCx
wheregrade>(selectavg(Grade)fromSCywherey.Sno=x.Sno);
3.视图的建立及使用视图进行检索
建立CS系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有该系的学生:
createviewCS_StudentasselectSno,Sname,Sage,SsexfromStudentwhereSdept='CS'
建立一个由学生学号和他的平均成绩定义的视图:
createviewS_G(Sno,Gavg)asselectSno,avg(Grade)fromStudentgroupbySno
删除视图CS_Student:
dropviewCS_Student;
在S_G视图中查询平均成绩在80分以上的学生学号和平均成绩:
selectSno,GavgfromS_GwhereGavg>=80;
将CS_Student视图中学号为2015052210的学生姓名改为“桐人”:
updateCS_StudentsetSname='桐人'whereSno='2015052210';
向CS_Student视图中插入一个新的学生记录,学号为2015052211,姓名为新一,男,20岁。
insertintoCS_Studentvalues('2015052211','新一','20','男');
删除信息管理系学生视图中学号为2015052211的记录:
deletefromCS_StudentwhereSno='2015052211';
六、实验数据及处理结果
建立的数据库名和表名及数据如实验二,各查询的结果依次如下图:
1.单表查询
1)所有学生的详细情况2)查询选修了课程的学生学号
3)查询考试成绩低于80分的学生学号4)查询学号为2015052201的学生的详细情况
5)查询年龄在18-19岁之间的学生的姓名、系别和年龄6)查询计算机科学系CS的学生姓名和性别
7)查询不是数学系MA的学生姓名和性别8)查询选修了1号课程的学生学号及成绩,查询结果按分数降序排列
9)查询选课学生的情况,查询结果按课程号升序排列,同一门课程按学号降序排列
10)查询选修了1号课程的学生的最高分11)各个课程号及相应的选课人数
2.多表查询
1.查询CS年龄在20岁以下的学生姓名2.查询选修4号课程且成绩在85分以上的学生
3.查询学生131003的平均分4.查询选修了6号课程且成绩在80分以上的所有学生
5.查询与远坂凛同样专业的学生6.查询已经选课“操作系统”的学生的姓名
7.找出每个学生超过他选修课程平均成绩的课程号
3.视图建立与检索操作
1.建立CS系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有该系的学生
2.建立一个由学生学号和他的平均成绩定义的视图3.查询平均80分以上的学生学号和平均成绩
4.将CS_Student视图中学号为2015052210的学生姓名改为“桐人”
5.向CS_Student视图中插入一个新的学生记录,学号为2015052211,姓名为新一,男,20岁。
七、思考讨论题或体会或对改进实验的建议
1.说明多表连接属于自然连接还是等值连接?
答:
属于等值连接。
2.遇到的问题及解决的方法
答:
在企业管理器中编辑后,在查询分析器中找不到数据。
后面发现
3.体会或建议
八、参考资料
1.《数据库系统实验指导》,单建魁等著,清华大学出版社
南昌大学实验报告
学生姓名:
学号:
专业班级:
信息管理
实验类型:
□验证□综合□设计□创新实验日期:
实验成绩:
一、实验项目名称:
数据操纵
二、实验目的:
1.掌握查看、重命名及删除用户定义的数据类型的方法
2.掌握向表中添加、删除和修改数据的方法
三、实验基本原理
SQL中插入元组的I