数据库实验报告.docx

上传人:b****6 文档编号:15972581 上传时间:2023-07-09 格式:DOCX 页数:18 大小:161.32KB
下载 相关 举报
数据库实验报告.docx_第1页
第1页 / 共18页
数据库实验报告.docx_第2页
第2页 / 共18页
数据库实验报告.docx_第3页
第3页 / 共18页
数据库实验报告.docx_第4页
第4页 / 共18页
数据库实验报告.docx_第5页
第5页 / 共18页
数据库实验报告.docx_第6页
第6页 / 共18页
数据库实验报告.docx_第7页
第7页 / 共18页
数据库实验报告.docx_第8页
第8页 / 共18页
数据库实验报告.docx_第9页
第9页 / 共18页
数据库实验报告.docx_第10页
第10页 / 共18页
数据库实验报告.docx_第11页
第11页 / 共18页
数据库实验报告.docx_第12页
第12页 / 共18页
数据库实验报告.docx_第13页
第13页 / 共18页
数据库实验报告.docx_第14页
第14页 / 共18页
数据库实验报告.docx_第15页
第15页 / 共18页
数据库实验报告.docx_第16页
第16页 / 共18页
数据库实验报告.docx_第17页
第17页 / 共18页
数据库实验报告.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库实验报告.docx

《数据库实验报告.docx》由会员分享,可在线阅读,更多相关《数据库实验报告.docx(18页珍藏版)》请在冰点文库上搜索。

数据库实验报告.docx

数据库实验报告

合肥师范学院

实验报告册

2014/2015学年第2学期

系别

计算机学院

实验课程

数据库原理

专业

班级

姓名

学号

指导教师

实验名称

课时

实验报告成绩

实验

(一)——数据库基本操作

2

实验

(二)——SQL语句

6

实验(三)——数据库完整性与安全性实验

4

实验(四)——数据库编程

4

备注:

实验一——数据库基本操作

一、实验目的

1.熟悉MSSQLSERVER运行界面,掌握服务器的基本操作。

2.掌握界面操作方法完成用户数据库建立、备份和还原。

3.建立两个实验用的数据库,使用企业管理器和查询分析器对数据库和表进行基本操作。

二、实验预习内容

在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。

1.熟悉SQLSERVER2000的运行环境,练习服务器基本操作:

打开、停止、关闭。

2.使用SQLSERVER2000中的企业管理器完成以下任务。

数据库名称:

STC

表:

STU(snochar(9),snamevarchar(50),ssexchar

(2),sageint,sdeptchar

(2));

COUTSES(cnochar(3),cnamevarchar(50),cpnochar(3),creditint);

SC(snochar(9),cnochar(3),gradeint);

说明:

以上为表结构,以snochar(9)为例,说明sno属性设置为字符类型,宽度为9,int指整型数据。

1)建立数据库STC,分别建立以上三张表,并完成数据录入。

(表结构及数据参见教材)

2)分析并建立各表的主码,用下划线在上面表结构中标出主码。

3)建立各表之间的关联,请简述操作步骤。

(1)CREATETABLEStu

(snochar(9),

snamevarchar(50),

ssexchar

(2),

sageint,

sdeptchar

(2));

CREATETABLECOURSE

(cnochar(3),

cnamevarchar(50),

cpnochar(3),

creditint);

CREATETABLESC

(snochar(9),

cnochar(3),

gradeint);

4)参考实验指导书的【第5章数据库的备份和还原】,使用企业管理器对数据库STC进行备份,并尝试在个人电脑与机房电脑上进行还原,请简述备份、还原操作的步骤。

 

3.在SQLSERVER2000的查询分析器中使用SQL语言完成以下任务。

参考实验指导书《数据库系统实验指导教程》【实验1.1数据定义】,建立数据库SCHOOL,分别建立students、teachers、courses、choices四张表,表结构见实验指导书P236【附录A】。

1)用SQL语言创建数据库、建表。

建表时为各表建立关键字、设置外码,数据暂不录入,请写出对应的SQL命令。

2)为students表、courses建立按主键増序排列的索引,请写出相应的SQL命令。

