SQL实验报告册.docx
《SQL实验报告册.docx》由会员分享,可在线阅读,更多相关《SQL实验报告册.docx(46页珍藏版)》请在冰豆网上搜索。
SQL实验报告册
实验报告册
学期:
院系:
课程名称:
班级:
任课教师:
学号:
姓名:
年月日
实验名称
实验一:
创建数据库表
实验环境
信息学院北院实验室
WindowsXP;SQLServer
实验目的、要求
1.了解SQLServer数据库的逻辑结构和物理结构。
2.了解表的结构特点。
3.了解SQLServer的基本数据类型。
4.学会界面方式、T-SQL语句创建数据库和表。
实验准备
1.要明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATEDATABASE语句的用户。
2.创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长及增长的方式)和存储数据的文件。
3.确定数据库包含哪些表以及包含的各表的结构,还要了解SQLServer的常用数据类型,以创建数据库的表。
4.了解常用的创建数据库和表的方法。
实验内容、步骤
(详细写明每一个实验的具体步骤,如何实现,在过程中是否碰到问题,如何解决问题。
常用文字、图、表等描述,可另附页)
数据库概述
随着信息管理水平的不断提高,应用范围的日益扩大,信息已成为企业的重要财富和资源,同时,用于管理信息的数据库技术也得到了很大的发展,其应用邻域越来越广泛。
1、实验内容
创建学生-课程数据库,数据库名为“自己的名字”,包含学生的信息、课程的信息以及学生选修的信息,即数据库中包含下列3个表:
(l)Student:
学生信息表。
(2)Course:
课程信息表。
(3)Sc:
选修情况表。
2.实验步骤
(1)使用T-SQL语句创建数据库
按照上述要求创建学生-课程数据库。
启动查询分析器→在“查询”窗口中输人创建数据库的T-SQL语句。
单击快捷工具栏的执行图标执行上述语句,并查看执行结果。
打开查询分析器,在工作区域输入createdatabase曾国荣创建一个以自己名字为名的库,结果如图
(1)所示:
图
(1)
(2)使用T-SQL语句在所创建的数据库中创建Student、Course和Sc表。
单击快捷工具栏的执行图标执行上述语句,并查看执行结果。
在创建好的名为曾国荣的数据库中创建student、course和sc表操作如下:
在工作区域输入
createtableStudent(
Snochar(7)PRIMARYKEY,
Snamechar(10)notnull,
Ssexchar
(2),
Sagetinyint,
Sdeptchar(20)
)
创建student表,结果如图
(2)所示:
图
(2)
在工作区域输入
createtableCourse(
Cnochar(6)notnull,
Cnamechar(20)notnull,
Ccredittinyint,
Semestertinyint,
PRIMARYKEY(Cno)
)
Select*fromcourse
创建course表,结果如图(3)所示:
图(3)
在工作区域输入
createtableSC(
Snochar(7)notnull,
Cnochar(6)notnull,
Gradetinyint,
PRIMARYKEY(Sno,Cno),
FOREIGNKEY(Sno)REFERENCESStudent(Sno),
FOREIGNKEY(Cno)REFERENCESCourse(Cno)
)
Select*fromsc
创建sc表,结果如图(4)所示:
图(4)
总结:
对上机实验结果进行分析、上机的心得体会及改进意见。
1.通过此次的实验操作学会了使用SQL语句创建简单的数据库和表,并且熟悉了查询分析器的工作界面。
2.实际操作发现,查询分析器对字母的大小写不敏感。
由此可以加深印象,不必在意字母大小写对数据查询的影响。
3.有学过高级程序语言设计的基础有助于SQL语言的理解和使用。
4.创建表是一定要根据实际需要来决定使用什么样的数据类型存放数据以及分配其大小。
教师评语及成绩评定:
实验名称
实验二:
数据查询
实验环境
信息学院北院实验室
WindowsXP;SQLServer
实验目的、要求
1.掌握SELECT语句的基本语法。
2.掌握子查询的表示。
3.掌握连接查询的表示。
4.掌握SELECT语句的统计函数的作用和使用方法。
5.掌握SELECT语句的GROUPBY和ORDERBY子句的作用和使用方法。
实验准备
1.了解SELECT语句的基本语法格式。
2.了解SELECT语句的执行方法。
3.了解子查询的表示方法。
4.了解SELECT语句的统计函数的作用。
5.了解SELECT语句的GROUPBY和ORDERBY子句的作用。
实验内容、步骤
(详细写明每一个实验的具体步骤,如何实现,在过程中是否碰到问题,如何解决问题。
常用文字、图、表等描述,可另附页)
数据查询概述
查詢功能是SQL語言的核心功能,是數據庫中使用得最多的操作,查詢語句也是SQL語句中比較複雜的一個語句。
查詢語句是數據庫操作中最基本和最重要的語句之一,其功能是從數據庫中檢索滿足條件的數據。
1、实验内容
以创建的学生-课程数据库,数据库包含学生的信息、课程的信息以及学生选修的信息,即数据库中包含下列3个表:
(l)Student:
学生信息表。
(2)Course:
课程信息表。
(3)Sc:
选修情况表。
2.实验步骤
(1)使用T-SQL语句查詢数据库
按照上述要求查詢学生-课程数据库。
启动查询分析器→在“查询”窗口中输人查詢数据库的T-SQL语句。
单击快捷工具栏的执行图标执行上述语句,并查看执行结果。
在工作区域输入
/*查询全体学生的学号,姓名和所在系。
*/
selectSname,Sno,Sdept
fromStudent
結果如圖
(1)所示:
圖
(1)
在工作区域输入
/*查询学生表中姓“张”,“李”,“刘”的学生详细信息。
*/
select*fromStudent
whereSnameLIKE'[张李刘]%'
結果如圖
(2)所示:
圖
(2)
在工作区域输入
/*查询选修了“VB”课程的学生的学号和姓名。
*/
selectSno,Sname
fromStudent
whereSnoIN(
selectSnoFromSC
whereCnoIN(
selectCnofromCourse
whereCname='VB')
結果如圖(3)所示:
圖(3)
在工作区域输入
/*统计计算机系每个学生的选课门数,包括没有选课的学生,结果按选课门数递减*/
selectS.SnoAS学号,count(SC.Cno)AS选课门数
fromstudentSLEFTJOINSCONS.Sno=SC.SNo
whereSdept='计算机系'
GROUPBYS.Sno
ORDERBYcount(SC.CNO)DESC
結果如圖(4)所示:
圖(4)
总结:
对上机实验结果进行分析、上机的心得体会及改进意见。
本次实验是在上两次实验的基础上进行的,主要是考察对单表查询、连接查询、集合查询、统计查询和嵌套查询代码的掌握,总体来说这次实验在做的时候问题不大,但是在写代码的时候发现自己对嵌套查询以及EXISTS的使用还不够熟悉,需要加强。
教师评语及成绩评定:
实验名称
实验三:
操作数据库表
实验环境
信息学院北院实验室
WindowsXP;SQLServer
实验目的、要求
1.学会界面方式对表进行插入、修改和删除数据操作。
2.学会使用T-SQL语句对表进行插入、修改和删除数据操作。
3.了解T-SQL语句对表数据库操作的灵活控制功能。
实验准备
1.了解表的更新操作,即数据的插入、修改和删除,对表数据的操作可以利用界面方式进行,也可以由T-SQL语句实现。
2.掌握T-SQL中用于对表数据进行插入(INSERT)、修改(UPDATE)和删除(DELETE或TRANCATETABLE)命令的用法。
3.了解使用T-SQL语句在对表数据进行插入、修改及删除时,比在图形界面中操作表数据灵活,功能更强大。
实验内容、步骤
(详细写明每一个实验的具体步骤,如何实现,在过程中是否碰到问题,如何解决问题。
常用文字、图、表等描述,可另附页)
數據更改功能概述
如果要對數據進行各種更新操作,包括添加新數據、修改數據和刪除數據,則需要使用數據修改語句:
INSERT、UPDATE和DELETE來完成。
數據修改語句修改數據庫中的數據,但不返回結果集。
1、实验内容
以创建的学生-课程数据库,数据库包含学生的信息、课程的信息以及学生选修的信息,即数据库中包含下列3个表:
(l)Student:
学生信息表。
(2)Course:
课程信息表。
(3)Sc:
选修情况表。
2.实验步骤
(1)使用T-SQL语句更改数据库
按照上述要求更改学生-课程数据库。
启动查询分析器→在“查询”窗口中输人更改数据库的T-SQL语句。
单击快捷工具栏的执行图标执行上述语句,并查看执行结果。
在工作区域输入
/*将新生记录(9521104,曾国荣,男,21,信息系)插入到学生表中。
*/
INSERTINTOStudent
VALUES('9521104','曾国荣','男','21','信息系')
結果如圖
(1)所示:
圖
(1)
在工作区域输入
/*将"9521104"学生的年龄改为岁。
*/
UPDATEstudentSETSage=18
whereSno='9521104'
結果如圖
(2)所示:
圖
(2)
在工作区域输入
/*刪除所有學生的選課記錄。
*/
DeletefromSC
总结:
对上机实验结果进行分析、上机的心得体会及改进意见。
第一次做数据库的实验,也是第一次用查询分析器,对于我来说都是新的事物。
然后根据书上以及实验报告书上的内容一点一点摸索,在做出第一个题目的时候还是很有自豪感的。
实验中也遇到过代码出错的问题,在询问老师之后才发现和书上的有些不同。
所以有时候也不能对书上的内容生搬硬套,还是要随机而变。
这些题目在平时做课后题的时候并不会,但是做实验的时候自己也定下心来慢慢研究,也一题一题的做出来了。
所以没有什么事情是做不成的,主要是静下心来。
数据库的上机实验应该是我做的最认真的实验没有之一。
教师评语及成绩评定:
实验名称
实验四:
数据完整性
实验环境
信息学院北院实验室
WindowsXP;SQLServer
实验目的、要求
1.掌握实体完整性、参照完整性、域完整性。
2、掌握约束的定义及其删除方法。
实验准备
1.了解数据完整性概念。
2.了解约束的类型。
3.了解创建约束和删除约束的语法。
4.了解创建默认值和删除默认值的语法。
实验内容、步骤
(详细写明每一个实验的具体步骤,如何实现,在过程中是否碰到问题,如何解决问题。
常用文字、图、表等描述,可另附页)
关系模型的完整性约束
数据完整性是指数据库中存储的数据是有意义的或正确的。
关系模型中的数据完整性规则是对关系的某种约束条件。
数据完整性约束主要包括三大类:
实体完整性、参照完整性、用户定义的完整性。
1、实验内容
以创建的学生-课程数据库中,创建3张表的SQL语句,要求在定义表的同时定义数据的完整性约束,数据库包含图书表、书店表以及图书销售表的信息,即数据库中包含下列3个表:
(l)图书表
(2)书店表
(3)图书销售表
2.实验步骤
(1)使用T-SQL语句更改数据库
按照上述要求更改学生-课程数据库。
启动查询分析器→在“查询”窗口中输人创建表的T-SQL语句。
单击快捷工具栏的执行图标执行上述语句,并查看执行结果。
在工作区域输入
Createtable图书表(
书号nchar(6)primarykey,
书名nvarchar(30)notnull,
第一作者char(10)notnull,
出版日期smalldatetime,
价格numeric(4,1))
結果如圖
(1)所示:
图
(1)
在工作区域输入
Createtable书店表(
书店编号nchar(6)primarykey,
店名nvarchar(30)notnull,
电话char(8)check(电话like
‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]),
地址varchar(40),
邮政编码char(6))
結果如圖
(2)所示:
图
(2)
在工作区域输入
Createtable图书销售表(
书号nchar(6)notnull,
书店编号nchar(6)notnull,
销售日期smalldatetimenotnull;
销售数量smalldatetimecheck(销售数量>=1))
結果如圖(3)所示:
图(3)
总结:
对上机实验结果进行分析、上机的心得体会及改进意见。
实验后,对数据完整性约束的检查是由数据库管理系统自动实现的,而且是在数据更改操作执行之前先判断完整性约束。
教师评语及成绩评定:
实验名称
实验五:
索引的应用
实验环境
信息学院北院实验室
WindowsXP;SQLServer
实验目的、要求
1.掌握创建索引的命令。
2.掌握使用图形界面方式创建索引的方法。
3.掌握使用创建索引向导创建索引的方法。
4.掌握查看索引的系统存储过程的用法。
实验准备
1.了解聚集索引和非聚集索引的概念。
2.了解创建索引的语法。
3.了解使用图形界面方式创建索引的步骤。
4.了解使用索引向导创建索引的步骤。
5.了解索引更名系统存储过程的用法。
6.了解删除索引的SQL命令的用法。
实验内容、步骤
(详细写明每一个实验的具体步骤,如何实现,在过程中是否碰到问题,如何解决问题。
常用文字、图、表等描述,可另附页)
索引的基本概念
数据库中的索引与书籍中的目录或书后的术语表类似,在数据库中,索引使对数据的查找不需要对整个表进行扫描,就可以在其中找到所需数据。
可以为表中的单个列建立索引,也可以为一组列建立索引,索引一般采用B树结构。
1、实验内容
以创建的学生-课程数据库中,使用数据库中Student、Course和SC表,写出实现下列操作的SQL语句。
即数据库中包含下列3个表:
(l)Student:
学生信息表。
(2)Course:
课程信息表。
(3)Sc:
选修情况表。
2.实验步骤
(1)使用T-SQL语句更改数据库
按照上述要求更改学生-课程数据库。
启动查询分析器→在“查询”窗口中输人创建表的T-SQL语句。
单击快捷工具栏的执行图标执行上述语句,并查看执行结果。
在工作区域输入
/*在Student表上为Sname列建立一个聚集索引,索引名为:
Sldx。
*/
Create clustered index sldx on student(sname)
結果如圖
(1)所示:
图
(1)
在工作区域输入
/*在Course表上为Cname列建立一个唯一的非聚集索引,名为:
CNIdx */
Create unique nonclustered index CNldx on course(cname)
結果如圖
(2)所示:
图
(2)
在工作区域输入
/*在SC表上为Sno和Cno建立一个组合的聚集索引,索引名为:
SnoCnoldx。
*/
Create clustered index SnoCnoldx on sc (sno, cno)
結果如圖(3)所示:
图(3)
总结:
对上机实验结果进行分析、上机的心得体会及改进意见。
视图查询的效率更高。
视图能够简化用户的操作,通过定义视图,使数据库看起来结构简单、清晰。
教师评语及成绩评定:
实验名称
实验六:
视图的应用
实验环境
信息学院北院实验室
WindowsXP;SQLServer
实验目的、要求
1.掌握创建视图的SQL语句的用法。
2.掌握使用图形界面创建视图的方法。
3.掌握使用创建视图向导创建视图的方法。
4.掌握查看视图的系统存储过程的用法。
5.掌握修改视图的方法。
实验准备
1.了解创建视图方法。
2.了解修改视图的SQL语句的语法格式。
3.了解视图更名的系统存储过程的用法。
4.了解删除视图的SQL语句的用法。
实验内容、步骤
(详细写明每一个实验的具体步骤,如何实现,在过程中是否碰到问题,如何解决问题。
常用文字、图、表等描述,可另附页)
视图基本概念
视图是由从数据库的基本表中选取出来的数据组成的逻辑窗口,是基本表的部分行和列数据的组合。
它与基本表不同的是,视图是一个虚表。
数据库中只存储视图的定义,而不存储视图所包含的数据,这些数据仍然存放在原来的基本表中。
这种模式有两个好处:
1、视图数据始终与基本表数据保持一致。
2、节省存储空间。
在工作区域输入
/*建立学生的学号、姓名、性别和年龄的视图*/
CREATEVIEWIS_Student
AS
SELECTSno,Sname,Ssex,Sage
fromstudent
WHERESdept=’信息系’
结果如图
(1)所示:
图
(1)
在工作区域输入
/*查询学生的学号、姓名、所在系、课程号、课程名、课程学分。
*/
Createviewv1as
Selects.sno,sname,sdept,o,cname,credit
fromstudentsjoinsc
ons.sno=sc.sno
Joincoursecono=o
结果如图
(2)所示
图
(2)
在工作区域输入
/*查询学生的学号、,姓名、选修的课程名和考试成绩。
*/
Createviewv2As
Selects.sno,sname,cname,grade
Fromstudentsjoinscons.sno=sc.sno
Joincoursecono=o
结果如图(3)所示
图(3)
在工作区域输入
/*定义一个查询每个学生的学号及平均成绩的视图.*/
createviewS_G
as
selectsno,avg(grade)averagegrade
fromsc
groupbysno
结果如图(4)所示:
图(4)
在工作区域输入
/*修改视图,使其统计每个学生的考试平均成绩和修课门数*/
alterviewS_G(sno,averageGrade,count_cno)
as
selectsno,avg(grade),count(*)
fromsc
groupbysno
结果如图(5)所示:
图(5)
在工作区域输入
/*删除视图IS_student*/
DROPVIEWIS_student
总结:
对上机实验结果进行分析、上机的心得体会及改进意见。
视图查询的效率更高。
视图能够简化用户的操作,通过定义视图,使数据库看起来结构简单、清晰。
教师评语及成绩评定:
实验名称
实验七:
SQLServer管理
实验环境
信息学院北院实验室
WindowsXP;SQLServer
实验目的、要求
1.掌握SQLServer的安全机制。
2.掌握服务器的安全性的管理。
3.掌握数据库用户的管理。
4.掌握权限的管理。
实验准备
1.了解SQLServer的安全机制。
2.了解登录账号的创建、查看、禁止、删除方法。
3.了解更改、删除登录账号属性的方法。
4.了解数据库用户的创建、修改、删除方法。
5.了解数据库用户权限的设置方法。
6.了解数据库角色的创建、删除方法。
实验内容、步骤
(详细写明每一个实验的具体步骤,如何实现,在过程中是否碰到问题,如何解决问题。
常用文字、图、表等描述,可另附页)
安全管理概述
安全性问题并非数据库管理系统所有,实际上在许多系统中都存在同样的问题。
数据库的安全控制是指:
在数据库应用系统的不同层次提供对有意和无意损害行为的安全防范。
在数据库中,对有意的非法活动可以采取加密存、取数据的方法控制;对有意的非法操作可以使用用户身份验证、限制操作权等方法来控制;对无意的损害可以采用提高系统的可靠性和数据备份等方法来控制。
一、实验内容及步骤
1、检查实验条件:
以SQLsever2005为实验软件。
2、按方案操作并记录实验数据
(1)在登录图形界面中(cjh-pc)找到“安全性”--“登陆”,并单击右键,,选择“新建登陆”,如图1所示。
图
(1)
(2)选择“新建登陆”菜单项,输入登陆用户名“曾国荣”,登陆口令为123,并选择sqlserver身份验证,选择数据库为默认数据库,如图2所示。
图
(2)
(3)刷新数据库,在登录名可以看到新建的登录名“曾国荣”,如图3所示。
图(3)
(4)在数据库-安全性-用户下新建数据库用户,以“曾国荣”用户名和登录名,如图4所示。
图(4)
(5)刷新数据库,在安全性-用户下可以看到新建的用户名“曾国荣”,如图5所示。
图(5)
(6)重新启动SQLsever或断开连接数据库,如图6所示。
图(6)
(7)用新建的用户名-曾国荣登录数据库,如图7所示。
(8)登录后,就是以自己命名的数据库,如图8所示。
图(8)
(9)选择数据库-表-dbo.student表,点击右键属性,点击权限并点击添加,添加新建的用户名“曾国荣”,如图9-10所示。
图(9)
图(10)
(10)选择要赋予的权限,图中勾选了Delect、Insert,如图11所示。
图(11)
(11)选择曾国荣-数据库-student表下的dbo.student表,点击右键修改表,应被赋予了Delect、Insert权限,只能对表进行删除和插入,如图12所示。
图(12)
总结:
对上机实验结果进行分析、上机的心得体会及改进意见。
本次实验是讨论数据库的安全性问题,它的核心技术是身份识别,通过用户管理和权限管理实现对数据库的安全管理。
本次实验的另外一个重点就是学会数据库的备份和还原,对数据库因软件或硬件损坏情况做好数据库安全保护。
教师评语及成绩评定:
实验名称
实验八:
备份和还原
实验环境
信息学院北