当前位置:文档之家› 数据库应用实验

数据库应用实验

《数据库应用》课程实验一
1.实验目的
(1)了解系统数据库的作用。

(2)学会使用图形化方法和T-SQL创建用户数据库。

(3)学会压缩和扩充数据库。

(4)学会查看和修改数据库选项。

(5)学会给数据库改名和删除数据库。

(6)了解SQL Server的数据类型。

(7)了解数据表的结构持点。

(8)学会使用图形化方法和T-SQL创建数据表。

(9)学会使用图形化方法和T-SQL对数据表进行插入、修改和删除数据的操作。

(10)学会定义约束、使用默认和规则。

(11)掌握Select语句基本语法。

(12)学会使用ORDER BY子句进行排序,使用Group BY子句进行分组统计
(13)学会数据汇总、连接查询、子查询的方法。

2.实验内容
(1)使用SQL语句创建一个数据库。

数据库名称为student,主数据文件的逻辑名称
为student_data,操作系统文件的名称为D:\mssql\data\student_data.mdf,大小为20MB,最大为50MB,以25%的速度增长。

数据库的日志文件逻辑名称为student_log,操作系统文件的名称为d:\mssql\data\Student_log.ldf,大小为3MB,最大为10MB,以1MB的速度增长。

(2)使用T-SQL语句将数据库student空间扩充到40MB
(3)分别创建学生信息表(stud_info)、教师基本信息表(teacher_info)、学生成绩表
(stud_grade)、课程信息表(1esson_info)、课程安徘表(teach_schedule)、院系代码表
(dept_code)、专业代码表(specialty_codc)、教研室信息表(staffroom_info)和教室信息表(cIassroom_info)。

同时完善各表的主键、外键约束。

(4)使用T-SQL完成以下各题:
a)将teacher_info表中的teacher_id列长度从6个字符改变到8个字符。

b)向student_info表增加“入学时间”列,其数据类型为日期型。

c)为student数据库的student_info表中的mark列建立CHECK约束(560<=mark<=600)。

d)为表stud_info的telcode列建立UNIQUE约束。

e)向学生信息表(stud_info)中插入数据,分为一次插入一条和一次插入多条数据
f)将赵明同学的入学成绩更新成与学号为“0801040123”的江荣同学的入学成绩相同。

g)删除学号为“0801020201”的学生记录。

h)查询stud_id为"0801010634"的学生的地址和电话.
i)查询stud_info表中性别为“女”的学生的地址和电话。

使用AS子句将结果中指定
目标列的标题分别指定为地址,电话。

j)找出所有姓“王”的教师所对应的技术职称。

k)查询所有电话号码中含有“3460”的教师所担任课程的编码。

l)查找计算机工程系中所有担任“计算机导论”的教师编号和姓名。

m)写出课程安排表(teach_schedule)与课程信息表(1esson_info)等值内连接的SQL命令。

n)写出教师信息表(teacher_info)与课程安排表(teach_schedu1e)右外连接的SQL命令。

o)查询计算机工程系全体教师的平均工资。

p)统计计算机工程系扭任“多媒体技术”课程教学的教师的工资总和。

q)按职称统计各个教研室的教师人数。

r)按性别统计计算机工程系的学生人数。

s)为stud_info表gender创建default约束“男”
t)在学生成绩表中统计参加多媒体技术考试(课程号为“0401010106”)的人数。

u)查询工资高于“孙乐多”所有老师的编号、姓名、性别及工资。

v)在学生成绩表中查询课程类型为“考试”的学生学号、姓名、成绩。

《数据库应用》课程实验二
1.实验目的
(1)理解视图的概念。

(2)学会利用图形化方法和T-SQL创建视图的方法。

(3)学会查询、更新、删除视图的方法。

(4)了解索引的作用。

(5)会使用图形化方法和T-SQL创建视图。

(6)学会创建唯一、聚集、非聚集索引。

(7)学会查看和修改索引选项。

(8)理解存储过程和触发器的作用。

(9)学会使用图形化方法和T-SQL创建存储过程
(10)学会使用图形化方法和T-SQL器创建触发器。

(11)学会对有参和无参存储过程的执行。

(12)学会事务处理、游标的使用。

(13)学会数据库备份和还原的方法。

2.实验内容
使用T-SQL完成以下各题:
1)将表stud_info中所有女生记录定义为一个视图(stud_info_female)
2)对表stud_info定义一个反映学生出生日期的视图(stud_info_birthday)
3)将表stud_grade中学生的学号及其平均成绩定义为一个视图(stud_grade_average)
4)通过视图stud_info_female查询所有女生记录的信息
5)通过查询视图stud_info_birthday查询学生的年龄
6)向视图stud_info_female中插入一条记
7)尝试在视图stud_grade_average中插入、修改、删除数据记录,然后检查数据
表stud_grade中的变化情况。

8)对表stud_info学号stud_id列建立一个名为xh_index索引
9)在teacher_info表上基于teacher_id创建唯一索引
10)为stud_grade表创建一个基于“学号,课程号”组合列的聚集、复合索引
xhkc_index
11)在teacher_info表上基于salary列创建聚集索引
12)在teacher_info表上基于telephone列创建非聚集索引,其填充因子值为60
13)针对教师基本信息表teacher_info,创建—个名称为teacher_select的存储过程,
执行存储过程将从数据表teacher_info中,根据编号检索某一教师的姓名和职称。

14)建立一个插入教师记录的存储过程teacher_insert,并执行。

15)建立一个修改教师记录的存储过程teacher_update,根据teacher_id修改,并
执行。

16)创建—个触发器teacher_tri1,当向表teacher_info中插入一条记录时,自动显
示表中的记录。

17)在teacher_info上建立DELETE触发器teacher_tri2,使得在删除表teacher_info
中记录的同时,自动检查课程安排表teach_schedule中是否有该教师的记录,如果存在该教师记录,则取消删除。

18)运用事务处理将课程信息表lesson_info的多媒体技术课程编号course_ id由
0401010106修改为0401010116。

19)定义一个游标stud_cursor,逐行读取stud_info表中的数据
20)练习分离和附件数据库
21)练习备份和恢复数据库
22)练习给用户stud_user和teacher_user授予、拒绝、撤销相关权限。

相关主题