数据库原理及应用实验指导书湖南工程学院计算机科学与通信学院实验答案.docx
- 文档编号:8506655
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:12
- 大小:19.50KB
数据库原理及应用实验指导书湖南工程学院计算机科学与通信学院实验答案.docx
《数据库原理及应用实验指导书湖南工程学院计算机科学与通信学院实验答案.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用实验指导书湖南工程学院计算机科学与通信学院实验答案.docx(12页珍藏版)》请在冰豆网上搜索。
数据库原理及应用实验指导书湖南工程学院计算机科学与通信学院实验答案
数据库原理及应用
实验指导书
湖南工程学院计算机科学与通信学院
2011年9月
实验一
一、实验目的:
掌握建立一个数据库表结构的方法和步骤,了解数据库表的基本组成。
二、实验内容:
基本表的创建和修改。
三、实验要求:
(必做)
硬件:
IntelPentium120或以上级别的CPU,大于16MB的内存。
软件:
Windows95/98/2000操作系统,关系数据库管理系统SQLSERVER2000。
学时:
2学时
四、实验步骤:
1、用create建立教学数据库的五个基本表:
(1)学生表(学号,姓名,性别,年龄),student((Sno,sname,ssex,sage);
(2)课程表(课程号,课程名,学分),Course(Cno,Cname,credit);
(3)选课表(学号,课程号,成绩),SC(Sno,,Cno,grade);
(4)教师表(教师号,姓名,性别,出生年月,系部,职称,地址),
T(Tno,Tname,ssex,birthday,dept,title,address);
(5)工资表(教师号,基本工资,职务工资,合计),
Salary(Tno,jbgz,zwgz,hj);
2、用alter修改基本表
(1)在已存在的学生表student中增加一个sdept(系)的新的属性列;
(2)将学生表student中sname属性列的数据类型修改为变长字符串varchar(10)。
3、建立一个临时表,然后将其删除
--------/*学生表*/
createtableStudent(Snochar(4)notnull,
Snamechar(8),
Ssexchar(4),
Sagesmallint)
---------
createtableCourse(Cnochar(4)notnull,
Cnamechar(40),
Creditsmallint)
createtableSC(Snochar(9)notnull,
Cnochar(4)notnull,
gradesmallint)
---------
createtableT(Tnochar(4)notnull,
Tnamechar(20),
ssexchar(4),
birthdaychar(10),
deptchar(20),
titlechar(10),
addressvarchar(40))
---------/**/
createtableSalary(Tnochar(4)notnull,
jbgzmoney,
zwgzmoney,
hjmoney,)
---------------------------------------------------------
/*在已存在的学生表student中增加一个sdept(系)的新的属性列*/
AltertableStudent
addSdeptchar(20)
--------------------------------------------------------
/*将学生表student中sname属性列的数据类型修改为变长字符串varchar(10)。
*/
AltertableStudent
altercolumnSnamechar(10);
----------------------------------------------------------
/*3、建立一个临时表,然后将其删除*/
createtableStudent01(Snochar(4),
Snamechar(8),
Ssexchar(4),
Sagesmallint,
Sdeptchar(4))
droptableStudent01
实验二
一、实验目的:
了解建立索引的目的,掌握建立索引与删除索引,掌握创建、修改、删除约束。
二、实验内容:
建立聚簇索引、非聚簇索引、唯一索引、复合索引,删除索引,创建、修改、删除约束力。
三、实验要求:
(必做)
硬件:
IntelPentium120或以上级别的CPU,大于16MB的内存。
软件:
Windows95/98/2000操作系统,关系数据库管理系统SQLSERVER2000。
学时:
2学时
四、实验步骤:
1、用createindex在学生表student的学号sno上建立聚簇索引。
2、在学生表student中,为姓名sname建立非聚簇索引。
3、在课程表的课程号Cno上建立唯一索引。
4、在选课表的学号sno、成绩Grade上建立复合索引,要求学号为升序,学号相同时成绩为
降序。
5、用drop删除学生表student的索引。
6、增加学生表student中姓名唯一约束。
7、增加学生表student中性别‘男’、‘女’唯一约束。
8、增加学生表student中年龄18~25岁约束。
9、增加选课表SC中学号sno的外码约束。
二、实验内容与步骤
/*用createindex在学生表student的学号sno上建立聚簇索引。
*/
createclusteredindexstuSnoonStudent(Sno)
/*-----在学生表student中,为姓名sname建立非聚簇索引。
---*/
createindexstuSnameonStudent(Sname)
/*在课程表的课程号Cno上建立唯一索引。
*/
createuniqueindexCoCnoonCourse(Cno)
/*在选课表的学号sno、成绩Grade上建立复合索引,要求学号为升序,学号相同时成绩为降序。
*/
createindexSCsgonSC(SnoASC,gradeDESC)-----
/*---、用drop删除学生表student的索引----*/
dropindexstudent.stuSno
dropindexstudent.stuSname
/*---增加学生表student中姓名唯一约束。
-----*/
altertableStudent
addunique(Sname)
/*---增加学生表student中性别‘男’、‘女’唯一约束。
----*/
altertablestudent
addconstraintck_Ssexcheck(Ssexin('男','女'))
/*---增加学生表student中年龄~25岁约束。
-----*/
altertablestudent
addconstraintck_Sagecheck(Sagebetween18and25)
/*---增加选课表SC中学号sno的外码约束----*/
altertableStudent
addconstraintc3primarykey(Sno)
altertableSC
addconstraintck_Snoforeignkey(Sno)referencesStudent(Sno)
实验三
一、实验目的:
掌握向数据表中输入、更新和删除记录的基本方法。
二、实验内容:
数据记录的插入、更新和删除。
三、实验要求:
(必做)
硬件:
IntelPentium120或以上级别的CPU,大于16MB的内存。
软件:
Windows95/98/2000操作系统,关系数据库管理系统SQLSERVER2000。
学时:
2学时
四、实验步骤:
1、用insert输入数据。
学生表student的数据
991201
张三
22
男
计算机系
991202
李四
21
男
信息系
991101
王五
23
男
数学系
991102
陈六
19
男
计算机系
991103
吴七
24
女
数学系
000101
刘八
22
女
信息系
课程表course的数据
1
数学
5
2
数据结构
4
3
程序设计
2
4
数据库原理
3
5
操作系统
3
选课表SC的数据
991201
1
90
991201
5
80
991201
3
85
991201
4
90
991102
1
85
991102
2
98
000101
2
91
基本表T的数据
0001
张三
男
1968-10
信息
副教授
湘潭
0002
李四
女
1956-11
信息
教授
长沙
1001
王五
男
1973-07
计算机
讲师
湘潭
1008
陈六
男
1970-08
计算机
副教授
北京
基本表Salary的数据
0001
1000
300
1300
0002
1500
500
2000
1001
800
200
1000
2、用delete删除数据记录
(1)删除教师表T中教师号为0001的元组。
(2)删除教师表T中的全部数据。
3、用update更新数据记录
(1)把0001号教师的基本工资加100。
(2)把所有教师的基本工资都加100。
二、实验内容与步骤
insertintodbo.Student(Sno,Sname,Sage,Ssex,Sdept)
values('991201','张三','22','男','计算机系')
insertintodbo.Student(Sno,Sname,Sage,Ssex,Sdept)
values('991202','李四','21','男','信息系')
insertintodbo.Student(Sno,Sname,Sage,Ssex,Sdept)
values('991101','王五','23','男','数学系')
insertintodbo.Student(Sno,Sname,Sage,Ssex,Sdept)
values('991102','陈六','19','男','计算机系')
insertintodbo.Student(Sno,Sname,Sage,Ssex,Sdept)
values('991103','吴七','24','女','数学系')
insertintodbo.Student(Sno,Sname,Sage,Ssex,Sdept)
values('000101','刘八','22','女','信息系')
---------------------------------------
insertintodbo.Course(Cno,Cname,Credit)
values('1','数学','5')
insertintodbo.Course(Cno,Cname,Credit)
values('2','数据结构','4')
insertintodbo.Course(Cno,Cname,Credit)
values('3','程序设计','2')
insertintodbo.Course(Cno,Cname,Credit)
values('4','数据原理','3')
insertintodbo.Course(Cno,Cname,Credit)
values('5','操作系统','3')
-------------------------
insertintodbo.SC(Sno,Cno,grade)
values('991201','1','90')
insertintodbo.SC(Sno,Cno,grade)
values('991201','5','80')
insertintodbo.SC(Sno,Cno,grade)
values('991201','3','85')
insertintodbo.SC(Sno,Cno,grade)
values('991201','4','90')
insertintodbo.SC(Sno,Cno,grade)
values('991102','1','85')
insertintodbo.SC(Sno,Cno,grade)
values('991201','2','98')
insertintodbo.SC(Sno,Cno,grade)
values('000101','2','91')
---------------------
insertintodbo.T(Tno,Tname,ssex,birthday,dept,title,address)
values('0001','张三','男',convert(char(10),'1968-10'),'信息','副教授','湘潭')
insertintodbo.T(Tno,Tname,ssex,birthday,dept,title,address)
values('0002','李四','女',convert(char(10),'1956-11'),'信息','教授','长沙')
insertintodbo.T(Tno,Tname,ssex,birthday,dept,title,address)
values('1001','王五','男',convert(char(10),'1973-07'),'计算机','讲师','湘潭')
insertintodbo.T(Tno,Tname,ssex,birthday,dept,title,address)
values('1008','陈六','男',convert(char(10),'1970-08'),'计算机','副教授','北京')
------------------------------------
insertintodbo.Salary(Tno,jbgz,zwgz,hj)
values('0001','1000','300','1300')
insertintodbo.Salary(Tno,jbgz,zwgz,hj)
values('0002','1500','500','2000')
insertintodbo.Salary(Tno,jbgz,zwgz,hj)
values('1001','800','200','1000')
/*删除教师表T中教师号为的元组*/
delete
fromT
whereTno='0001';
/*删除教师表T中的全部数据。
*/
deletefromT
/*()把号教师的基本工资加*/
updatedbo.Salary
setjbgz=jbgz+100
whereTno='0001';
/*()把所有教师的基本工资都加*/
updatedbo.Salary
setjbgz=jbgz+100;
实验四
一、实验目的:
掌握数据表的简单查询和多表连接方法。
二、实验内容:
数据库文件的简单和多表连接查询。
三、实验要求:
(必做)
硬件:
IntelPentium120或以上级别的CPU,大于16MB的内存。
软件:
Windows95/98/2000操作系统,关系数据库管理系统SQLSERVER2000。
学时:
4学时
四、实验步骤:
1、简单查询,用select检索
(1)查询所有学生的基本情况。
(2)查询教师每月应交纳的个人所得税。
(3)查询张三与李四两位同学的基本情况。
(4)查询9911班学生的基本信息(规定学生学号的前四位是班级号)。
(5)查询所有年龄在20岁以下的学生姓名及其年龄。
(6)查询选修了2门以上课程的学生学号。
2、多表查询,用select检索
(1)查询教师的收入情况,包括教师号、姓名及月总收入。
(2)查询每个学生的学号、姓名、选修课程及成绩。
(3)查询每一门课的间接先修课。
(4)查询有相同地址的两位教师的信息。
(5)查询选修2号课程且成绩在90分以上的所有学生。
(6)查询与王五在同一个系学习的学生。
--------------------------------------------------------
/*查询所有学生的基本情况*/
select*
fromStudent
/*查询教师每月应交纳的个人所得税*/
selectSalary.hj,
(casewhen(hj>'500'andhj<='1500')thenhj*0
when(hj>'1500'andhj<='4500')thenhj*0.05
else0end)as'应缴个人所得税'
fromSalary
/*查询张三与李四两位同学的基本情况*/
select*
fromStudent
whereSname='张三'orSname='李四'
/*查询班学生的基本信息(规定学生学号的前四位是班级号)*/
select*
fromStudent
whereSnolike'9911__'或者’9911%’
/*查询所有年龄在岁以下的学生姓名及其年龄*/
selectSname,Sage
fromStudent
whereSage<20
/*查询选修了门以上课程的学生学号*/
selectSno
fromSC
groupbySno
havingcount(*)>2
/*查询教师的收入情况,包括教师号、姓名及月总收入*/
selectTname,T.Tno,hjfromT,SalarywhereT.Tno=Salary.Tno
/*查询每个学生的学号、姓名、选修课程及成绩*/
selectStudent.Sno,Sname,SC.Cno,grade
fromStudent,SC
wheredbo.SC.Sno=dbo.Student.Sno
/*查询每一门课的间接先修课*/
selectFirst.Cno,Second.Credit
fromCourseFirst,CourseSecond
whereFirst.Credit=Second.Cno
/*查询有相同地址的两位教师的信息*/
select*
fromdbo.T
whereaddress=(selectaddress
fromT
groupbyaddress
havingcount(*)>=2)
/*查询选修号课程且成绩在分以上的所有学生*/
select*
fromStudent
whereSnoin(selectSnofromSCwheregrade>=90andCno='2')
/*查询与王五在同一个系学习的学生*/
selectSname
fromStudent
whereSdeptin(selectSdeptfromStudentwhereSname='王五')
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 应用 实验 指导书 湖南 工程学院 计算机科学 通信 学院 答案