数据库试验答案.docx

上传人:b****3 文档编号:4054944 上传时间:2023-05-06 格式:DOCX 页数:29 大小:53.11KB
下载 相关 举报
数据库试验答案.docx_第1页
第1页 / 共29页
数据库试验答案.docx_第2页
第2页 / 共29页
数据库试验答案.docx_第3页
第3页 / 共29页
数据库试验答案.docx_第4页
第4页 / 共29页
数据库试验答案.docx_第5页
第5页 / 共29页
数据库试验答案.docx_第6页
第6页 / 共29页
数据库试验答案.docx_第7页
第7页 / 共29页
数据库试验答案.docx_第8页
第8页 / 共29页
数据库试验答案.docx_第9页
第9页 / 共29页
数据库试验答案.docx_第10页
第10页 / 共29页
数据库试验答案.docx_第11页
第11页 / 共29页
数据库试验答案.docx_第12页
第12页 / 共29页
数据库试验答案.docx_第13页
第13页 / 共29页
数据库试验答案.docx_第14页
第14页 / 共29页
数据库试验答案.docx_第15页
第15页 / 共29页
数据库试验答案.docx_第16页
第16页 / 共29页
数据库试验答案.docx_第17页
第17页 / 共29页
数据库试验答案.docx_第18页
第18页 / 共29页
数据库试验答案.docx_第19页
第19页 / 共29页
数据库试验答案.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库试验答案.docx

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

数据库试验答案.docx

数据库试验答案

计算机与信息学院

数据库实验报告

专业班级

学生姓名及学号

课程教学班号

任课教师

实验指导教师

实验地点

2012~2013学年第二学期

实验1使用向导创建和删除数据库

一、实验目的

1.熟悉SQLServer中SQLServerManagementStudio的环境

2.了解SQLServer数据库的逻辑结构和物理结构

3.掌握使用向导创建和删除数据库的方法

二、实验要求

1.熟练使用SSMS进行数据库的创建和删除操作。

2.完成实验报告。

三、实验内容

设有一学籍管理系统,其数据库名为“EDUC”。

初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;

日志文件初始为2MB,最大可增长到5MB,按1MB增长。

数据库的逻辑文件名为“student_data”,物理文件名为“student_data.mdf,存放路径为“E:

\sql_data”。

日志文件的逻辑文件名为“student_log”,物理文件名为“student_log.ldf”,存放路径为“E:

\sql_data”。

四、实验步骤

1.使用SQLServerManagementStudio(简称SSMS)创建数据库。

(1)启动SSMS

在开始菜单中:

所有程序-SQLServer2005-SQLServerManagementStudio单击“连接”按钮,便可以进入【SQLServerManagementStudio】窗口。

如果身份验证选择的是“混合模式”,则要输入sa的密码。

(2)建立数据库

在“对象资源管理器”窗口,建立上述数据库EDUC。

在数据库节点上右击选择新建。

同时建立一个同样属性的数据库EDUC1。

2.使用向导删除上面建立的数据库。

用SSMS删除建立的数据库EDUC。

5、实验总结

经过本次试验,对于SQLSERVER有了一个初步的认识,也对于在sqlserver上创建数据库有了一定的了解。

实验2使用SQL语句创建和删除数据库

1、实验目的

1.了解SQLServer2005数据库的逻辑结构和物理结构。

2.掌握使用SQL语句创建和删除数据库。

二、实验要求

1.熟练使用查询分析器进行数据库的创建和删除操作。

2.完成实验报告。

三、实验内容

用SQL语句去创建和删除数据库。

4、实验步骤

1.创建数据库userdb1。

2.根据步骤1的sql语句,写出创建实验1中数据库EDUC的sql语句,并建立数据库EDUC.

createdatabaseEDUC

on

(name=EDUC_data,--数据文件的逻辑名称,注意不能与日志逻辑同名

filename='E:

\sql_data\student_data.mdf',--物理名称,注意路径必须存在

size=10,--数据初始长度为M

maxsize=50,--最大长度为M

filegrowth=5%)--数据文件每次增长M

logon

(name=EDUC_log,

filename='E:

\sql_data\student_log.ldf',

size=2,

maxsize=5,

filegrowth=1)

3.用SQL语句删除步骤1建立的数据库userdb1。

dropdatabaseuserdb1;

五、实验总结

掌握了用SQL语句创建和删除数据库,对SQLServer都有了进一步的认识和了解,发现其实SQL语句还是挺好用的。