CREATEINDEXsno_indexonstu(sno)

CREATEINDEXcourse_indexonstcourse(cno)

3)删除course上的索引,请写出相应的SQL命令。

dropindexcourse.course_index

4)在SCHOOL数据库中的students表中增加一个“出生日期”字段,类型为日期时间型,请写出对应的SQL命令。

altertablestuadd"出生日期"datetime

5)删除students中的“出生日期”字段,请写出对应的SQL命令。

altertablestudropcolumn"出生日期"

6)删除SCHOOL数据库中的students表,请写出对应的SQL命令。

Droptablesturestrict

4.使用企业管理器创建数据库SCHOOL,实现内容与实验预习内容3完全相同。

5.使用企业管理器,将SCHOOL数据库分离出MSSQLSERVER,请简述步骤。

6.使用企业管理器,使用【数据库/所有任务/附加数据库】将SCHOOL数据库添加进SQLSERVER,并查看数据。

7.使用查询分析器,删除数据库STC,请写出对应的SQL命令。

8.结束本次实验

三、实验课后训练

1.使用企业管理器练习数据的导入导出。

1)将SCHOOL数据库students表中的数据导出到STC数据库对应的stu表中;

2)向STC数据库courses表导入SCHOOL数据库courses表中的数据;

3)自行练习实验指导书【实验5.3SQLSERVER数据库的导入与导出】部分;

2.自行练习实验指导书【实验1.1数据定义】部分。

四、

实验报告

1.简述本次实验所用到的SQL命令及其功能。

Createdatabase创建数据库

CREATETABLE建立表

CREATEINDEX建立索引

dropindex删除索引

alteradd增加字段

alterdrop删除字段

droptable删除表

2.在MSSQLSERVER中数据库的“分离|添加”与“备份|还原”是相同的功能吗?

不是

3.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)

出现的问题:

中英文状态没有切换,语法错误

解决方法:

分析查询后改正错误

结果或其它:

程序正确运行

实验二——SQL语句

一、实验目的

1.熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集合查询和统计查询,能理解空值的处理;

2.熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、删除操作;

3.熟悉SQL支持的有关视图的操作,能创建、查询及取消视图;

4.了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作;

二、实验预习内容

在认真阅读教材及实验指导书【实验1.2数据查询】、【实验1.3数据更新】、【实验1.4视图】和【实验1.6空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。

1.使用SCHOOL数据库,在SQLSERVER2000的查询分析器中使用SQL语言完成以下操作。

请在空白处填写相应的SQL命令。

1)查询年级为2001的所有学生的名称,按编号顺序排列;

selectsname

fromstudents

wheregradelike'2001'

orderbysidDESC

2)查询所有课程名称中含有data的课程编号;

selectcid

fromcourses

wherecnamelike'%data%'

3)统计所有老师的平均工资;

selectavg(salary)

fromteachers

4)查询至少选了3门课的学生编号;

selectsid

fromchoices

groupbysid

havingcount(*)>=3

5)查询学号为80009026的学生的姓名、所选课名及成绩;

selectsname,cname,score

fromstudents,choices,courses

wherestudents.sid='80009026'

6)查询没有学生选的课程编号;

selectcid

fromcourses

wherecidnotin

(selectcid

fromchoices)

7)查询既选了C++又选了Java课程的学生编号;

selectsid

fromstudents

wheresidin

(selectsid

fromchoices

wherecidin

(selectcid

fromcourses

wherecname='C++'andcname='Java'))

8)查询选了C++但没选Java课程的学生编号;

selectsid

fromstudents

wheresidin

(selectsid

fromchoices

wherecidin

(selectcid

fromcourses

wherecname='C++'andcname!

='Java'))

9)向STUDENTS表中插入“LiMing”的个人信息(编号:

700045678,名字:

LiMing,Email:

LX@,年级:

1992);

insert

intostudents(sid,sname,email,grade)

values('700045678','LiMing','LX@',1992)

10)将“LiMing”的年级改为2002

updatestudents

setgrade=2002

wheresid='700045678'

11)删除所有选了Java课程的学生选课记录;

