《数据库应用技术上机实验报告(共15页).doc》由会员分享,可在线阅读,更多相关《数据库应用技术上机实验报告(共15页).doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数据库应用技术上机实验报告学校: 班级: 学号: 姓名: 数据库应用技术上机实验报告一 实验的目的1、 巩固数据库的基础知识;2、 了解结构化查询语言SQL的概念及其特点;3、 学习使用SQL Server 2000数据库管理系统软件的一些基本操作;4、 掌握用SQL创建数据库的两种方法;5、 掌握用SQL创建数据表的方法;6、 掌握数据表的更新的方法;7、 掌握数据表的各种查询方法。二、 实验的题目与要求现有教学管理库的四个关系模式:学生(学生号,姓名,性别,出生年月,班级号)教师 (教师号,姓名,性别,出生日期,职称,所在系)课程 (课程号,课程名,教师号)成绩(
2、学生号,课程号,成绩)一、使用SQL命令建立教学管理库和学生表学生:学生号姓名性别出生年月班级号108曾华男1977-9-195033105匡明男1975-10-295031107王文丽女1976-1-2395033101李军男1976-2-2095033109王华芳女1975-2-1095031103华君男1974-6-395031二、用数据导入方法将教师表、课程表和成绩表导入到教学管理库中教师:教师号姓名性别出生日期职称所在系804李斌男1958-12-02副教授计算机系856张旭东男1969-3-12讲师电子系825王一萍女1972-5-5助教计算机系831刘冰女1977-8-14助教电
3、子系821李明男1968-10-15讲师数学系课程:课程号课程名教师号3-105计算机导论8253-245操作系统8046-166数字电路8569-888高等数学821成绩:学生号课程号成绩1013-105641013-245751016-166851019-888951033-105921033-245861036-166791053-105861053-245911083-10578三、对上面建立的教学管理数据库完成如下几个简单查询操作:1、 检索选修课程号为3-105且成绩在60到80之间的记录;2、 检索学生表中所有姓”李”学生的学生号、姓名、性别;3、 检索学生表中名字中含有“华”的
4、学生记录;4、 检索成绩表中成绩为75,86,92的所有记录;5、 检索学生表中班级号为“95031”或性别为“女”的学生记录;6、 检索学生表中所有男生记录,并以班级号降序排序;7、 检索学生表中“95031”班的学生人数;8、 检索每个学生的学号,姓名,选修课程平均成绩。9、 检索考试成绩为最高分的学生姓名;10、 检索所有未任课的教师姓名和所在系;11、 检索学生姓名及其所选修的课程号和成绩;12、 检索至少选修王老师所授课程中一门课程的女学生姓名;13、 检索至少选修了两门课程的学生学号;14、 检索成绩表中最高分与最低分之差大于12分的课程号;15、 检索比王丽同学年龄大的学生姓名、
5、性别、出生年月;16、 检索选修了3-245课程的学生中成绩最高的学生学号。17、 检索选修了4门以上课程的学生的总成绩(不统计不及格的课程);18、 检索选修编号为“3-105”课程且成绩至少高于选修编号为3-245课程的学生的学生号、课程号和成绩;19、 检索选修了所有课程的学生的学号,姓名;20、 检索所有教师和学生的姓名、性别和出生年份;21、 检索成绩表中多于5名学生选修的并以3开头的课程号的平均分数。四、完成如下数据更新操作:1、 建立95031班级选课学生选课视图,视图包括学生号,姓名,课程号, 课程名,成绩;2、 将成绩表中“操作系统”选课记录加5分;3、 删除成绩表中所有“计
6、算机导论”的选课记录;4、 将教师王一萍的姓名更新为王尹萍,职称改为讲师。五、写出本次实验报告实验报告应包含:1、 实验的目的和要求2、 实验所用环境3、 实验题目、命令和试验结果4、 本次实验的收获和体会(每位同学应至少写5行体会,且每人互不相同)三、实验所用环境该实验的所有操作均使用Microsoft 公司的SQL Server 2000个人版数据库管理系统。SQL Server 是目前非常流行的数据库管理系统,操作简单、可靠、易用。四、实验内容与实验结果1、建立数据库和表(1) 建立数据库CREATE DATABASE 教学管理库(2)建立表用SQL命令建立学生表: create tab
7、le 学生 (学生号 char(30) primary key, 姓名 char(8), 性别 char(2),出生年月 datetime,班级号 char(5)使用SQL语句添加学生表信息:Insert into 学生 values(108,曾华,男, 1977-9-1, 95033)Insert into 学生 values(105,匡明,男, 1975-10-2, 95031)Insert into 学生 values(107,王文丽,女, 1976-1-23, 95033)Insert into 学生 values(101,李军,男, 1976-2-20, 95033)Insert i
8、nto 学生 values(109,王华芳,女, 1975-2-10, 95031)Insert into 学生 values(103,华君,男, 1974-6-3, 95031)执行如下图:2、用数据导入方法将教师表、课程表和成绩表导入到教学管理库中以教师库打开企业管理器。选择“教学数据库”,单击右键,选择“所有任务导入数据”,选择导入数据源,如下图:选择要导入的数据库。如下图:选择要导入的表名,如下图点击“下一步”,再点击“完成”。点击导入的表名“sheet1”,更名为“教师”。点击“教师”表,点击右键,选择“设计表”,设置“教师号”为主键。如下图课程表和成绩表如教师表操作。3、对上面建立
9、的教学管理数据库完成如下几个简单查询操作:(1)检索选修课程号为3-105且成绩在60到80之间的记录;SELECT * FROM 成绩 WHERE 课程号=3-105 and 成绩 between 60 and 80(2) 检索学生表中所有姓”李”学生的学生号、姓名、性别;SELECT 学生号,姓名,性别 FROM 学生 WHERE 姓名 LIKE 李%(3) 检索学生表中名字中含有“华”的学生记录;SELECT * FROM 学生 WHERE 姓名 LIKE %华%(4)检索成绩表中成绩为75,86,92的所有记录;SELECT * FROM 成绩 WHERE成绩=75 or 成绩=86
10、or 成绩=92(5)检索学生表中班级号为“95031”或性别为“女”的学生记录;SELECT * FROM 学生 WHERE 班级号=95031 or 性别=女(6)检索学生表中所有男生记录,并以班级号降序排序;select * from 学生 where 性别=男order by 班级号 desc(7)检索学生表中“95031”班的学生人数;select count(*) as 人数 from 学生 where 班级号=95031(8)检索每个学生的学号,姓名,选修课程平均成绩。select 学生.学生号,姓名,avg(成绩) as 平均成绩 from 学生,成绩 where 学生.学生号
11、=成绩.学生号 group by 学生.学生号,姓名(9)检索考试成绩为最高分的学生姓名;select 姓名 from 学生,成绩 where 学生.学生号=成绩.学生号 and 成绩= (select max(成绩) from 成绩)(10)检索所有未任课的教师姓名和所在系;select 姓名,所在系 from 教师 where 教师号 not in (select 教师号 from 课程)(11)检索学生姓名及其所选修的课程号和成绩;select 姓名,课程号,成绩 from 成绩,学生 where 学生.学生号=成绩.学生号(12)检索至少选修王老师所授课程中一门课程的女学生姓名;sel
12、ect 姓名 from 学生 where 性别=女 and 学生号 in (select 学生号 from 课程 where 课程号 in (select 课程号 from 课程 where 教师号 in (select 教师号 from 教师 where 姓名 like 王%)(13)检索至少选修了两门课程的学生学号;select 学生号 from 成绩 group by 学生号 having count(*)=2(14)检索成绩表中最高分与最低分之差大于12分的课程号;select 课程号 from 成绩 group by 课程号 having max(成绩)-min(成绩)12(15)检
13、索比王文丽同学年龄大的学生姓名、性别、出生年月;select 姓名,性别,出生年月 from 学生 where 出生年月 (select 出生年月 from 学生 where 姓名=王文丽)(16)检索选修了3-245课程的学生中成绩最高的学生学号。select 学生号 from 成绩 where 学生号 in (select 学生号 from 成绩 where 课程号=3-245) and 成绩=(select max(成绩) from 成绩)4、完成如下数据更新操作:(1)建立95031班级选课学生选课视图,视图包括学生号,姓名,课程号, 课程名,成绩;create view 学生选课视图
14、 as select 学生.学生号,姓名,课程.课程号,课程名,成绩 from 学生,课程,成绩 where 学生.学生号=成绩.学生号 and 课程.课程号=成绩.课程号 and 班级号=95031(2)将成绩表中“操作系统”选课记录加5分;update 成绩 set 成绩=成绩+5 where 课程号 in (select 课程号 from 课程 where 课程名=操作系统)(3) 删除成绩表中所有“计算机导论”的选课记录;delete 成绩 where 课程号 in (select 课程号 from 课程 where 课程名=计算机导论)(4) 将教师王一萍的姓名更新为王尹萍,职称改为
15、讲师。update 教师 set 姓名=王尹萍,职称=讲师 where 姓名=王一萍五、实验的收获和体会Microsoft SQL Server 2000 能提供超大型系统所需的数据库服务。大型服务器可能有成千上万的用户同时连接到 SQL Server 2000 实例。SQL Server 2000 为这些环境提供了全面的保护,具有防止问题发生的安全措施,例如,可以防止多个用户试图同时更新相同的数据。SQL Server 2000 还在多个用户之间有效地分配可用资源,比如内存、网络带宽和磁盘 I/O。 超大型 Internet 站点可将其数据分开存放在多台服务器上,从而使处理负荷分散到多台计算
16、机上,使站点能为成千上万的并发用户提供服务。 可以在一台计算机上运行多个 SQL Server 2000 实例。例如,一个为其它许多组织提供数据库服务的组织可为每个客户组织单独运行一个 SQL Server 2000 实例,而全部实例可集中在一台计算机上。这样,既隔开了每个客户组织的数据,同时又使服务组织只需管理一台服务器计算机从而减少了费用。 SQL Server 2000 应用程序可在装有 SQL Server 2000 的计算机上运行。该应用程序通过 Windows 进程间通讯 (IPC) 组件(例如共享内存)而非通过网络连接到 SQL Server 2000。这使 SQL Server 2000 得以应用于应用程序必须在本地存储数据的小型系统中。 大型 Web 站点和企业级数据处理系统通常会生成大量的数据库处理,超出了一台计算机的支持能力。在这些大型系统中,数据库服务由组成数据库服务层的一组数据库服务器提供。SQL Server 2000 不支持采用平衡负荷的聚集形式建立数据库服务层,但支持跨自主服务器组分存数据的机制。尽管每个服务器需分开管理,但组内的各个服务器可共同分担数据库处理负荷。共享同一工作负荷的一组自主服务器称为服务器联合体。专心-专注-专业