数据库实验报告一.docx

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

数据库实验报告一.docx

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

数据库实验报告一.docx

数据库实验报告一

《数据库原理》实验报告

实验一:

数据库和表的创建与管理

实验二:

基本表的数据操作

学号

姓名

班级

日期

2013302534

杨添文

10011303

2015.10.5

实验一:

数据库和表的创建与管理

1、实验内容

1.利用图形用户界面创建,备份,删除和还原数据库和数据表(50分,每小题5分)

●数据库和表的要求(第四版教材第二章习题5要求的数据库)

●完成以下具体操作:

(1)创建SPJ数据库,初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。

数据库的逻辑文件名和物理文件名均采用默认值。

(2)在SPJ数据库中创建如图2.1-图2.4的四张表(只输入一部分数据示意即可)。

(3)备份数据库SPJ(第一种方法):

备份成一个扩展名为bak的文件。

(提示:

最好先删除系统默认的备份文件名,然后添加自己指定的备份文件名)

(4)备份数据库SPJ(第二种方法):

将SPJ数据库定义时使用的文件(扩展名为mdf,ldf的数据文件、日志文件等)复制到其他文件夹进行备份。

(5)删除已经创建的工程项目表(J表)。

(6)删除SPJ数据库。

(可以在系统默认的数据存储文件夹下查看此时SPJ数据库对应的mdf,ldf文件是否存在)

(7)利用备份过的bak备份文件还原刚才删除的SPJ数据库。

(还原数据库)

(8)利用备份过的mdf,ldf的备份文件还原刚才删除的SPJ数据库。

(附加)

(9)将SPJ数据库的文件大小修改为100MB。

(10)修改S表,增加一个联系电话的字段sPhoneNo,数据类型为字符串类型。

利用图形用户界面创建的表如下图所示:

修改后的s表如下图所示:

2、利用SQL语言创建和删除数据库和数据表(50分,每小题5分)

●完成以下具体操作:

(1)用SQL语句创建如图2.5-图2.7要求的数据库Student,初始大小为20MB,最大为100MB,数据库自动增长,增长方式是按10M兆字节增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。

数据库的逻辑文件名和物理文件名,日志文件名请自定义。

createdatabasestudenton

name='student',

filename='E:

\数据库实验\实验一\student.mdf',

size=20mb,

maxsize=100mb,

filegrowth=10mb

logon

name='student_log',

filename='E:

\数据库实验\实验一\student.ldf',

size=2mb,

maxsize=5mb,

filegrowth=1mb

 

(2)用SQL语句创建上述的三张表,各个字段的数据类型请自己确定,每张表只要有主键约束即可,不要其他约束。

不用输入数据。

createtables

snochar(9)primarykey,

snamechar(5),

ssexchar

(2),

sbirthchar(20),

sdeptchar(10)

createtablesc

snochar(9),

cnochar(5),

gradeint,

primarykey(sno,cno)

createtablec

cnochar(5)primarykey,

cnamechar(10),

cpnochar(5),

ccreditchar(5)

 

(3)用SQL中的backup语句将数据库Student备份到一个bak文件。

backupdatabasestudent

todisk='E:

\数据库实验\实验一\student.bak'

(4)用SQL语句删除创建的表。

droptables,sc,c

(5)将SPJ数据库定义时使用的文件(扩展名为mdf,ldf的数据文件、日志文件等)复制到其他文件夹进行备份(复制)后,用SQL语句删除创建的数据库。

dropdatabasestudent

(6)用SQL中的sp_attache_db语句完成对数据库Student的附加。

(通过该方式完成数据库的恢复时,使用的备份文件是第5)小题中备份好的数据文件、日志文件等,具体用法:

execsp_attache_db)

EXECsp_attach_db@dbname='student',

@filename1='E:

\数据库实验\student.mdf',

@filename2='E:

\数据库实验\student.ldf'

(7)先删除SPJ库,再用SQL中的restore语句还原刚才备份的数据库Student。

restoredatabasestudent

fromdisk='E:

\数据库实验\实验一\student.bak'

(8)用SQL语言修改数据库Student,给Student数据库添加一个文件组TestFG1,然后将两个5MB的文件添加到该文件组。

1、/*添加文件组*/

alterdatabasestudent

addfilegroupTestFG1

 

2、/*将文件f1.ndf添加到文件组*/

alterdatabasestudent

addfile

name=f1,

filename='E:

\数据库实验\实验一\f1.ndf',

size=5mb

tofilegroupTestFG1

3、/*将文件f2.ndf添加到文件组*/

alterdatabasestudent

addfile

name=f2,

filename='E:

\数据库实验\实验一\f2.ndf',

size=5mb

tofilegroupTestFG1

(9)修改S表,增加一个表示联系电话的字段sPhoneNo,数据类型为字符串类型。

altertableSaddsPhoneNochar(20)

(10)利用SQLServerManagementStudio的生成脚本功能(选中Student库->右键菜单“任务”->“生成脚本”),自动生成S表的创建脚本,分析自动生成的脚本和自己写的SQL语句的异同点。

USE[student]

GO

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

SETANSI_PADDINGON

GO

