数据库实验答案.docx
- 文档编号:13080085
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:51
- 大小:1.65MB
数据库实验答案.docx
《数据库实验答案.docx》由会员分享,可在线阅读,更多相关《数据库实验答案.docx(51页珍藏版)》请在冰点文库上搜索。
数据库实验答案
运算机与信息学院
数据库实验报告
专业班级
学生姓名及学号
课程教学班号
任课教师
实验指导教师
实验地点
2012~2013学年第二学期
实验1利用向导创建和删除数据库
一、实验目的
1.熟悉SQLServer中SQLServerManagementStudio的环境
2.了解SQLServer数据库的逻辑结构和物理结构
3.把握利用向导创建和删除数据库的方式
二、实验要求
1.熟练利用SSMS进行数据库的创建和删除操作。
2.完成实验报告。
三、实验内容
设有一学籍治理系统,其数据库名为“EDUC”。
初始大小为10MB,最大为50MB,数据库自动增加,增加方式是按5%比例增加;
日记文件初始为2MB,最大可增加到5MB,按1MB增加。
数据库的逻辑文件名为“student_data”,物理文件名为“,寄存途径为“E:
\sql_data”。
日记文件的逻辑文件名为“student_log”,物理文件名为“”,寄存途径为“E:
\sql_data”。
四、实验步骤
1.利用SQLServerManagementStudio(简称SSMS)创建数据库。
(1)启动SSMS
在开始菜单中:
所有程序-SQLServer2005-SQLServerManagementStudio单击“连接”按钮,即能够进入【SQLServerManagementStudio】窗口。
若是身份验证选择的是“混合模式”,那么要输入sa的密码。
(2)成立数据库
在“对象资源治理器”窗口,成立上述数据库EDUC。
在数据库节点上右击选择新建。
同时成立一个一样属性的数据库EDUC1。
2.利用向导删除上面成立的数据库。
用SSMS删除成立的数据库EDUC。
五、实验总结
通过本次实验,关于SQLSERVER有了一个初步的熟悉,也关于在sqlserver上创建数据库有了必然的了解。
实验2利用SQL语句创建和删除数据库
一、实验目的
1.了解SQLServer2005数据库的逻辑结构和物理结构。
2.把握利用SQL语句创建和删除数据库。
二、实验要求
1.熟练利用查询分析器进行数据库的创建和删除操作。
2.完成实验报告。
三、实验内容
用SQL语句去创建和删除数据库。
四、实验步骤
1.创建数据库userdb1。
2.依照步骤1的sql语句,写出创建实验1中数据库EDUC的sql语句,并成立数据库EDUC.
createdatabaseEDUC
on
(name=EDUC_data,--数据文件的逻辑名称,注意不能与日记逻辑同名
filename='E:
\sql_data\',--物理名称,注意途径必需存在
size=10,--数据初始长度为M
maxsize=50,--最大长度为M
filegrowth=5%)--数据文件每次增加M
logon
(name=EDUC_log,
filename='E:
\sql_data\',
size=2,
maxsize=5,
filegrowth=1)
3.用SQL语句删除步骤1成立的数据库userdb1。
dropdatabaseuserdb1;
五、实验总结
把握了用SQL语句创建和删除数据库,对SQLServer都有了进一步的熟悉和了解,发觉其实SQL语句仍是挺好用的。
实验三别离用向导和SQL语句创建和删除表
一、实验目的
1.了解表的结构特点。
2.了解SQLServer的大体数据类型。
3.学会利用T-SQL语句创建表。
二.实验要求
1.完成SQL语句创建和删除大体表。
2.完成实验报告。
三.实验内容
在数据库EDUC中,创建如下几个表:
表class表(班级信息表)
字段名称
类型
允许空值
主键
说明
ClsNO
Char(6)
NOTNULL
是
班号
ClsName
Varchar(16)
NOTNULL
班名
Director
Varchar(10)
NULL
辅导员
Specialty
Varchar(30)
NULL
专业
表student表(学生信息表)
字段名称
类型
允许空值
主键
说明
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)
身高
表course表(课程信息表)
字段名称
类型
允许空值
主键
说明
Cno
Char(4)
NOTNULL
是
主键
Cname
Varchar(16)
NOTNULL
课程的名称
Cpno
char(4)
NULL
先修课程的课程号(外键),参照cno
Ccredit
Tinyint
学分
表sc表(学生选课成绩表)
字段名称
类型
允许空值
主键
说明
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
李杰
男
CS01
江边路96#
22
王彤
女
MT04
中央路94#
19
吴杪
女
PH08
莲化小区74#
18
插入数据以后利用命令:
Select*fromStudent;检查插入数据的正确性
insertintostudent
values('','王军','男','cs01','下关#','20','');
insertintostudent
values('','李杰','男','cs01','江边路#','22','');
insertintostudent
values('','王彤','女','MT04','中央路#','19','');
insertintostudent
values('','吴杪','女','PH08','莲化小区#','18','');
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
0007
86
0001
87
0003
76
0001
87
0003
93
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’的学生的记录。
关于student表,插入一条新记录,它的具体信息为,学号:
、姓名:
张三、性别:
男、年龄:
1九、班级编号:
‘CS01’。
由于表student数据较少,因此添加数据,用来知足要求:
insertintostudent
values('','黄磊','男','cs01','下关#','18','');
insertintostudent
values('','李超','男','cs01','江边路#','19','');
insertintostudent
values('','陈明飞','男','cs02','中央路#','22','');
delete
fromstudent
wheresage>20and
clsno='cs02';
insertintostudent(sno,sname,ssex,sage,clsno)
values('','张三','男','19','cs01')
(7).关于student表,将年龄最小的学生的家庭地址去掉。
updatestudent
setsadrr=null
wheresage=(selectMIN
fromstudents);
(8).关于student表,将平均年龄最小的一个班级编号改成‘GL01’
由于给定的class表中数据不足,因此添加数据以用来知足要求。
insertintoclass
values('gl01','运算机班','王','计算应用');
updatestudent
set='gl01'
where=
(select
from(select,avgafromstudents1groupbyt1,(selectMINmfrom(select,avga1fromstudentsgroupbyt2)t3
where=;
五、实验总结
通过本次实验,知道了用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之间的学生学号和成绩,并将成绩乘以系数输出;
4)查询运算机应用和数学专业的姓“张”的学生的信息。
5)查询“0001”课程的成绩高于张三的学生学号和成绩;
6)查询没有选修“0002”课程的学生姓名;
四.实验步骤
打开查询窗口,输入SQL查询语句,点击“执行”按钮,查看查询结果。
1)查询运算机应用专业的学生学号和姓名;
selectsno,sname
fromstudent,class
where=and
='运算机应用';
2)查询选修了课程的学生学号;
selectsno
fromsc
wheresnoisnotnull;
3)查询选修课程0001且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数输出;
selectsno,grade*
fromsc
wherecno='0001'and
gradebetween80and90;
4)查询运算机应用和数学专业的姓“张”的学生的信息。
select*
fromstudent,class
wheresnamelike'张__'and
=and
(specialty='运算机应用'or
specialty='数学');
5)查询“0001”课程的成绩高于张三的学生学号和成绩;
select,grade
fromstudent,sc
wherecno='0001'and
=and
gradein(selectgrade
fromstudent,sc
wheresname='王军'and
=
)
6)查询没有选修“0002”课程的学生姓名;
selectdistinctsname
fromstudent,sc
where=andcno!
='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;
五、实验总结
通过本次实验对聚集函数的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)将各门课程的选修人数及平均成绩概念为视图V_AVG_C_G。
2.利用视图
1)查询以上所建的视图结果。
2)查询平均成绩为90分及以上的学生学号、姓名和成绩;
3)查询课程成绩大于平均成绩的学生学号、课程号、成绩和平均成绩;
4)查询1994年诞生的学生学号和姓名。
一.实验步骤
1.概念视图
1)将Student,Course和SC表中学生的学号,姓名,课程号,课程名,成绩概念为视图V_SC_G.
createviewv_sc_g
as
select,sname,,cname,grade
f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 答案