1、数据库实验报告 22计算机与信息学院 数据库系统 实验报告专 业 班 级 计算机科学与技术13-3班 学生姓名及学号 王泊谦2013211683 课程教学班号 0002 任 课 教 师 沈明玉 实验指导教师 沈明玉 实验地点 第二机房 2014 2015 学年第 二 学期实验1 数据库的创建和删除一、实验目的1. 了解SQL Server 2005数据库的逻辑结构和物理结构。2. 掌握使用SQL 语句创建和删除数据库。二、实验要求1. 熟练利用查询分析器进行交互式SQL语句的使用方法。 2. 理解SQL Server中的共享架构dbo。3. 注意操作结果的截图与保存,供撰写实验报告使用。三、实
2、验内容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。五、实验总结通过本次实验,了解了SQL
3、 Server 2005数据库的逻辑结构和物理结构并且掌握了使用SQL语句创建和删除数据库。实验2 使用SQL语句创建和删除基本表一实验目的1了解SQL Server的基本数据类型。2学会使用Create table语句创建基本表。二实验要求1.在查询分析器中使用SQL语句完成基本表的创建、修改、删除。2.实现基本表定义中有关完整性约束的要求。3.注意操作结果的截图与保存,供撰写实验报告使用。三实验内容在数据库EDUC中,创建如下四个表: Class、student、course、sc表的具体要求如下:1.class表的结构要求班级号: clsNO, 字符型(定长),长度为6,主码班级名称:c
4、lsName,字符型(变长),长度16,非空辅导员: Director,字符型(变长),长度10专业: Specialty,字符型(变长),长度302.student表的结构要求学号:sno,字符型(定长),长度为8,主码姓名:sname,字符型(变长),长度为10,非空性别:ssex,字符型(定长),长度为2,性别只能为男或女班级号:clsNO,字符型(定长),长度为6,外键住址:saddr,字符型(变长),长度为20年龄:sage,数值型(整数),长度为3,年龄要求1030之间身高:height,数值型(长度为4,含两位小数)3.course表的结构要求课程号:cno,字符型(定长),长度
5、为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)将年龄属性值的限制由1030改为1040之间。3)将住址(saddr)的
6、长度改为40。3删除基本表student1。五、实验总结 通过本次实验,了解了MySQL的基本数据类型并且使用SQL语句完成了基本表的创建、修改、删除等操作。实验3 数据更新操作一. 实验目的1掌握INSERT/UPDATE/DELETE语句的使用。2体会数据更新操作对完整性约束的影响。二. 实验要求1实验内容中要求的数据必须插入到相关基本表中,在此基础上每个表需另插入不少于3个元组。2注意操作结果的截图与保存,供撰写实验报告使用。三. 实验内容1. 数据插入操作(1)向表(Class)中插入数据ClsNOClsNameDirectorSpecialtyCS01计算机一班张宁计算机应用CS02
7、计算机二班王宁计算机应用MT04数学四班陈晨数学PH08物理八班葛格物理GL01地理一班张四应用地理插入数据之后使用命令:Select * from Class; 检查插入数据的正确性(2) 向表(Student)中插入数据SnoSnameSsexClsNOSaddrSageHeight20090101王军男CS01下关40#201.7620090102李杰男CS01江边路96#221.7220090306王彤女MT04中央路94#191.6520090107吴杪女PH08莲化小区74#181.60插入数据之后使用命令:Select * from Student; 检查插入数据的正确性(3)向
8、表(Course )中插入数据CnoCnameCpnoCredit0001高等数学Null60003计算机基础000130007物理00014插入数据之后使用命令:Select * from Course; 检查插入数据的正确性(4)向表(SC )中插入数据SNOCNOGrade20090101000190200901010007862009010200018720090102000376200903060001872009030600039320090106000785200903060007902.数据修改与删除操作首先在student表中插入一条新记录:学号:20091101、姓名:张三
9、、性别:男、年龄: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的,并且年
10、龄小于20岁的学生的班级号改为CS02。2)对于student表,删掉所有年龄小于20岁,并且专业号为CS02的学生的记录。五、实验总结 通过本次试验,对表的结构有了一定的了解,掌握了INSERT、UPDATE、DELETE语句的使用,体会到了数据更新操作对完整性约束的影响。实验4 数据库的分离和附加一. 实验目的掌握数据库的分离和附加的具体操作方法。二. 实验要求3将创建的数据库EDUC进行分离并拷贝到U盘。4注意操作结果的截图与保存,供撰写实验报告使用。三. 实验内容1)数据库的分离 在对象资源管理器中,选择数据库节点EDUC,右击-任务-分离,进入如下图所示的界面,选择“更新统计消息”下
11、的复选框,单击确定,完成数据库的分离,此时可以在存储数据库的文件夹中将分离后的数据库的数据文件和日志文件拷贝到U盘里。2)数据库的附加在对象资源管理器中,选择数据库节点,右击-附加-添加,选择数据文件,单击确定,完成数据库的附加。四、实验步骤 1、数据库的分离 2、数据库的附加五、实验总结 通过本次实验,掌握了数据库的分离和附加的具体操作方法。实验5 创建和删除索引一. 实验目的 1.了解索引的类型和作用。2.学会用SQL语句对表创建和删除索引二. 实验要求 1. 了解索引类型并比较各类索引的不同之处。 2. 完成索引的创建和删除。 3. 注意操作结果的截图与保存,供撰写实验报告使用。三. 实
12、验内容 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)
13、在sc表的Sno(升序), Cno(升序)和grade (降序)三列上建立一个普通索引SCno。2. 检查创建索引的完成情况。 3. 用SQL语句删除索引 删除Student表的Stusname索引。五、实验总结 通过本次实验,了解了普通索引、唯一索引以及它们作用,并且学会了利用SQL语句对表创建和和删除索引。实验6 数据查询一、实验目的1. 观察查询结果, 体会SELECT语句实际应用;2.要求学生能够在查询分析器中使用SELECT语句进行简单查询。3.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。二、实验要求1. 完成所要求的全部查询。2. 注意操作结果的截图与保存,供撰写实
14、验报告使用。三、实验内容 所有的查询全部用Transact-SQL语句实现。此部分查询包括投影、选择条件表达、数据排序、使用临时表等。对EDUC数据库实现以下查询:将student表中sname为李杰的改为张三。1)查询“计算机应用”专业的学生学号和姓名;2)查询选修了课程的学生学号;3)查询选修课程0001 且成绩在8090 之间的学生学号和成绩,并将成绩乘以系数0.75 输出;4)查询“计算机应用”和“数学”专业的姓“张”的学生的信息。5)查询“0001”课程的成绩高于张三的学生学号和成绩;6)查询没有选修“0002”课程的学生姓名。四、实验步骤1、将student表中sname为李杰的改
15、为张三。 2、查询“计算机应用”专业的学生学号和姓名; 3、查询选修了课程的学生学号; 4、查询选修课程0001 且成绩在8090 之间的学生学号和成绩,并将成绩乘以系数0.75 输出; 5、查询“计算机应用”和“数学”专业的姓“张”的学生的信息。6、查询“0001”课程的成绩高于张三的学生学号7、查询没有选修“0002”课程的学生姓名。五、实验总结 通过本次实验,了解并体会了SELECT语句的实际应用,能够在查询分析器中使用SELECT语句进行简单查询,熟练掌握了表的数据查询、数据排序和数据连接等操作方法。实验7 使用聚集函数的SELECT语句一、实验目的1. 熟练掌握数据查询中的分组、统计
16、、计算和组合的操作方法。2. 进一步掌握SQL Server 查询分析器的使用,加深对SQL语言的嵌套查询语句的理解。二、实验要求1.在实验之前做好准备。2.注意操作结果的截图与保存,供撰写实验报告使用。三、实验内容在数据库EDUC中用SQL语句实现如下查询:1) 查询学生的总人数。2) 查询选修了课程的学生人数。3) 查询课程的课程号和选修该课程的人数。4) 查询选修课程超过2 门课的学生学号和姓名。四. 实验步骤1、查询学生的总人数。2、查询选修了课程的学生人数。3、查询课程的课程号和选修该课程的人数。4、查询选修课程超过2 门课的学生学号和姓名。五、实验总结 通过本次实验,熟练掌握了数据
17、查询中的分组、统计、计算和组合的操作方法,并且进一步掌握了 MySQL的使用,加深了对SQL语言的嵌套查询语句的理解。实验8 视图的定义与使用一实验目的1.熟悉和掌握对数据表中视图的查询操作和SQL语句的使用;2.熟悉和掌握对数据表中视图的更新操作和SQL语句的使用,并注意视图更新与基本表更新的区别与联系;3.学习灵活熟练的进行视图的操作,认识视图的作用。二实验要求1.在实验开始之前做好准备工作。2.思考视图和基本表的区别。3.注意操作结果的截图与保存,供撰写实验报告使用。三实验内容1.定义视图在EDUC数据库中,已Student、Course 和SC表为基础完成一下视图定义:1)定义视图V_
18、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:该视图包含Studen
19、t、 Course 和SC表中学生的学号、姓名、课程号、课程名和成绩;2、定义一个反映学生出生年份的视图V_YEAR,该视图要求使用系统函数来获取当前日期及转换;3、定义视图V_AVG_S_G:该视图将反映学生选修课程的门数及平均成绩;4、定义视图V_AVG_C_G:该视图将统计各门课程的选修人数及平均成绩。5、查询以上所建的视图结果。6、查询平均成绩为90分及以上的学生学号、姓名和成绩;7、8、查询科目成绩大于平均成绩的学生学号、课程号、成绩和平均成绩;9、 8、查询1995年出生的学生学号和姓名。五、实验总结 通过本次实验,熟悉掌握了对数据表中视图的查询操作和SQL语句的使用,熟悉掌握了对
20、数据表中视图的更新操作和SQL语句的使用,理解了视图更新与基本表更新的区别与联系,认识了视图的作用。实验9 触发器的创建与使用一、实验目的本实验的目的是使学生进一步掌握SQL Server触发器的创建及使用方法,加深SQL触发器的理解。通过对数据的更新操作体会其触发器的作用。二、实验要求1. 掌握T-SQL创建触发器语句Create trigger的使用。2. 完成所规定的触发器定义要求。3. 通过数据查询检查触发器的使用效果。4. 注意操作结果的截图与保存,供撰写实验报告使用。三、实验内容1. 在班级表class中增加班级人数(c_total)字段。2. 为学生表(student)创建INS
21、ERT触发器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. 使用alter t
22、able语句在班级表class中增加班级人数(c_total)字段,默认值(DEFAULT)是0;2. 为学生表(student)分别创建:INSERT触发器t_inst_stuDELETE触发器t_dele_stuUPDATE触发器t_update_stu3. 体会触发器的作用:1) 查看班级表(class)2)对学生表(student)分别插入(INSERT)、删除(DELETE)和修改(UPDATE)元组3)再次查看班级表(class),检查其数据的变化情况,体会触发器的作用。五、实验总结 通过本次本实验,进一步掌握了SQL触发器的创建及使用方法,加深对SQL触发器的理解,并且在使用触发
23、器的过程中体会了触发器的作用。实验10 存储过程的创建与使用一、实验目的本实验的目的是使学生进一步掌握SQL Server存储过程的创建及使用方法,加深对SQL存储过程的理解。通过对存储过程的调用体会其作用。二、实验要求1. 掌握T-SQL创建触发器语句Create procedure的使用。2. 完成所规定的存储过程定义要求。3. 调用(EXEC)所创建的过程,检查过程的执行结果。4. 注意操作结果的截图与保存,供撰写实验报告使用。三、实验内容1、创建一个不带参数的存储过程p_stu_info1,实现对满足要求的学生基本信息的查询。要求:所有年龄21岁的男同学2、创建一个带有参数的存储过程p
24、_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_
25、info2,实现对满足要求的学生基本信息的查询。3、创建一个存储过程p_stu_info3,根据输入的学号,查询某学生的基本信息。4、创建一个存储过程p_stu_grade,根据输入的学号,返回其选课及其成绩。五、实验总结 通过本实验,进一步掌握了 MySQL存储过程的创建及的使用方法,加深 了对 MySQL存储过程的理解。通过对存储过程的调用体会了SQL存储过程的作用。实验11 用户管理操作一、实验目的本实验的目的是使学生进一步掌握SQL Server用户角色及权限的使用方法,加深SQL用户管理的理解。SQL Server的特定数据库都有自己的用户和角色(用户组),该数据库只能由它的用户或角
26、色访问,其他用户无权访问该数据库数据,数据库系统可以通过创建和管理特定的数据库的用户和角色来保证数据库不被非法用户访问。二、实验要求1.实现对SQL Server的用户和角色管理2.设置和管理数据操作权限三、实验内容1、创建登录帐号2、创建用户3、创建角色4、授权5、验证授权操作四、实验步骤1. 创建登录帐号-添加登录cxp,设置密码为123,默认数据库为EDUC2、创建用户3、创建角色 用语句创建角色,有两种方法1)调用存储过程进行创建;2)用create语句进行创建:(用崔平测试)给角色授权,删除角色:(用崔平测试)4、授权 将角色所拥有的权限授予用户cxp 使用向导,eudc-安全性-用户,双击cxp,在弹出的窗口中选择数据库角色,也可用 语句操作 5、验证授权操作 修改数据库属性为混合登录模式后重新启动数据库,用cxp登录账号登录后,进行验证;五、实验总结通过本次实验,进一步掌握了SQL创建登录帐号、创建用户、创建角色、授权、验证授权等操作,加深对SQL用户管理的理解。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1