实验三分别用向导和SQL语句创建和删除表

1、实验目的

1.了解表的结构特点。

2.了解SQLServer的基本数据类型。

3.学会使用T-SQL语句创建表。

二.实验要求

1.完成SQL语句创建和删除基本表。

2.完成实验报告。

三.实验内容

在数据库EDUC中,创建如下几个表:

表3.1class表(班级信息表)

字段名称

类型

允许空值

主键

说明

ClsNO

Char(6)

NOTNULL

班号

ClsName

Varchar(16)

NOTNULL

班名

Director

Varchar(10)

NULL

辅导员

Specialty

Varchar(30)

NULL

专业

表3.2student表(学生信息表)

字段名称

类型

允许空值

主键

说明

Sno

Char(8)

NOTNULL

学号

Sname

Varchar(10)

NOTNULL

姓名

Sex

Char

(2)

性别:

男、女

ClsNO

Char(6)

NULL

班级的编号,(外键)参照表Class

Saddr

Varchar(20)

住址

Sage

numeric(3,0)

年龄,大于10,但小于30岁

Height

Decimal(4,2)

身高

表3.3course表(课程信息表)

字段名称

类型

允许空值

主键

说明

Cno

Char(4)

NOTNULL

主键

Cname

Varchar(16)

NOTNULL

课程的名称

Cpno

char(4)

NULL

先修课程的课程号(外键),参照cno

Ccredit

Tinyint

学分

表3.4sc表(学生选课成绩表)

字段名称

类型

允许空值

主键

说明

Sno

Char(8)

NOTNULL

学号,参照Student,与Cno组成主键

CNO

Char(4)

NOTNULL

课程号,参照Course

grade

Numeric(4,1)

NULL

成绩

四.实验步骤

1.打开查询窗口,输入创建基本表的sql语句。

(1)student表:

