数据库实验报告 5.docx
- 文档编号:28892567
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:50
- 大小:8.87MB
数据库实验报告 5.docx
《数据库实验报告 5.docx》由会员分享,可在线阅读,更多相关《数据库实验报告 5.docx(50页珍藏版)》请在冰豆网上搜索。
数据库实验报告5
计算机与信息学院
数据库系统实验报告
专业班级
计算机科学与技术13-3班
学生姓名及学号
徐玲2013211694
课程教学班号
0002
任课教师
沈明玉
实验指导教师
沈明玉
实验地点
第二机房
2014~2015学年第二学期
实验1数据库的创建和删除
一、实验目的
1.了解SQLServer2005数据库的逻辑结构和物理结构。
2.掌握使用SQL语句创建和删除数据库。
二、实验要求
1.熟练利用查询分析器进行交互式SQL语句的使用方法。
2.理解SQLServer中的共享架构dbo。
3.注意操作结果的截图与保存,供撰写实验报告使用。
三、实验内容
1.使用SQL语句创建数据库userdb1。
数据库的参数要求:
数据库名称:
EDUC
数据库存储路径:
将数据库文件存储在D:
\jxgl\目录中。
其他参数要求:
数据文件的初始大小:
10M最大:
60M按5%的比例自动增长。
日志文件的初始大小:
4M最大:
10M增量为1M。
2.将新创建的数据库设置为当前数据库。
四、实验步骤
1.创建数据库EDUC
2、根据步骤1的sql语句,写出创建数据库EDUC的sql语句,点击‘执行’按钮建立数据库EDUC。
3、按照上述相同的要求创建数据库userdb。
4.用SQL语句删除步骤1建立的数据库userdb。
五、实验总结
通过此次实验,熟悉了SQLServer2005中SQLServerManagementStudio的环境,对数据库的逻辑结构和物理结构有了更进一步的理解,并且初步掌握了使用向导创建和删除数据库的方法。
实验2使用SQL语句创建和删除基本表
一.实验目的
1.了解SQLServer的基本数据类型。
2.学会使用Createtable语句创建基本表。
二.实验要求
1.在查询分析器中使用SQL语句完成基本表的创建、修改、删除。
2.实现基本表定义中有关完整性约束的要求。
3.注意操作结果的截图与保存,供撰写实验报告使用。
三.实验内容
在数据库EDUC中,创建如下四个表:
Class、student、course、sc
表的具体要求如下:
1.class表的结构要求
班级号:
clsNO,字符型(定长),长度为6,主码
班级名称:
clsName,字符型(变长),长度16,非空
辅导员:
Director,字符型(变长),长度10
专业:
Specialty,字符型(变长),长度30
2.student表的结构要求
学号:
sno,字符型(定长),长度为8,主码
姓名:
sname,字符型(变长),长度为10,非空
性别:
ssex,字符型(定长),长度为2,性别只能为’男或女’
班级号:
clsNO,字符型(定长),长度为6,外键
住址:
saddr,字符型(变长),长度为20
年龄:
sage,数值型(整数),长度为3,年龄要求10~30之间
身高:
height,数值型(长度为4,含两位小数)
3.course表的结构要求
课程号:
cno,字符型(定长),长度为4,主键
课程名:
cname,字符型(变长),长度为16,非空
先修课程号:
cno,字符型(定长),长度为4,外键
学分:
Ccredit,数值型(长度为2,含1位小数)
4.sc表的结构要求
学号:
sno,字符型(定长),长度为8
课程号:
cno,字符型(定长),长度为4
成绩:
grade,数值型(长度为3,含一位小数)
注意:
本表主码与外码的定义。
四.实验步骤
1.创建基本表
2.修改表结构
按照student的要求创建表student1,修改基本表student1:
1)增加“入学时间”列s_entrance,其数据类型为日期型。
2)将年龄属性值的限制由10~30改为10~40之间。
3)将住址(saddr)的长度改为40。
3.删除基本表student1。
五、实验总结
通过此次实验,初步了解了SQLServer2005数据库的逻辑结构和物理结构,并且掌握了SQL中创建和删除数据库的基本语句。
实验3数据更新操作
一.实验目的
1.掌握INSERT/UPDATE/DELETE语句的使用。
2.体会数据更新操作对完整性约束的影响。
二.实验要求
1.实验内容中要求的数据必须插入到相关基本表中,在此基础上每个表需另插入不少于3个元组。
2.注意操作结果的截图与保存,供撰写实验报告使用。
三.实验内容
1.数据插入操作
(1)向表(Class)中插入数据
ClsNO
ClsName
Director
Specialty
CS01
计算机一班
张宁
计算机应用
CS02
计算机二班
王宁
计算机应用
MT04
数学四班
陈晨
数学
PH08
物理八班
葛格
物理
GL01
地理一班
张四
应用地理
插入数据之后使用命令:
Select*fromClass;检查插入数据的正确性
(2)向表(Student)中插入数据
Sno
Sname
Ssex
ClsNO
Saddr
Sage
Height
20090101
王军
男
CS01
下关40#
20
1.76
20090102
李杰
男
CS01
江边路96#
22
1.72
20090306
王彤
女
MT04
中央路94#
19
1.65
20090107
吴杪
女
PH08
莲化小区74#
18
1.60
插入数据之后使用命令:
Select*fromStudent;检查插入数据的正确性
(3)向表(Course)中插入数据
Cno
Cname
Cpno
Credit
0001
高等数学
Null
6
0003
计算机基础
0001
3
0007
物理
0001
4
插入数据之后使用命令:
Select*fromCourse;检查插入数据的正确性
(4)向表(SC)中插入数据
SNO
CNO
Grade
20090101
0001
90
20090101
0007
86
20090102
0001
87
20090102
0003
76
20090306
0001
87
20090306
0003
93
20090106
0007
85
20090306
0007
90
2.数据修改与删除操作
首先在student表中插入一条新记录:
学号:
20091101、姓名:
张三、性别:
男、年龄:
19、班级编号:
‘CS01’。
1)对于student表,将所有班级号为‘CS01’的,并且年龄小于20岁的学生的班级号改为‘CS02’。
2)对于student表,删掉所有年龄小于20岁,并且专业号为‘CS02’的学生的记录。
四、实验步骤:
1.数据插入操作
(1)向表(Class)中插入数据
(2)向表(Student)中插入数据
(3)向表(Course)中插入数据
(4)向表(SC)中插入数据
2.数据修改与删除操作
首先在student表中插入一条新记录:
学号:
20091101、姓名:
张三、性别:
男、年龄:
19、班级编号:
‘CS01’。
1)对于student表,将所有班级号为‘CS01’的,并且年龄小于20岁的学生的班级号改为‘CS02’。
2)对于student表,删掉所有年龄小于20岁,并且专业号为‘CS02’的学生的记录。
五、实验总结
通过这次试验,对表的结构有了一定的了解,并且对SQLServer中的基本数据类型有了初步的认识,学会了使用基本的T-SQL语句创建表。
实验4数据库的分离和附加
一.实验目的
掌握数据库的分离和附加的具体操作方法。
二.实验要求
3.将创建的数据库EDUC进行分离并拷贝到U盘。
4.注意操作结果的截图与保存,供撰写实验报告使用。
三.实验内容
1)数据库的分离
在对象资源管理器中,选择数据库节点EDUC,右击-任务-分离,进入如下图所示的界面,选择“更新统计消息”下的复选框,单击确定,完成数据库的分离,此时可以在存储数据库的文件夹中将分离后的数据库的数据文件和日志文件拷贝到U盘里。
2)数据库的附加
在对象资源管理器中,选择数据库节点,右击-附加-添加,选择数据文件,单击确定,完成数据库的附加。
四、实验步骤
1、数据库的分离
2、数据库的附加
五、实验总结
通过这次实验,了解了UPDATE、INSERT、DELETE等语句的使用,在具体实践过程中需要注意其中的WHERE条件的限制,不然使用语句进行操作可能会带来不安全的隐患。
实验5创建和删除索引
一.实验目的
1.了解索引的类型和作用。
2.学会用SQL语句对表创建和删除索引
二.实验要求
1.了解索引类型并比较各类索引的不同之处。
2.完成索引的创建和删除。
3.注意操作结果的截图与保存,供撰写实验报告使用。
三.实验内容
1.用SQL语句分别建立以下索引
(1)在student表的Sname列上建立普通降序索引Stusname。
(2)在course表的Cname列上建立唯一索引Coucname。
(3)在sc表的Sno(升序),Cno(升序)和grade(降序)三列上建立一个普通索引SCno。
2.检查创建索引的完成情况。
3.用SQL语句删除索引
删除Student表的Stusname索引。
四、实验步骤
1.用SQL语句分别建立以下索引
(1)在student表的Sname列上建立普通降序索引Stusname。
(2)在course表的Cname列上建立唯一索引Coucname。
(3)在sc表的Sno(升序),Cno(升序)和grade(降序)三列上建立一个普通索引SCno。
2.检查创建索引的完成情况。
3.用SQL语句删除索引
删除Student表的Stusname索引。
五、实验总结
通过此次实验,了解了索引的两种类型及其相关的应用,并且学会了利用SQL语句对表创建和和删除索引。
实验6数据查询
一.实验目的
1.观察查询结果,体会SELECT语句实际应用;
2.要求学生能够在查询分析器中使用SELECT语句进行简单查询。
3.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
二.实验要求
1.完成所要求的全部查询。
2.注意操作结果的截图与保存,供撰写实验报告使用。
三.实验内容
所有的查询全部用Transact-SQL语句实现。
此部分查询包括投影、选择条件表达、数据排序、使用临时表等。
对EDUC数据库实现以下查询:
将student表中sname为李杰的改为张三。
1)查询“计算机应用”专业的学生学号和姓名;
2)查询选修了课程的学生学号;
3)查询选修课程0001且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数0.75输出;
4)查询“计算机应用”和“数学”专业的姓“张”的学生的信息。
5)查询“0001”课程的成绩高于张三的学生学号和成绩;
6)查询没有选修“0002”课程的学生姓名。
四.实验步骤
1、将student表中sname为李杰的改为张三。
2、查询“计算机应用”专业的学生学号和姓名;
3、查询选修了课程的学生学号;
4、查询选修课程0001且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数0.75输出;
5、查询“计算机应用”和“数学”专业的姓“张”的学生的信息。
6、查询“0001”课程的成绩高于张三的学生学号和成绩;
7、查询没有选修“0002”课程的学生姓名。
五、实验总结
通过这次实验,自己了解了SELECT语句的实际应用,并初步学会了在SQLServer中使用SELECT语句进行简单的查询,在实验的最后学会了表的数据查询、数据排序和数据连接的操作方法。
实验7使用聚集函数的SELECT语句
一、实验目的
1.熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
2.进一步掌握SQLServer查询分析器的使用,加深对SQL语言的嵌套查询语句的理解。
二、实验要求
1.在实验之前做好准备。
2.注意操作结果的截图与保存,供撰写实验报告使用。
三、实验内容
在数据库EDUC中用SQL语句实现如下查询:
1)查询学生的总人数。
2)查询选修了课程的学生人数。
3)查询课程的课程号和选修该课程的人数。
4)查询选修课程超过2门课的学生学号和姓名。
四.实验步骤
1、查询学生的总人数。
2、查询选修了课程的学生人数。
3、查询课程的课程号和选修该课程的人数。
4、查询选修课程超过2门课的学生学号和姓名。
五、实验总结
通过此次实验,初步了解了数据查询中的分组、统计、计算和组合操作方法,并且进一步掌握了SQLServer查询分析器的使用,加深了对SQL语言的嵌套查询语句的理解。
实验8视图的定义与使用
一.实验目的
1.熟悉和掌握对数据表中视图的查询操作和SQL语句的使用;
2.熟悉和掌握对数据表中视图的更新操作和SQL语句的使用,并注意视图更新与基本表更新的区别与联系;
3.学习灵活熟练的进行视图的操作,认识视图的作用。
二.实验要求
1.在实验开始之前做好准备工作。
2.思考视图和基本表的区别。
3.注意操作结果的截图与保存,供撰写实验报告使用。
三.实验内容
1.定义视图
在EDUC数据库中,已Student、Course和SC表为基础完成一下视图定义:
1)定义视图V_SC_G:
该视图包含Student、Course和SC表中学生的学号、姓名、课程号、课程名和成绩;
2)定义一个反映学生出生年份的视图V_YEAR,该视图要求使用系统函数来获取当前日期及转换;
3)定义视图V_AVG_S_G:
该视图将反映学生选修课程的门数及平均成绩;
4)定义视图V_AVG_C_G:
该视图将统计各门课程的选修人数及平均成绩。
2.使用视图
1)查询以上所建的视图结果。
2)查询平均成绩为90分及以上的学生学号、姓名和成绩;
3)查询科目成绩大于平均成绩的学生学号、课程号、成绩和平均成绩;
4)查询1995年出生的学生学号和姓名。
四、实验步骤
1、定义视图V_SC_G:
该视图包含Student、Course和SC表中学生的学号、姓名、课程号、课程名和成绩;
2、定义一个反映学生出生年份的视图V_YEAR,该视图要求使用系统函数来获取当前日期及转换;
3、定义视图V_AVG_S_G:
该视图将反映学生选修课程的门数及平均成绩;
4、定义视图V_AVG_C_G:
该视图将统计各门课程的选修人数及平均成绩。
5、查询以上所建的视图结果。
6、查询平均成绩为90分及以上的学生学号、姓名和成绩;
7、查询科目成绩大于平均成绩的学生学号、课程号、成绩和平均成绩;
8、查询1995年出生的学生学号和姓名。
五、实验总结
通过这次实验,使自己熟悉和掌握对数据表中视图的查询操作和SQL命令的使用;并且学习基本的视图的操作,更进一步地认识视图的作用。
实验9触发器的创建与使用
一、实验目的
本实验的目的是使学生进一步掌握SQLServer触发器的创建及使用方法,加深SQL触发器的理解。
通过对数据的更新操作体会其触发器的作用。
二、实验要求
1.掌握T-SQL创建触发器语句Createtrigger的使用。
2.完成所规定的触发器定义要求。
3.通过数据查询检查触发器的使用效果。
4.注意操作结果的截图与保存,供撰写实验报告使用。
三、实验内容
1.在班级表class中增加班级人数(c_total)字段。
2.为学生表(student)创建INSERT触发器t_inst_stu:
新增一名学生时,若其班级编号非空,则将班级表(class)中相应班级的人数(c_total)自动加1。
3.为学生表(student)创建DELETE触发器t_dele_stu:
删除一名学生时,若其班级编号非空,则将班级表(class)中相应班级的人数(c_total)自动减1。
4.为学生表(student)创建UPDATE触发器t_update_stu:
当某学生所在班号发生变化时(即调到另一班级后),将其原先所在班级的人数(c_total)减1,将新调入的班级班级的人数(c_total)加1。
5.体会触发器的作用。
四、实验步骤、
1.使用altertable语句在班级表class中增加班级人数(c_total)字段,默认值(DEFAULT)是0;
2.为学生表(student)分别创建:
●INSERT触发器t_inst_stu
●DELETE触发器t_dele_stu
●UPDATE触发器t_update_stu
3.体会触发器的作用:
1)查看班级表(class)
2)对学生表(student)分别插入(INSERT)、删除(DELETE)和修改(UPDATE)元组
3)再次查看班级表(class),检查其数据的变化情况,体会触发器的作用。
五、实验总结
通过此次本实验进一步掌握SQLServer触发器的创建及使用方法,加深对SQL触发器的理解,并且在使用触发器的过程中体会了触发器的作用。
实验10存储过程的创建与使用
一、实验目的
本实验的目的是使学生进一步掌握SQLServer存储过程的创建及使用方法,加深对SQL存储过程的理解。
通过对存储过程的调用体会其作用。
二、实验要求
1.掌握T-SQL创建触发器语句Createprocedure的使用。
2.完成所规定的存储过程定义要求。
3.调用(EXEC)所创建的过程,检查过程的执行结果。
4.注意操作结果的截图与保存,供撰写实验报告使用。
三、实验内容
1、创建一个不带参数的存储过程p_stu_info1,实现对满足要求的学生基本信息的查询。
要求:
所有年龄<21岁的男同学
2、创建一个带有参数的存储过程p_stu_info2,实现对满足要求的学生基本信息的查询。
要求:
输入参数为学号,与指定学号的学生同龄的所有同学。
3、创建一个存储过程p_stu_info3,根据输入的学号,查询某学生的基本信息。
要求:
输入参数为学号。
4、创建一个存储过程p_stu_grade,根据输入的学号,返回其选课及其成绩。
要求:
输入参数为学号。
5.使用SQL语句分别执行p_stu_info1、p_stu_info2、p_stu_info3和p_stu_grade,并查看显示结果。
四、实验步骤
1、创建一个不带参数的存储过程p_stu_info1,实现对满足要求的学生基本信息的查询。
2、创建一个带有参数的存储过程p_stu_info2,实现对满足要求的学生基本信息的查询。
3、创建一个存储过程p_stu_info3,根据输入的学号,查询某学生的基本信息。
4、创建一个存储过程p_stu_grade,根据输入的学号,返回其选课及其成绩。
5.使用SQL语句分别执行p_stu_info1、p_stu_info2、p_stu_info3和p_stu_grade,并查看显示结果。
五、实验总结
通过本实验,使自己进一步掌握SQLServer存储过程的创建及的使用方法,加深对SQL存储过程的理解。
通过对存储过程的调用体会了SQLServer存储过程的作用。
实验11用户管理操作
一、实验目的
本实验的目的是使学生进一步掌握SQLServer用户角色及权限的使用方法,加深SQL用户管理的理解。
SQLServer的特定数据库都有自己的用户和角色(用户组),该数据库只能由它的用户或角色访问,其他用户无权访问该数据库数据,数据库系统可以通过创建和管理特定的数据库的用户和角色来保证数据库不被非法用户访问。
二、实验要求
1.实现对SQLServer的用户和角色管理
2.设置和管理数据操作权限
三、实验内容
1、创建登录帐号
2、创建用户
3、创建角色
4、授权
5、验证授权操作
四、实验步骤
1.创建登录帐号
--添加登录cxp,设置密码为123,默认数据库为EDUC
2、创建用户
3、创建角色
用语句创建角色,有两种方法1)调用存储过程进行创建;2)用create语句进行创建:
(用崔平测试)
给角色授权:
删除角色:
(用崔平测试)
4、授权
将角色所拥有的权限授予用户cxp
使用向导,eudc-安全性-用户,双击cxp,在弹出的窗口中选择数据库角色,如下图:
也可以用语句操作
5、验证授权操作
修改数据库属性为混合登录模式后重新启动数据库,用cxp登录账号登录后,进行验证;
五、实验总结
通过本实验使自己进一步掌握SQLServer用户角色及权限的使用方法,加深SQL用户管理的理解。
SQLServer的特定数据库都有自己的用户和角色(用户组),该数据库只能由它的用户或角色访问,其他用户无权访问该数据库数据,数据库系统可以通过创建和管理特定的数据库的用户和角色来保证数据库不被非法用户访问。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库实验报告 数据库 实验 报告