数据库原理与SQLServer课程实验报告.docx

上传人:b****4 文档编号:12301819 上传时间:2023-04-18 格式:DOCX 页数:21 大小:418.01KB
下载 相关 举报
数据库原理与SQLServer课程实验报告.docx_第1页
第1页 / 共21页
数据库原理与SQLServer课程实验报告.docx_第2页
第2页 / 共21页
数据库原理与SQLServer课程实验报告.docx_第3页
第3页 / 共21页
数据库原理与SQLServer课程实验报告.docx_第4页
第4页 / 共21页
数据库原理与SQLServer课程实验报告.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数据库原理与SQLServer课程实验报告.docx

《数据库原理与SQLServer课程实验报告.docx》由会员分享,可在线阅读,更多相关《数据库原理与SQLServer课程实验报告.docx(21页珍藏版)》请在冰豆网上搜索。

数据库原理与SQLServer课程实验报告.docx

数据库原理与SQLServer课程实验报告

中国地质大学江城学院

数据库原理与SQLServer

课程实验报告

姓名涂晨曦

班级学号23000801

指导教师宋亚岚

2010年11月30日

 

实验1熟悉SQLServer2000环境

目的和要求

(1)掌握SQLServer服务器的安装

(2)掌握企业管理器的基本使用方法

(3)掌握查询分析器的基本使用方法

(4)对数据库及其对象有一个基本了解

实验准备

(1)了解SQLServer2000各种版本安装的软/硬件要求

(2)了解SQLServer支持的身份验证模式

(3)SQLServer各组件的主要功能

(4)对数据库、表、数据库对象有一个基本了解

(5)了解在查询分析器中执行SQL语句的方法

实验内容及结果

1.利用企业管理器访问系统自带的pubs数据库。

(1)启动SQLServer服务管理器。

(2)以系统管理员身份登录到企业管理器并访问pubs数据库。

(3)在企业管理器的目录树中展开文件夹→展开pubs数据库图标,则将列出该数据库所有对象,如表、视图、存储过程、默认、规则等。

(4)选中pubs下的“表”图标,将列出pubs数据库所有的表(系统表和用户表),在此以用户表publishers为例,打开该表,查看其内容。

(5)在表的尾部插入记录(9943,zhang,Beijing,null,china)和(1408,li,shanghai,null,china),会发生情况?

 

 

2.查询分析器的使用

(1)在查询分析器对象浏览器的的目录树中展开pubs数据库图标,则将列出该数据库的所有对象,如表、视图、存储过程等。

(2)以pubs数据库的用户表stores为例,选中该表的图标,单击鼠标右键,出现快捷菜单,执行“打开”菜单项,打开该表,查看其内容。

(3)在表的尾部插入一记录。

 

(4)在查询分析器的输入窗口,输入如下T-SQL语句:

usepubs

select*fromstores

go

 

实验2数据库管理

目的和要求

(1)了解SQLServer数据库的逻辑结构和物理结构

(2)了解表的结构和特点

(3)了解SQLServer的基本数据类型

(4)了解空值概念

(5)学会在企业管理器中创建数据库和表

(6)学会使用T-SQL语句创建、修改数据库和表

实验准备

(1)明确创建数据库的用户必须是系统管理员,或是被授权使用CREATEDATABASE语句的用户。

(2)创建数据库必须要确定数据库名、数据库大小(最初的大小、最大的大小、是否允许增长即增长方式)和存储数据的文件。

(3)确定数据库包含哪些表,以及所包含的个表的结构,还要了解SQLServer的常用数据类型,以创建数据库的表。

(4)了解两种常用的创建数据库、表的方法,即在企业管理器中创建和使用T-SQL语句创建。

实验内容及结果

1.创建test1数据库,逻辑文件名为testdata,数据文件名为test1data.mdf,初始容量为1MB,最大容量为10MB,空间大小按10%递增。

①SQL命令:

CREATEDATABASEtest1

ON