deletefromchoices

wherecid=(selectcid

fromcourses

wherecname='java')

12)求出每门课的课程号、选课人数,结果存入数据库表T1中。

13)查询所有选课记录的成绩并换算为五分制(注意NULL的情况);

14)查询成绩小于0的选课记录,统计总数、平均分、最大值和最小值(注意查询结果中NULL的情况);

15)按成绩顺序排序显示CHOICES表中所有记录。

(使用ORDERBY排序,注意NULL的情况);

 

16)创建视图V1,显示学生姓名、所选课名称、任课教师名;

17)取消V1视图;

2.使用STC数据库,在SQLSERVER2000的查询分析器中使用SQL语言完成以下操作。

请在空白处填写相应的SQL命令或其它内容。

1)创建视图V2,显示计算机(CS)系学生信息;(结合下面的b)小题,V2视图创建2次,分别使用/不使用WITHCHECKOPTION选项)

(1)不加WITHCHECKOPTION

(2)加WITHCHECKOPTION

2)插入元组(99999,张三,20岁,男,PH)到V2中,运行结果如何?

(观察WITHCHECKOPTION对结果的影响);

(1)不加WITHCHECKOPTION的结果

(2)加WITHCHECKOPTION的结果

3)在V2基础上,查询所有计算机系女生信息;

3.结束本次实验

三、实验课后训练

1.掌握SQLSERVER中流控制语句及其它常用编程语句;

1)使用查询分析器,编写代码,输出乘法口诀表。

2.自行练习实验指导书P24【实验1.2数据查询】1.2.5自我实践部分;

3.自行练习实验指导书P30【实验1.3数据更新】1.3.5自我实践部分;

4.自行练习实验指导书P36【实验1.4视图】1.4.5自我实践部分;

5.自行练习实验指导书P49【实验1.6空值和空集的处理】1.6.5自我实践部分;

四、

实验报告

1.SQLSERVER中变量声明的命令是什么?

输出命令是什么?

2.SQLSERVER中实现分支和循环的语句分别是什么?

3.在SQLSERVER里使用ORDERBY排序时,NULL值如何处理?

使用GROUPBY分组时,NULL值又如何处理的?

4.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)

实验三——数据库完整性与安全性

一、实验目的

1.理解实体完整性、参照完整性、用户自定义完整性的概念,学习三类完整性的实现,了解违反完整性的结果;

2.掌握MSSQLSERVER中的有关用户登录认证及管理方法,熟练使用自主存取控制进行权限管理;

二、实验预习内容

在认真阅读教材及实验指导书【2.1实体完整性】、【2.2参照完整性】、【2.3用户自定义完整性】、【2.4触发器】、【2.5综合案例】和【3.1用户标识与鉴别】、【3.2自主存取控制】、【3.3视图机制在自主存取控制上的应用】、【3.4Public角色在安全性中的应用】、【3.8综合案例】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。

1.使用SCHOOL数据库

1)创建一张新表CLASS,包括Class_id(varchar(4)),Name(varchar(10)),Department(varchar(20))三个属性列,其中Class_id为主码;

2)执行两次相同的插入操作(’0001’,’01csc’,’cs’),结果如何;

2.使用SQL命令创建一张学生互助表,要求:

包括学生编号、学生姓名、学生帮助对象的编号,每个学生有且仅有一个帮助对象,帮助的对象必须是已存在的学生。

3.使用STC数据库,修改设置,完成以下2种不同的要求,请写出对应的语句或简述操作过程:

1)当更新、删除STU表中记录时,若SC表中有此学生的记录,则拒绝;

2)当更新、删除STU表中记录时,若SC表中有此学生的记录,则自动更新或删除;

4.使用SQL命令完成以下任务:

1)创建Worker表(表结构见指导书P73)

2)定义约束U1、U2,其中U1规定Name字段取值唯一,U2规定sage字段上限是28;

3)插入一条合法记录;

4)插入一条违反U2约束的记录,简述观察到的结果如何?

并分析原因;

5)去除U1约束;

6)修改约束U2,令sage的值大于等于0;

