《数据库应用》课程实验一
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授予、拒绝、撤销相关权限。