createtablestudent(

snochar(8)NOTNULLprimarykey,--学号

snamevarchar(10)NOTNULL,--姓名

sexchar

(2)check(sex='女'orsex='男'),--性别:

男、女

clsnochar(6),--班级编号,(外键)参照表class

foreignkey(clsno)referencesclass(clsno),

sadrrvarchar(20),--住址

sagenumeric(3,0),--年龄,大于,但小于岁

heightdecimal(4,2)--身高

(2)class表

createtableclass(

clsnochar(6)NOTNULLprimarykey,--班号

clsnamevarchar(16)NOTNULL,--班名

directorvarchar(10)NULL,--辅导员

specialtyvarchar(30)NULL--专业

(3)course表

createtablecourse(

cnochar(4)NOTNULLprimarykey,--主键

cnamevarchar(16)NOTNULL,--课程名称

cpnochar(4),--先修课程的课程号(外键),参照cno

ccredittinyint--学分

(4)sc表

createtablesc(

snochar(8)NOTNULL,--学号,参照Student,与Cno组成主键

cnochar(4)NOTNULL,--课程号,参照Course

gradenumeric(4,1)NULL,--成绩

primarykey(sno,cno),

foreignkey(sno)referencesstudent(sno),

foreignkey(cno)referencescourse(cno),

五、实验总结

通过本次试验,基本掌握了用sql语言创建数据库表的基本方法。

实验四数据更新操作

一.实验目的

1.熟悉使用UPDATE/INSERT/DELETE语句进行表操作;

2.能将这些更新操作应用于实际操作中去;

二.实验要求

1.完成下面的实验内容,并提交实验报告;

2.在实验报告中附上相应的代码;

三.实验内容

(1)向表(Student)中插入数据

Sno

Sname

Ssex

ClsNO

Saddr

Sage

Height

王军

CS01

下关40#

20

1.76

李杰

CS01

江边路96#

22

1.72

20090306

王彤

MT04

中央路94#

19

1.65

吴杪

PH08

莲化小区74#

18

1.60

插入数据之后使用命令:

Select*fromStudent;检查插入数据的正确性

insertintostudent

values(,'王军','男','cs01','下关#','20','1.76');

insertintostudent

values(,'李杰','男','cs01','江边路#','22','1.72');

insertintostudent

values(,'王彤','女','MT04','中央路#','19','1.65');

insertintostudent

values(,'吴杪','女','PH08','莲化小区#','18','1.60');

select*fromstudent;

(2)向表(Class)中插入数据

ClsNO

ClsName

Director

Specialty

CS01

计算机一班

王宁

计算机应用

CS02

计算机二班

王宁

计算机应用

MT04

数学四班

陈晨

数学

PH08

物理八班

葛格

物理

插入数据之后使用命令:

Select*fromClass;检查插入数据的正确性

insertintoclass

values('cs01','计算机一班','王宁','计算机应用');

insertintoclass

values('cs02','计算机二班','王宁','计算机应用');

insertintoclass

values('MT04','数学四班','陈晨','数学');

insertintoclass

values('PH08','物理八班','葛格','物理');

select*fromclass;

(3)向表(Course)中插入数据

Cno

Cname

Cpno

Credit

0001

高等数学

Null

6

0003

计算机基础

0001

3

0007

物理

0001

4

插入数据之后使用命令:

Select*fromCourse;检查插入数据的正确性

insertintocourse

values('0001','高等数学',NULL,'6');

insertintocourse

values('0003','计算机基础','0001','3');

insertintocourse

values('0007','物理','0001','4');

select*fromcourse;

(4)向表(SC)中插入数据

SNO

CNO

Grade

0001

90

20090101

0007

86

0001

87

0003

76

20090306

0001

87

20090306

0003

93

19940106

0007

85

insertintosc

values(,'0001','90');

insertintosc

values(,'0007','86');

insertintosc

values(,'0001','87');

insertintosc

values(,'0003','76');

insertintosc

values(,'0001','87');

insertintosc

values(,'0003','93');

insertintosc

values(,'0007','85');

select*fromsc;

(5).对于student表,将所有班级号为‘CS01’的,并且年龄小于20岁的学生的班级号改为‘CS02’。

updatestudent

setclsno='cs02'

whereclsno='cs01'and

sage<20;

select*fromstudent;

(6).对于student表,删掉所有年龄大于20岁,并且专业号为‘CS02’的学生的记录。

‘CS01’。

由于表student数据较少,因而添加数据,用来满足要求:

insertintostudent

values(,'黄磊','男','cs01','下关#','18','1.78');

insertintostudent

values(,'李超','男','cs01','江边路#','19','1.72');

insertintostudent

values(,'陈明飞','男','cs02','中央路#','22','1.65');

delete

fromstudent

wheresage>20and

clsno='cs02';

insertintostudent(sno,sname,ssex,sage,clsno)

values(,'张三','男','19','cs01')

(7).对于student表,将年龄最小的学生的家庭地址去掉。

updatestudent

setsadrr=null

wheresage=(selectMIN(s.sage)

fromstudents);

(8).对于student表,将平均年龄最小的一个班级编号改为‘GL01’

由于给定的class表中数据不足,因而添加数据以用来满足要求。

insertintoclass

values('gl01','计算机班','王','计算应用');

updatestudent

setstudent.clsno='gl01'

wherestudent.clsno=

(selectt1.clsno

from(selects1.clsno,avg(s1.sage)afromstudents1groupbys1.clsno)t1,(selectMIN(t2.a1)mfrom(selects.clsno,avg(s.sage)a1fromstudentsgroupbys.clsno)t2)t3

wheret1.a=t3.m);

五、实验总结

通过本次试验,懂得了用sql语言来插入数据,以及一些简单的数据更新操作,也对sqlserver有了更多的了解。

在实验的过程中,也遇到许多的问题,并在实验的过程中解决。

比方说,在往表中插入数据时,先插的student表的数据,结果就发现出现错误,原来是student表中的clsno是class表的外码,需要先插入class表,student表内容才能插进去;还有在数据更新的过程中,比方说“对于student表,将平均年龄最小的一个班级编号改为‘GL01’”,由于class表中没有班号位“gl01”,因而出错,这是没有违反完整性约束条件,在插入一组班号为“gl01”时,该更新操作就能正确的运行。

实验五创建和删除索引

一.实验目的

1.了解索引的类型和应用。

2.学会用SQL语句对表创建和删除索引

二.实验要求

1.了解索引类型并比较各类索引的不同之处

2.完成索引的创建和删除,并提交实验报告。

三.实验内容

1.用SQL语句分别建立以下索引

(1)在student表的Sname列上建立普通降序索引Stusname。

(2)在course表的Cname列上建立唯一索引Coucname。

(3)在sc表的Sno(升序),Cno(升序)和grade(降序)三列上建立一个普通索引SCno。

2.用SQL语句删除索引

Student表的Stusname索引。

四、实验步骤

1.用SQL语句分别建立以下索引

(1)在student表的sname列上建立普通降序索引Stusname。

createindexstusname

onstudent(snamedesc);

(2)在course表的cname列上建立唯一索引Coucname。

createuniqueindexcoucname

oncourse(cname);

(3)在sc表的Sno(升序),Cno(升序)和grade(降序)三列上建立一个普通索引SCno。

createindexscno

onsc(sno,cno,gradedesc)

2.删除索引

删除Student表的Stusname索引。

dropindexstusnameonstudent;

五、实验总结

通过本次试验,学会了用sql语言为基本表创建索引和删除索引。

实验六数据查询

一.实验目的

1.观察查询结果,体会SELECT语句实际应用;

2.要求学生能够在查询分析器中使用SELECT语句进行简单查询。

3.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

二.实验要求

1.完成简单查询和连接查询操作,并验收实验结果提交实验报告

三.实验内容

所有的查询全部用Transact-SQL语句实现。

此部分查询包括投影、选择条件表达、数据排序、使用临时表等。

对EDUC数据库实现以下查询:

1)查询计算机应用专业的学生学号和姓名;

2)查询选修了课程的学生学号;

3)查询选修课程0001且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数0.75输出;

4)查询计算机应用和数学专业的姓“张”的学生的信息。

