您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 数据库原理及应用实验指导书
《数据库原理及应用》实验指导书自动化工程学院自控实验室2008.8实验一SQL命令一、实验目的1、理解SQL命令的含义2、掌握SQL语言中的建表、查询、更新命令二、实验内容1、启动VisualFoxPro并将自己的目录设置为当前目录。命令:Setdefatoe:\自己的目录2、建立数据库(STUDENT),准备以后的各项操作练习。命令:createdatabasestudent3、建立数据表s,对其要求:属性名类型宽度小数位索引nullXH字符型10▲XM字符型8AGE字符型2XB字符型2sdept字符型20其中:XH为这个表的主键。命令:createtables(XHchar(10),xmchar(8),agechar(2),xbchar(2),steptchar(20),primarykey(XH)tagsindex)建立数据表course,对其要求:属性名类型宽度小数位索引nullCH字符型2CM字符型20XF整型1其中:CH为这个表的主键。命令:在课程表(course)中插入N条记录(内容自己确定)。建立数据表sc,对其要求:属性名类型宽度小数位索引nullXH字符型10CH字符型2G整型41其中:(XH,CH)为这个表的主键。命令:createtablesc(XHchar(5),CHchar(2),Ginteger(4),primarykey(XH+CH)tagscindex)在学生选课表(sc)中插入N条记录(内容自己确定)。4、在学生表(s)中插入N条记录(内容自己确定,最好多于10条记录,便于以后练习select语句看结果)。命令:insertintosvalues(‘01’,’ss’,’21’,’女’,‘计算机’)5、查询所有学生的信息。命令:6、查询所有学生的学号和姓名。命令:7、查询所有学生的姓名和年龄,并且把查询结果按年龄降序排列。命令:8、查询所有姓张的学生。命令:9、查询所有19-21岁学生的姓名。命令:10、查询该表中最大年龄和最小年龄。命令:11、查询各系各有多少学生。命令:12、将所有学生的年龄增加1岁。命令:13、将“张丽”同学由CS系转到IS系。命令:14、查询所有男生的信息。命令:15、统计全校共有多少门课程。命令:16、执行语句:select*froms,sc看结果,这样一种结果对你有意义吗?17、查询95001这名学生的选课情况。命令:18、查询张丽同学的选课情况。(并一定是张丽,根据自己表中的数据情况来确定查询)命令:19、查询张丽同学考英语得了多少分。命令:20、查询与张丽同学同岁学生的信息。命令:21、查询在CS系和MS系学习的学生信息。命令:22、张丽毕业了,把张丽的记录在S表中删除。命令:三、实验步骤1、启动VFP2、在命令窗口中输入:setdefaulttoe:\自己的名字(在机器中首先在E盘上以自己的名字建一目录)3、根据实验内容输入相应的命令后执行,查看结果实验二MIS系统的设计一、实验目的1、理解数据设计的含义2、理解数据库设计的步骤,及其每一步的任务。3、掌握一个具体的MIS系统的方法和步骤二、实验内容设计一管理信息系统:学生选课管理信息系统。三、实验步骤1、需求分析(1)学生选课的数据流图如下所示:f3f1f2图1-2学生选课数据流(2)数据字典1)数据项数据项名含义数据类型长度小数位数XH学生学号字符10XM学生姓名字符8AGE学生年龄数值20XB学生性别字符2SDEPT学生系别字符20CH课程号字符2CM课程名字符20G课程成绩数值41XF课程学分数值102)数据结构学生=XH+XM+AGE+XB+SDEPT课程=CH+CM+XF选课=XH+CH+G3)数据流数据流名说明数据流来源数据流去向组成f1学生数据流学生选课(处理)XHf2选课数据流选课(处理)选课XH+CH+Gf3课程数据流课程选课(处理)CH4)数据存储数据存储名说明编号输入的数据流输出的数据流组成学生学生的详细信息1无f1XH+XM+AGE+XB+SDEPT学生选课课程选课课程课程的详细信息2无f3CH+CM+XF选课选课的详细信息3f2无XH+CH+G5)处理过程处理过程名说明输入输出处理选课学生的选课处理f1+f3f2输入学生的学号,输出课程的课程号,进行选课(3)功能分析输入学生信息,可实现添加、删除、修改输入课程信息,可实现添加、删除、修改输入学生的学号,可以查询学生的详细信息和选课的详细信息;输入学生的学号和课程号,进行选课,可以显示学生选课的详细信息;输入学生的学号和课程号可以退课。2、概念结构设计根据以上分析的结果得出概念模型如下所示mn图1-3选课E-R图3、逻辑结构设计根据以上概念模型得出如下的关系模型S(学生)(XH,XM,AGE,XB,SDEPT)COURSE(课程)(CH,CM,XF)SC(选课)(XH,CH,G)4、系统实现(1)规划1)在E盘上建一个子目录,目录的名字是学生自己的姓名,例如:E:\haojikui2)在设置系统的默认目录,在命令窗口下执行:SetdefaulttoE:\haojikui(2)创建项目在E:\haojikui目录下建立一项目文件XUANKE.pjx1)打开VFP,单击“文件”菜单中的“新建”选项出现如图1-4所示。学生课程选课AGEXMXHSDEPTXBCHXFCMG图1-4“新建”对话框2)在“新建”对话框中选中“项目”后,单击“新建文件”出现如图1-5所示的对话框。图1-5项目创建对话框3)在“项目创建对话框”中选择“E:\haojikui”,在项目文件文本框中输入xuanke.pjx后,单击“保存”。出现图1-6所示界面。图1-6xuanke项目界面(3)创建数据库在图1-6中选择“数据”选项卡,选中“数据库”,如图1-7所示,单击“新建”出现如图1-8所示的对话框,单击“新建数据库”出现图1-9所示对话框,选择“E:\haojikui”,在数据库名对话框中输入”student.dbc”,单击“保存”,出现图1-10所示的界面。图1-7新建“数据库”图1-8新建数据库图1-9创建对话框图1-10数据库设计器(4)创建数据表在图1-10中右键单击,单击“新建表”出现图1-11对话框,单击“新建表”,出现图1-12所示对话框,选择“E:\haojikui”,输入表名文本框中输入:s.dbf后,单击“保存”后,出现如图1-13所示的界面,输入S表的相应字段的参数。图1-11新建表图1-12表创建对话框图1-13表设计在图1-13中单击“索引”选项卡,输入索引名:xhindex,类型:主索引,表达式:xh,排序升序,如图1-14所示。输入完毕后单击“确定”出现如图1-15所示界面。图1-14索引设置图1-15数据库设计-S表和前面的步骤类似,依次建立SC表、COURSE表,在SC表中建立两个索引,索引名为SCXHINDEX,类型为:普通索引,表达式为:XH,排序:升序;索引名为SCCHINDEX,类型为:普通索引,表达式为:CH,排序:升序。在C表中建立一个索引,索引名为CHINDEX,类型为:主索引,表达式为:CH,排序:升序。设置完毕后,在图1-10中右键单击,选择“添加表”,把S、SC、COURSE表添加到当前数据库中,出现如图1-16所示的界面。图1-16数据库设计-S、SC、COURSE表分别在三个表中输入如图1-17、图1-18、图1-19数据所示数据图1-17S表数据图1-18SC表数据图1-19COURSE数据(5)设置数据表之间的关联把student数据库中的S表、SC表、COURSE表设置为如图1-20所示的关系。(关系设置方法:将s表中的主索引xhindex拖向sc表中的scxhindex;将course表中的主索引chindex拖向sc表中的scchindex。双击出现的关系线可以对建立的关系进行编辑)图1-20参照完整性设置(6)建立表单1)建立选课表单(xk.scx)在图1-7中单击“文挡”选项卡,选中表单,单击“新建”,在弹出的对话框中单击“新建表单”,出现图1-21所示的界面。以下表单的建立方法类似。图1-21表单设计设置数据环境:在图1-21中右键单击,单击“数据环境”,弹出图1-21所示对话框,依次选中S、SC、COURSE表添加到当前数据环境中,如图1-23所示。(注:后面所有的表单同样按此方法设置数据环境)图1-22添加表图1-23数据环境选课表单的属性:CAPTION:学生选课信息表AUTOCENTER:.T.CLOSABLE:.F.MAXBUTTON:.F.MINBUTTON:.F.Showwindow:1-在顶层表单中选课表单的过程:Activateevent()(thisform.grid3.linkmaster=thisform.grid3.recordsource=thisform.grid3.recordsourcetype=1thisform.grid3.relationalexpr=thisform.grid3.childorder=thisform.refresh)loadevent()(select1ifused('s')selectsusesexclusiveendifselect2ifused('sc')selectscusescexclusiveendifselect3ifused('course')selectcourseusecourseexclusiveendif)在表单xk.scx上添加如下控件:图1-24学生选课表单表格控件GRID1:此表格显示学生的详细信息表格控件GRID2:显示课程的详细信息表格控件GRID3:显示选课的详细信息,grid3.recordsource=sc,grid3.readonly=.t.文本框TEXT1:用来输入学号或单击学生信息表中某一个学号来完成输入;文本框TEXT2:用来输入学生的课程号或单击课程表中某一个课程号来完成输入。学生信息表和课程信息表的代码如下:学生信息表:属性:grid1.controlsource=sgrid1.readonly=.t.thisform.grid1.afterRowColChangeEvent()代码如下:thisform.text1.value=thisform.grid1.column1.text1.value课程信息表:grid2.controlsource=coursegrid2.readonly=.t.thisform.grid2.afterRowColChangeEvent()代码如下:thisform.text2.value=thisform.grid2.column1.text1.value有五个命令按钮:查询、选课、退课、关闭、清除按钮查询按钮:用户在文本框TEXT1输入学号,或在文本框在TEXT2输入课程号,可查询相关选课信息,查询结果在GRID3中显示。其click()代码如下:num1=alltrim(thisform.text1.value)num2=alltrim(thisform.text2.value)ifnum1==.and.num2==messagebox(请输入查询条件)elseifnum2==.and..not.num1thisform.grid3.linkmaster='s'thisform.grid3.recordsource=scthisform.grid3.relationalexpr=xhthisform.grid3.childorder=scxhindexselectslocatefors.xh=num1if.not.found()messagebox(无此学生)elsethisform.refreshthisform.grid1.setfocusendifendififnum1==.and..not.num2thisform.grid3.linkmaster='course'thisform.grid3.records
本文标题:数据库原理及应用实验指导书
链接地址:https://www.777doc.com/doc-4242203 .html