CREATETABLE[dbo].[S](

[sno][char](10)NOTNULL,

[sname][nchar](10)NOTNULL,

[ssex][nchar]

(2)NULL,

[sbirth][date]NULL,

[sPhoneNo][char](10)NULL,

PRIMARYKEYCLUSTERED

[sno]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

SETANSI_PADDINGOFF

GO

 

2、实验反思

实验一都是基础内容,较为简单,认真做没什么难度。

 

实验二:

基本表的数据操作

1、实验内容

1.在图形用户界面中对表中的数据进行更新。

(6分,每小题2分)

(1)按照实验一图2.1-图2.4中所示数据,输入SPJ数据库所含四张表中的数据。

(2)修改S表的任意一条数据

(3)删除S表的任意一条数据。

2.针对SPJ数据库,用SQL语句完成下面的数据更新。

(12分,每小题3分)

(1)第四版教材P127页5题的8-11小题。

8题、updatepsetCOLOR='蓝'

whereCOLOR='红'

9题、updateSPJsetSNO='S3'

whereSNO='S5'

andJNO='J4'

andPNO='P6'

10题、deletefromS

whereSNO='S2'

deletefromSPJ

whereSNO='S2'

11题、insertintoSPJ

values('S2','J6','P4',200)

3.针对SPJ数据库,用SQL语句完成下面的数据查询。

(52分,每小题4分)

(1)P127页第4题。

(5道小题)

1、selectdistinctSNOfromSPJ

whereJNO='J1'

2、selectdistinctSNOfromSPJ

whereJNO='J1'andPNO='P1'

3、selectdistinctSNOfromSPJ,P

whereJNO='J1'andSPJ.PNO=P.PNOandCOLOR='红'

4、selectdistinctJNOfromSPJ

whereJNOnotin

selectJNOfromSPJ,P,S

whereS.CITY='天津'andS.SNO=SPJ.SNO

andP.PNO=SPJ.PNO

5、selectdistinctPNOfromSPJ

whereSNO='S1'

selectJNOfromSPJ

wherePNO='P1'

andJNOin

selectJNOfromSPJ

wherePNO='P2'

 

(2)P127页第5题的1-7小题。

(7道小题)

1、selectSNAME,CITYfromS

2、selectPNAME,COLOR,WEIGHTfromP

3、selectdistinctJNOfromSPJ

whereSNO='S1'

4、selectPNAME,QTYfromSPJ,P

whereP.PNO=SPJ.PNOandSPJ.JNO='J2'

5、selectPNOfromSPJ,S

whereS.SNO=SPJ.SNOandCITY='上海'

6、selectJNAMEfromSPJ,S,J

whereS.SNO=SPJ.SNOandS.CITY='上海'andJ.JNO=SPJ.JNO

7、selectdistinctJNOfromSPJ,S

whereS.SNO=SPJ.SNOandS.CITY<>'天津'

(3)查询这样的工程:

供给该工程的零件P1的平均供应量大于供给工程J1的任何一种零件的最大供应量。

selectJNOfromSPJ

wherePNO='P1'

groupbyJNO

havingavg(QTY)>

selectmax(QTY)fromSPJ

whereSPJ.JNO='J1'

4.针对Student数据库用SQL语句完成下面的数据查询。

(12分,每小题4分)

(1)查询不选修“C语言”课程的学生学号。

selectSNOfromS

exceptselectSNOfromsc

whereCNO=

selectCNOfromC

whereCNAME='c语言'

(2)查询每个学生已经获得的学分的总分(成绩及格表示获得该门课的学分),并按照所获学分由高到低的顺序输出学号,姓名,所获学分。

selectS.sno,sname,sum(ccredit)totalcredit

fromS,SC,C

whereS.sno=SC.snoandSC.cno=C.cnoandgrade>=60

groupbyS.sno,sname

orderbytotalcredit

(3)查询这样的学生姓名:

该学生选修了全部课程并且其中一门课在90分以上。

selectsnamefromS

wheresnoin

selectsnofromSc

wheresnoin

selectsnofromS

wherenotexists

select*fromC

wherenotexists

select*fromSC

wheresno=S.snoandcno=C.cno

groupbysno

havingmax(grade)>90

没有查询到满足要求的结果

5.针对Student数据库用至少三种不同的SQL语句进行查询:

查询选修了课程名为“数据库原理”的学生学号和姓名,然后自己设计实验,用数据比较分析三种查询的效率。

(18分)

第一种:

selectS.sno,snamefromS,SC,C

whereS.sno=SC.snoandSC.cno=C.cnoandcname='数据库'

第二种:

selectS.sno,snamefromS

wheresnoin

selectsnofromSC

wherecnoin

selectcnofromC

wherecname='数据库'

第三种:

selectdistinctS.sno,snamefromS,SC,C

whereS.sno=SC.snoandSC.cnoin

selectcnofromC

wherecname='数据库'

第二种效率最高。

2、实验反思

这次实验着重在于要求学生熟练掌握SQL语言,SQL语言很符合人的理解,用起来主要问题在于逻辑的处理,这次实验让我感受到了编程的多样化以及效率的提高,以后多多练习才可以熟练掌握。

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

当前位置:首页 > 经管营销 > 经济市场

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

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