(NAME=testdata,

FILENAME='D:

\data1\test1data.mdf',

SIZE=1MB,

MAXSIZE=10MB,

FILEGROWTH=10%

 

②结果

2.创建test2数据库,逻辑主数据文件名为testdata,存放在文件夹“D:

\text”中,数据文件名为test2data.mdf,日志文件名为test2data.ldf,初始容量为2MB,最大容量为20MB,递增大小为2MB。

①SQL命令:

CREATEDATABASEtest2

ON

(NAME=testdata,

FILENAME='D:

\text\test2data.mdf',

SIZE=1MB,

MAXSIZE=10MB,

FILEGROWTH=10%

LOGON

(NAME=test2data,

FILENAME='D:

\text\test2data.ldf',

SIZE=2MB,

MAXSIZE=20MB,

FILEGROWTH=2MB)

②结果:

 

3.修改test2数据库,添加两个次数据文件test_add1和test_add2,他们的初始大小为10MB,不允许自动增长空间。

将test2数据库中的test2data主数据文件的初始大小修改为5MB,添加一个日志文件test2log.ldf,初始容量为1MB,最大容量为5MB,空间大小按10%递增。

①SQL命令:

alterdatabasetest2

addfile(

name=test_add1,

filename='D:

\text\test_add1.ndf',

size=10mb)

go

alterdatabasetest2

addfile(

name=test_add2,

filename='D:

\text\test_add2.ndf',

size=5mb)

go

alterdatabasetest2

addlogfile(

name=test2log,

filename='D:

\text\test2log.ldf',

size=1mb,

maxsize=5mb,

filegrowth=10%)

②结果:

 

4.压缩test2数据库文件为原来的20%。

①SQL命令:

dbccshrinkdatabase(test2,20)

②结果:

5.删除test1数据库。

①SQL命令:

dropdatabasetest1

②结果:

6.创建名称为“通讯录”数据库,并在该数据库中创建名为“个人信息”的数据表,包括如下字段:

编号(int,自动编号)、姓名(char(8)notnull)、性别(char

(2)notnull)、出生日期(datetime)、联系方式(char(16))。

①SQL命令:

createdatabase通讯录

on(name=数据库_data,filename=’D:

\sqldata\数据库_data.mdf’)

go

createtable个人信息

(编号intidentity(100,1)primarykey,

姓名char(8)notnull,

性别char

(2)notnull,

出生日期datetime,

联系方式char(16)

 

②结果:

7.利用ADD子句为个人信息表添加家庭地址字段(text,null),修改性别为int类型。

从表中删除性别、联系方式字段。

8.在“个人信息”表中插入如下记录信息:

编号

姓名

性别

出生日期

联系方式

100

陈兵

1970-12-01

552233

101

金阳

1972-09-08

567121

102

王小美

1978-03-15

521111

103

王工林

1978-08-18

721331

①用企业管理器插入信息:

 

9.将编号为103记录的姓名改为“楮红”。

①SQL命令:

update个人信息

set姓名=’楮红’

where个人信息.编号=’103’

②结果:

10.删除所有男同志的数据记录。

①SQL命令:

deletefrom个人信息where性别=’男’

②结果:

 

实验3查询管理

目的和要求

(1)理解索引的概念、索引的作用、索引的分类;

(2)掌握使用命令和企业管理器创建和删除索引的方法。

(3)理解查询的概念;掌握使用SQL命令创建查询的方法;

实验准备

(1)了解CREATEINDEX语句的语法格式

(2)了解DROPINDEX语句的语法格式

(3)了解SELECT语句的基本语法格式

(4)了解SELECT语句的执行方法

实验内容及结果

1.创建“个人信息”表,在“个人信息”表中插入如下记录信息:

编号

姓名

性别

出生日期

联系方式

100

陈兵

1970-12-01

552233

101

金阳

1972-09-08

567121

102

王小美

1978-03-15

521111

103

王工林

1978-08-18

721331

(1)关于姓名、性别建立复合唯一索引,索引名为“name-id”,要求输入数据时,显现重复的姓名和性别组合的值时,忽略数据的重复。

①SQL命令:

createunique

indexname_idon个人信息(姓名,性别)

with

ignore_dup_key

②结果:

 

(2)关于出生日期建立非簇索引,要求填充因子为90,索引名为“birthday-ID”。

(3)修改索引birthday-ID,要求按照出生日期的降序排序,填充因子为90,指定删除同名索引。

①SQL命令:

create

indexbirthday_ID

on个人信息(出生日期desc)

with

pad_index,fillfactor=90,

drop_existing

②结果:

 

(4)使用SQL命令查看“个人信息”表的空间使用情况。

①SQL命令:

sp_spaceused个人信息

②结果:

 

2.设学生选课数据库中有三个数据表:

S(SNO,SNAME,SEX,BIRTHDAY,SDEPARTMENT,TEL)

C(CNO,CNAME,TEACHER,PCNO)

SC(SNO,CNO,GRADE)

完成下列任务:

(1)定义表结构并向S、C和SC表中输入记录。

(2)检索每个学生的出生年份。

①SQL命令:

selectsno,year(birthday)as'出身年份'froms

②结果:

(3)在S中检索学生的姓名和出生年份,输出的列名分别为STUDENT_NAME和BIRTH_YEAR。

①SQL命令:

selectsnameas'STUDENT_NAME',year(birthday)as'BIRTH_YEAR'froms

②结果:

 

(4)向基本表SC中插入一条元组(S0404,C06,90)。

①SQL命令:

insertintos(sno,sname,tel)values('J0404','李洋','44-5555')

insertintoscvalues('J0404','C06','90')

②结果:

 

(5)把课程名为VB的成绩从基本表SC中删除。

①SQL命令:

deletefromscwherecno='C05'

②结果:

(6)把女生的成绩提高10%。

①SQL命令:

updatesc

setgrade=grade*1.1

wheresc.sno='J0401'

②结果:

 

实验4视图和查询管理

目的和要求

(1)掌握子查询和连接查询的表示

(2)掌握SELECT语句的GROUPBY子句的作用和使用方法

(3)掌握SELECT语句的ORDERBY子句的作用和使用方法

(4)理解视图的概念

(5)掌握使用视图设计器和SQL命令创建视图的方法

(6)掌握视图数据的查询、插入、修改、删除

实验准备

(1)了解子查询和连接查询的方法

(2)了解SELECT语句的GROUPBY子句的作用和使用方法

(3)了解SELECT语句的ORDERBY子句的作用和使用方法

(4)理解视图与查询的区别

(5)掌握使用视图设计器创建视图的方法

(6)掌握使用SQL命令创建视图的方法

实验内容及结果

设学生选课数据库中有三个数据表:

S(SNO,SNAME,SEX,BIRTHDAY,SDEPARTMENT,TEL)

C(CNO,CNAME,TEACHER,PCNO)

SC(SNO,CNO,GRADE)

完成下列任务

1.检索学习课程号为C02的学生学号和姓名。

①SQL命令:

selects.sno,snamefroms,sc

wherecno='C02'ands.sno=sc.sno

②结果:

 

2.检索没有选修课程“数据库”的学生学号和姓名。

①SQL命令:

selects.sno,snamefroms,sc,c

wherecname<>'数据库'ands.sno=sc.snoando=o

②结果:

 

3.检索选修课程号为C02或C04的学生学号。

①SQL命令:

selectsnofromsc

wherecno='c02'orcno='c04'

②结果:

4.检索至少选修课程号为C02和C04的学生姓名。

①SQL命令:

selectsnamefroms

wheresnoin(selectsc1.snofromscassc1,scassc2

wheresc1.sno=sc2.snoando='c02'ando='c04')

②结果:

 

5.检索没有选修课程“数据库”的学生的姓名和年龄。

①SQL命令:

selectsname,year(getdate())-year(birthday)froms

wheresnoin(selectsnofromscwherecno<>'数据库')

②结果:

6.列出选修课程超过3门的学生姓名和选修门数。

①SQL命令:

selectsname,count(s.sno)as课程门数froms,sc

wheres.sno=sc.sno

groupbysname

havingcount(s.sno)>3

②结果:

7.求选修了各课程的学生人数。

①SQL命令:

selectcno,count(sno)as学生人数fromsc

groupbycno

②结果:

 

8.在表SC中求选修课程C01的学生的学号和得分,并将结果按分数降序排序。

①SQL命令:

selectsno,gradefromsc

orderbygradedesc

②结果:

9.查找每个学生的学号及选修课程的平均成绩情况。

①SQL命令:

selectsno,avg(grade)as平均分fromsc

groupbysno

②结果:

10.创建视图pride7,按照学号升序,将前30%的同学的学号、平均成绩显示出来。

①SQL命令:

createviewpride7

as

selecttop30percentsno,avg(grade)as平均成绩

fromsc

groupbysno

orderbysnoasc

②结果:

 

11.创建加密视图pride4,将课程名及课程平均成绩显示出来。

①SQL命令:

createviewpride4

withencryption

as

selectcname,avg(grade)as平均成绩fromc,sc

whereo=o

groupbycname

②结果:

12.创建视图pride5,将课程成绩大于80分的学生姓名、课程名及课程成绩显示出来。

要求当修改视图pride5时,必须满足限制条件:

成绩大于80分。

①SQL命令:

createviewpride5

as

selects.sname,cname,gradefroms,c,sc

wheres.sno=sc.snoando=oandgrade>80

withcheckoption

②结果:

13.从视图pride4中查询课程平均成绩在70到80分之间的课程名。

①SQL命令:

selectcnamefrompride4

where平均成绩between70and80

②结果:

14.向视图pride6中,插入一条记录:

(j0408,乔海石,1997-07-07,计算机系,女)

①SQL命令:

insertintopride6values('J0408','乔海石',1997-07-07,'计算机系',null,'女')

15.删除视图pride6中在1997年出生的所有记录。

①SQL命令:

deletefrompride6whereyear(birthday)=1997

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

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1