5)查询“0001”课程的成绩高于张三的学生学号和成绩;

6)查询没有选修“0002”课程的学生姓名;

四.实验步骤

打开查询窗口,输入SQL查询语句,点击“执行”按钮,查看查询结果。

1)查询计算机应用专业的学生学号和姓名;

selectsno,sname

fromstudent,class

wherestudent.clsno=class.clsnoand

class.specialty='计算机应用';

2)查询选修了课程的学生学号;

selectsno

fromsc

wheresnoisnotnull;

3)查询选修课程0001且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数0.75输出;

selectsno,grade*0.75

fromsc

wherecno='0001'and

gradebetween80and90;

4)查询计算机应用和数学专业的姓“张”的学生的信息。

select*

fromstudent,class

wheresnamelike'张__'and

student.clsno=class.clsnoand

(specialty='计算机应用'or

specialty='数学');

5)查询“0001”课程的成绩高于张三的学生学号和成绩;

selectstudent.sno,grade

fromstudent,sc

wherecno='0001'and

student.sno=sc.snoand

gradein(selectgrade

fromstudent,sc

wheresname='王军'and

student.sno=sc.sno

6)查询没有选修“0002”课程的学生姓名;

selectdistinctsname

fromstudent,sc

wherestudent.sno=sc.snoandcno!

='0002

五、实验总结

通过本次试验,复习用sql语言处理数据查询的一些方法,更好的掌握数据的查询。

实验七使用聚集函数的SELECT语句

一.实验目的

1.熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

2.进一步掌握SQLServer查询分析器的使用,加深对SQL语言的嵌套查询语句的理解。

二.实验要求

1.在实验之前做好准备。

2.完成实验,并验收实验结果提交实验报告。

三.实验内容

在数据库EDUC中用SQL语句实现如下查询:

1)求学生的总人数。

2)求选修了课程的学生人数。

3)求课程的课程号和选修该课程的人数。

4)求选修课程超过2门课的学生学号。

四.实验步骤

1)求学生的总人数.

selectCOUNT(*)

fromstudent;

2)求选修了课程的学生人数。

selectCOUNT(distinctsno)

fromsc;

3)求课程的课程号和选修该课程的人数。

selectCOUNT(cno)

fromsc

groupbycno;

4)求选修课程超过2门课的学生学号。

selectsno

fromsc

groupbysno

havingCOUNT(*)>1;

5、实验总结

通过本次试验对聚集函数的SELECT语句使用更加熟悉。

实验八视图的定义与使用

一.实验目的

1.熟悉和掌握对数据表中视图的查询操作和SQL命令的使用;

2.熟悉和掌握对数据表中视图的更新操作和SQL命令的使用,并注意视图更新与基本表更新的区别与联系;

3.学习灵活熟练的进行视图的操作,认识视图的作用。

二.实验要求

1.在实验开始之前做好准备工作。

2.实验之后提交实验报告,思考视图和基本表的区别

三.实验内容

1.定义视图

在EDUC数据库中,已Student、Course和SC表为基础完成一下视图定义:

1)将Student,Course和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_SC_G;

2)定义一个反映学生出生年份的视图V_YEAR;

3)将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G;

4)将各门课程的选

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

当前位置:首页 > 人文社科 > 法律资料

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

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