数据库原理及应用实验报告new

上传人:laiq****ong 文档编号:65772738 上传时间:2022-03-25 格式:DOC 页数:34 大小:3.51MB
返回 下载 相关 举报
数据库原理及应用实验报告new_第1页
第1页 / 共34页
数据库原理及应用实验报告new_第2页
第2页 / 共34页
数据库原理及应用实验报告new_第3页
第3页 / 共34页
点击查看更多>>
资源描述
燕山大学上机实验报告学 院 * 年级专业 08计算机*班 指导教师 *学生学号 337344257 学生姓名 * 提交日期 2010-9-29 燕山大学实验报告第一部分 Access数据库实验一、实验要求1、创建Access数据库2、建立表及表之间的联系二、实验目的及原理创建Access数据库,首先应该根据需求对数据库应用系统进行分析和研究,全面规划,然后再根据数据库系统的设计规范创建数据库。三、实验内容1. 数据库的设计数据库的设计一般要经过:分析建立数据库的目的、确定数据库中的表、确定表中的字段、确定主键以及确定表之间的联系等步骤。1.分析建立数据库的目的通过对学校教学过程的了解和分析,可以确定,建立“教学管理”数据库的目的是为了解决教学信息的组织和管理问题。主要任务应包括教师信息管理,学生信息管理和选课管理。2.确定数据库中的表为了能更合理的确定数据库中应包含的表,可按以下原则对数据进行分类。(1) 每个表应该只包含关于一个主题的信息。(2) 表中不应该包含重复信息,并且信息不应该在表之间重复。根据以上原则,应将“教学管理”数据库分为4类,分别存放在教师、学生、课程和选课成绩等4个表中。3表中的字段对于上步确定的每一个表,还要设计它的结构,要确定该表应包含哪些字段。在命名字段时,要符合Access字段命名规则。(1) 字段名长度为164个字符。(2) 字段名可以包含字母、汉字、数字、空格和其他字符。(3) 字段名不能包含句号(.)、感叹号(!)、方括号()和重音符号()。最终确定“教学管理”数据库的4个表的字段如下:学生(学号,姓名,性别,年龄,简历)选课成绩(课程号,学号,成绩)课程(课程号,课程名,学分,授课教师)教师(教师编号,姓名,性别,职称,系别,联系电话)4.确定主键每个表中应该有一个字段能唯一标识每条记录,这个字段或字段组合就是主键。主键字段不能为空值或重复值。5.确定表之间的联系通过表之间的联系,将不同表中的相关数据联系起来。这在下面的内容中介绍。如果经仔细检查后,表结构已经达到了设计要求,就可以向表中添加数据,并且可以在此基础上建立其他数据库对象。2. 创建数据库一、创建空数据库在创建数据库之前,最好先建立用户自己的文件夹(如D:Access)便于今后管理。创建数据库参考以下步骤:1.启动Access,选择“文件”,“新建”,“空数据库”。2.将数据库存储在D:Access下,并命名为“教学管理.mdb”。二、打开和关闭数据库1. 启动Access,已经列出已有数据库,选择“打开”,“教学管理.mdb”。2. 单击数据库右上角的“关闭”按钮。3. 使用“设计”视图建立好数据库后,使用“设计”视图建立表结构,要详细说明每个字段的字段名和所使用的数据类型。1.打开“教学管理”数据库,选择“使用设计器创建表”2.输入字段名称,选择字段类型3.单击工具栏上的“主关键字”按钮,定义主键4.单击工具栏上的“保存”按钮,在文本框中输入表名后确定4. 字段属性的设置在设计表结构时,需要在属性区域设置相应的属性值。1.控制“字段大小”例如,可以将学生表中的学号、姓名、性别字段大小分别设为6、4和1。年龄字段应选择数字类型中的整型。注意这里的字段大小是指最大长度。2.设置“默认值”例如,性别字段可以设置默认值为“男”。3.定义“有效性规则”例如,年龄字段可以在有效性规则属性框中输入“=14AND=70”5. 建立其他表下面是我建立的其他表的属性。下面是我建立的其他所有的表。其中每个表的设置分别为:学生(学号,姓名,性别,年龄,简历)选课成绩(课程号,学号,成绩)课程(课程号,课程名,学分,授课教师)教师(教师编号,姓名,性别,职称,系别,联系电话)6. 向表中输入数据建立好表结构后,就可以向表中输入数据了。1. 在“数据库”窗口双击打开要输入数据的表2. 选择“文件”“获取外部数据”“导入”3. 选择Excel文件“课程.xls”后按向导一步步完成导入后的课程表为:7. 建立表之间的联系要想管理和使用好表中的数据,应该建立表之间的联系,将不同表中的相关数据联系起来。定义表之间的联系之前,应把要定义联系的所有表关闭,然后使用下面的方法定义。1单击工具栏上的“关系”按钮,打开“关系”窗口,然后单击工具栏上的“显示表”按钮,打开如图所示“显示表”对话框。2将4个表添加到“关系”窗口中,然后关闭“显示表”窗口。3选定“选课成绩”中的“课程号”字段,然后按下鼠标左键并拖动到“课程”表中的“课程号”字段上,松开鼠标。这时屏幕上显示“编辑关系”对话框。4单击“实施参照完整性”复选框,然后单击“创建”按钮。5用同样的方法建立其他联系。6关闭并保存该“布局”。7在表中输入数据,验证各种完整性规则。上面的验证说明了我开始设置的有效性规则的正确性。上面的验证说明了主键值不能重复。上图由于在课程表中没有104的记录,所以添加不进去。这个图是由于主键为空了,这个是不可以的。33第二部分 SQL Server数据库的基本操作一、实验要求建立SQL Server数据库,掌握SQL Server数据库的表的建立、修改、撤销、数据的查询和更新。二、实验目的及原理SQL Server是Microsoft的大中型关系数据库平台,实践并掌握其基本SQL Server操作。三、实验内容1. SQL Server2000的安装与配置1) 安装SQL Server2000并启动SQL Server服务管理器。2) 启动企业管理器,了解数据库的组成。3) 设置并验证sa登录。2. 创建数据库和表进入企业管理界面并设置好服务器向导后,进入的界面如下:1) 新建数据库StudentDB 点击鼠标右键,选择新建数据库。在新建数据库中填写数据库的名称,输入为StudentDB然后单击确定即可。现在我们可以打开我们创建的StudentDB数据库,可以看到里面的表有以下内容。2) 并在数据库中新建3个表。我首先创建的是T(T#,TNAME,TITLE)创建T表我用的命令是:CREATE TABLE T(T# CHAR(4) NOT NULL,TNAME CHAR(8) NOT NULL,TITLE CHAR(10),PRIMARY KEY (T#)接着我创建的是S(S#,SNAME,SEX,AGE),创建S表我用的命令是:CREATE TABLE S(S# CHAR(4) NOT NULL,SNAME CHAR(8) NOT NULL,AGE SMALLINT,SEX CHAR(1),PRIMARY KEY (S#);紧接着我创建的是SC(S#,C#,GRADE),创建SC表我用的命令是:CREATE TABLE SC(S# CHAR(4),C# CHAR(4),SCORE SMALLINT,SEX CHAR(1),PRIMARY KEY (S#,C#),FOREIGN KEY(S#)REFERENCES S(S#),FOREIGN KEY(C#)REFERENCES C(C#),);最后创建的是C(C#,CNAME,TEACHER)创建C表我用的命令是:CREATE TABLE C(C# CHAR(4),CNAME CHAR(10) NOT NULL,T# CHAR(4),PRIMARY KEY(C#),FOREIGN KEY (T#)REFERENCES T(T#);3. 数据库查询1) 打开SQL企业管理器,导入服务器上的StudentDB数据库。在数据库文件夹上单击右键,选择所有任务,再选择附加数据库,打开下面的页面。在菜单中选择数据库文件,将数据库文件导入即可。我们导入数据成功后,可以看到数据库中就有了StudentDB的数据库,这样我们就可以进行查询更新操作了。2) 验证课本中所有讲过的SQL语句。现在我们来验证课本的3.2与3.7的查询更新的操作语句。首先我们来看一下这几个表中的所有数据。C表的所有数据:S表的所有数据:T表的所有数据:SC表的所有数据:3.2题: 1.检索年龄小于十七岁的女学生的学号与姓名。SELECT S# , SNAMEFROM SWHERE AGE17 AND SEX=F 2.检索男学生所学的课程号与课程名SELECT C.C# ,CNAMEFROM S,SC,CWHERE S.S#=SC.S# AND SC.C#=C.C# AND SEX=M 3.检索男学生所学课程的任课老师的工号与姓名SELECT DISTINCT T.T# , TNAMEFROM S , SC, C, TWHERE SEX=M AND S.S#=SC.S# AND SC.C#=C.C# AND C.T#=T.T# 4.检索至少选修两门课程的学生学号。SELECT DISTINCT X.S#FROM SC AS X, SC AS YWHERE X.S#=Y.S# AND X.C#Y.C# 5.检索至少有学号为S2和S4学生选修的课程的课程号。SELECT DISTINCT X.S#FROM SC AS X, SC AS YWHERE X.S#=S2 AND Y.S#=S4 AND X.C#=Y.C# 6.检索WANG同学不学的课程的课程号。SELECT C#FROM CWHERE NOT EXISTS (SELECT *FROM S,SCWHERE S.S#=SC.S# AND SNAME=WANG AND SC.C#=C.C#)/*或者程序代码可以这样改*/*SELECT C#FROM C# NOT IN(SELECT DISTINCT C#FROM S,SCWHERE S.S#=SC.S# AND SNAME=WANG)*/ 7.检索全部学生都选修的课程的课程号与课程名。SELECT C#,CNAMEFROM CWHERE NOT EXISTS(SELECT *FROM SWHERE NOT EXISTS(SELECT *FROM SCWHERE S.S#=SC.S# AND SC.C#=S.S# ) 8.检索选修课程包含LIU老师所授全部课程的学生学号。SELECT S#FROM SWHERE NOT EXISTS(SELECT *FROM C,TWHERE C.T#=T.T# AND TNAME=LIU AND NOT EXISTS(SELECT *FROM SCWHERE S.S#=SC.S# AND SC.C#=C.C#)/*或者程序代码可以这样改*/*SELECT S#FROM SC AS XWHERE NOT EXISTS(SELECT *FROM C,TWHERE C.T#=T.T# AND TNAME=LIU AND NOT EXISTS(SELECT *FROM SC AS YWHERE X.S#=Y.S# AND Y.C#=C.C#)*/3.7题 1.统计有学生选修的课程门数。SELECT COUNT(DISTINCT C#)FROM SC 2.求选修C4课程的女生的平均年龄。SELECT AVG(AGE)FROM S,SCWHERE SC.C#=C4 AND S.S#=SC.S# AND SEX=F 3.求LIU老师所授课程的每门课程的平均成绩。SELECT C.C#,AVG(GRADE)FROM C,T,SCWHERE C.T#=T.T# AND C.C#=SC.C# AND TNAME=LIUGROUP BY C.C#; 4.统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。SELECT DISTINCT C#,COUNT(DISTINCT S#)FROM SCGROUP BY C#HAVING COUNT(S#)10ORDER BY COUNT(DISTINCT S#) DESC,C# 5.检索学号比WANG同学大,而年龄比他小的学生姓名。SELECT SNAMEFROM SWHERE S#ALL (SELECT S#FROM SWHERE SNAME=WANG)AND AGEALL(SELECT AVG(AGE)FROM SWHERE SEX=F); 9.求年龄大于女同学年龄的男学生姓名和年龄。SELECT SNAME ,AGEFROM SWHERE SEX=M AND AGEALL(SELECT AGEFROM SWHERE SEX=F);
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!