7)创建规则rule_sex,规定更新或插入的值只能是M或F,并绑定到Worker的sex字段;

8)插入2条记录,一条满足规则rule_sex,一条违反规则,观察结果。

5.使用查询分析器创建触发器并测试,请写出相应的语句:

1)为Worker表创建触发器T1,当插入或更新表中数据时,保证所操作记录的sage大于0;

2)为Worker表创建触发器T2,禁止删除编号为00001的记录;

3)为Worker表创建触发器T3,要求更新一个记录时,表中记录的sage要比老记录的sage的值大。

6.分别用企业管理器和查询分析器实现用户的标识并测试,请写出相应的操作过程或对应的语句:

1)设置SQLSERVER的安全认证模式;

2)建立名为“LiYong”的登录用户、数据库用户,默认访问SCHOOL数据库,密码为“abcd”;

3)取消“LiYong”用户;

7.先以sa帐号登录,要实现如下表的权限管理,请按先后顺序写出相应的SQL语句(假设所有用户尚未定义,其密码均为123),并加以必要的说明。

编号

授权用户名

被授权用户名

数据库对象名

允许的操作类型

能否转授权

1

SA

U1

Students

SELECT

不能

2

SA

U2

Students

ALL

不能

3

SA

PUBLIC

Choices

SELECT

不能

4

SA

U3

Students

SELECT

5

U3

U4

Students

SELECT

6

U4

U5

Students

SELECT

不能

7

SA

U6

Choices

INSERT

8

SA

U7

Students.sname

UPDATE

不能

8.创建在SCHOOL数据库中choices上的视图CS_View,授权给计算机系讲授课程号为’10010’的数据库用户“LiYong”,让其具有视图上的SELECT权限;

9.对视图CS_View上的score属性列的UPDATE权限授予用户“LiYong”,可以修改学生成绩,但不能修改其它属性列的值;

10.假设SCHOOL数据库中,每个学生的登录名都为自己在STUDENTS表中的sid,实现每个学生只能查询自己选课信息,不能查询别人的成绩,也不能修改自己的成绩。

11.结束本次实验

三、实验课后训练

1.自行练习实验指导书P81【实验2.5综合案例】综合案例1;

2.自行练习实验指导书P122【实验3.8综合案例】综合案例;

四、

实验报告

1.授权给public与授权给指定用户有什么区别?

实际应用中,哪个更安全些?

2.SQLSERVER中的角色有什么作用?

3.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)

实验四——数据库编程

一、实验目的

1.掌握ODBC的配置;

2.能编写简单的存储过程和函数,并调用;

二、实验预习内容

上机前请预习以下内容,并在空白处填写相应的步骤或命令。

1.配置ODBC,使用VFP中的表单,查询SCHOOL数据库中STUDENTS表中所有记录。

2.编写存储过程并调用,请写出相应命令;

1)在查询分析器中,编写存储过程usp_get_stuinfo,使用一个名为@xm能够传送进存储过程的参数。

允许以学生的姓名查询该生的基本信息;

2)在查询分析器中调用存储过程查询“赵飞”同学的基本信息的语句;

3.编写函数并调用,请写出相应命令;

1)在查询分析器中,定义内联表值函数Fun,用于返回各职称的教师基本信息;

2)在查询分析器中,使用Fun进行选择以获得“教授”职称的教师基本信息;

3)在查询分析器中,编写标量函数Func,用于返回两个整数中的最大值;

4)在查询分析器中,调用此函数,输出两个数中的最大值;

5)在SQLSERVER中定义函数FUNS,返回指定参数的平方,配置好ODBC后,在VFP中调用FUNS并输出结果;

4.结束本次实验

三、实验课后训练

1.自行学习实验指导书P130【实验4.1SQLSERVER事务的定义】;

2.自行学习实验指导书P137【实验4.2SQLSERVER2005事务与锁】;

3.自行练习实验指导书P165【实验4.6游标及游标并发】;(P1674.6.3实验内容要完成)

四、

实验报告

1.什么是ODBC?

2.内联表值函数、标量函数、存储过程有什么区别?

3.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2