课程设计中的有关问题_第1页
课程设计中的有关问题_第2页
课程设计中的有关问题_第3页
课程设计中的有关问题_第4页
课程设计中的有关问题_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计中的有关问题第二章2.5.1数据库中表的设计方法(22)表的设计是数据库管理系统最基础、最重要的工作。表设计的好坏对数据库管理系统的功能有决定性的影响。数据库中表的设计主要考虑这两个方面:一是整个管理系统的所有表中的数据要共享性高、冗余度小、占用尽可能小的存储空间;二是能方便维护表中的数据和快速地从表中获取数据。Access数据库表的设计方法如下:1.进行系统分析。(SE)2.提炼出将要作为数据库中表的所有字段。确定字段的原则是:表中的字段应该是该管理事务所必须的、独立的字段。所谓独立包括两方面含义:(1)该字段是不能再分割的;(2)该字段不依赖于其它的字段。3.根据数据库管理的要求增加必要的字段。尤其是对有限数据集合的字段应该增加编码字段。4.设计数据库所必须的表。设计表的基本原则:(1)凡是有限数据集合应单独设计一个表(基础表);(2)除作为表间联系的主键和外键,不同的表中不能包含重复的字段;(3)表中的字段必须是直接取决于该表描述的实体;(4)定义表的主键,原则上每一个表都应定义主键。5.确定表间关系。只有确定了表间关系才算是完成了表的设计。通常都是在系统分析的基础上对表进行初步设计,以后还需要经过几次循环,反复修改才能得到理想的设计。还要考虑的一个问题是系统的可扩充性。第4章查询4.1查询概述

4.8用向导创建查询4.2基本选择查询

4.9SQL特定查询4.3查询中的计算4.10综合运用4.4多表联接选择查询4.5操作查询4.6交叉表查询4.7参数查询4.1查询概述数据库的查询就是按给定的要求(包括条件、范围、方式等)从指定的数据源中查找,将符合条件的记录的指定字段提取出来形成一个新的数据集合。查询的数据源–表or查询。Access中的查询可以划分为5类:选择查询、操作查询、交叉表查询、参数查询和SQL特定查询。选择查询就是按给定的要求从数据源中检索数据,它不改变表中的数据。选择查询是数据库技术中应用最广泛、功能最强、也最复杂的一种查询。选择查询还可以对记录进行分组,再按组求和、计数、求平均值等统计汇总计算。

操作查询就是在操作中以查询所生成的动态集对表中数据进行更改(包括添加、删除和修改以及生成新表)的查询。

操作查询一般不应重复运行。如果一定要重复运行,必须认真考虑执行的结果造成的影响。交叉表查询(eg:4-20\21\22)就是以有两个以上可以进行分组统计的字段这类数据源的某一个可以进行分组统计的字段作为列标题、以其它一个或几个可以进行分组统计的字段作为行标题重构数据,形成一个新形式的表格的特殊查询。这种表格能够清楚地表达原数据源的数据间的关系。交叉表查询也可以进行汇总计算。

参数查询(eg4-23)就是运行时需要用户输入信息(即参数)的一类特殊查询。查询条件由用户输入。参数查询扩大了查询的灵活性。执行参数查询时,系统会显示一个对话框提示用户输入查询参数的值。

SQL特定查询(4-30\31)就是使用SQL语句创建的结构化查询。前述各种查询都有对应的SQL语句。但是,SQL特定查询可以完成前述各种查询所不能完成的各种复杂的查询。操作查询的运行会导致表中数据的变化,交叉表查询、参数查询的运行都不改变表中的数据。因此,后两种查询也属于选择查询,只是因为它们有其特殊的方面,才单独分列研究。SQL特定查询可能不改变表中的数据,也可能导致表中数据的变化。一个查询对应一个SQL语句,执行查询就是运行相应的SQL语句。Access提供了不编程的方法创建查询,因而可以不用直接编写SQL语句。“数据库”窗口给出了创建查询的两种方法:(1)在设计视图中创建查询;(2)使用向导创建查询。“数据库”窗口中的“新建”菜单提供了创建查询的5种方法:(1)设计视图;(2)简单查询向导;(3)交叉表查询向导;(4)查找重复项查询向导;(5)查找不匹配项查询向导。其中前两种方法分别和“数据库”窗口的两种方法的功能相同。4.2基本选择查询4.2.1典型的SELECT语句4.2.2用设计视图创建选择查询4.2.3查询的保存4.2.4查询的运行4.2.5查询的视图4.2.6创建查询的有关操作4.2.7设置查询属性4.2.8设置排序方式4.2.9设置查询条件4.2.1典型的SELECT语句选择查询对应SQL语言中的SELECT语句。例4-1建立名为“江苏的学生”的查询,从“学生情况”表查看家庭所在地是江苏的那些学生的学号、姓名和家庭所在地,并按学号降序排列。这个查询的SELECT语句是:

SELECT 学号,姓名,家庭所在地

FROM 学生情况

WHERE 家庭所在地=“江苏”

ORDERBY 学号DESC;SQL语句的各个短语说明如下(其它短语以后介绍): (1)SELECT短语列出查询的字段或表达式; (2)FROM短语指定查询的数据源。 (3)WHERE短语给出查询条件。 (4)ORDERBY短语确定排序方式。该短语中的DESC表示降序,升序用ASC表示(可省略)。【说明】SQL语句的相邻单词间、单词和表名(或字段名)间必须至少有一个空格。语句中所有的标点符号都只能是英文(半角)标点符号。一句完整的SQL语句用分号(;)结束。各短语可以连续写在一行,但分行写更清晰(方便阅读理解)。实际上,许多选择查询对应的SELECT语句很复杂,难于掌握。所幸的是,Access数据库提供了功能强大的“设计”视图创建查询,使用非常方便,绝大部分查询不需要编写SELECT语句。4.2.2用设计视图创建选择查询下面是用“设计视图”创建例4-1的操作步骤。(演示) 1)打开“学生管理”数据库,选查询对象。 2)单击窗口上部的“新建”按钮,打开“新建查询”对话框,如下图所示。

3)双击“新建查询”对话框中的“设计视图”(或选定“设计视图”后单击“确定”按钮),打开查询的“设计”视图(默认为选择查询)和“显示表”对话框,如下页图所示。

4)根据具体问题选择“表”或“查询”或“两者都有”选项卡,依次双击所需的一个或多个数据源就能将它们添加到“设计”视图中;本题选“表”,添加“学生情况”表;然后关闭“显示表”窗口,如下页图所示。

5)依次双击所要查找的字段(本题为学号、姓名和家庭所在地三个字段),这些字段及其所在的表名显示在查询设计网格(即“设计”视图的下半部)中; 6)根据具体问题,需要时在查询设计网格中的“排序”、“显示”、“条件”和“或”行选择或输入恰当的内容;在学号字段的“排序”行选择“降序”,在家庭所在地字段的“条件”行输入:江苏,如下页图所示。【说明】步骤6所列各项以后结合例题逐步介绍。查询的设计网格中,每个字段上面的窄长条是列选择器。下图是“查询设计”工具栏中专门用于设计查询的按钮。自左至右5个按钮的功能如下。“查询类型”按钮。用来选择不同的查询类型。“运行”按钮。用来执行当前“设计”视图中打开的查询。“显示表”按钮。用来显示数据库中所有的表和查询,以便向数据源显示窗格(即“设计”视图的上半部)添加。“总计”按钮。在设计网格中显示“总计”行,用来在查询中设置汇总方式。“上限值”按钮。用来指定显示的记录数。“设计”视图中,选定的数据源放置在数据源显示窗格。各个数据源都有一个字段列表。查找目标和条件则在设计网格中指定。

设计网格各行含义如下:字段:显示要查询的字段名称,也可以是表达式。表:显示该字段对应的数据源名称,如果字段行是表达式,则空着。总计:用来设置字段的汇总方式,默认情况下不显示。排序:指定查询结果的排列方式,分为升序或降序,也可以不设置。显示:决定该列是否显示在查询结果中。条件:输入该列的筛选条件,列与列之间的条件是“与”的关系。或:另一行条件,与其他行的条件是“或”的关系。需要时,可以有多个“或”行。4.2.3查询的保存保存查询的实质:保存查询的要求,并不存储具体的数据,查询的数据仍然在原来的表里。保存查询的操作有三个步骤:1、保存新建查询(或修改已有查询另存为)时,系统打开“另存为”对话框如下图所示;2、确定要保存的查询的名称(对于新建查询其默认名是“查询1”等);本题输入:江苏的学生;3、然后按“确定”按钮。4.2.4查询的运行可以在两种情况下运行查询。对在“设计”视图中打开的查询(新建选择查询皆如此),运行方法有两种:单击工具栏中的“运行”按钮;单击工具栏左端的“视图”按钮。对于已保存在数据库中的查询,也有两种运行方法:在“数据库”窗口,选中查询对象,然后双击要运行的查询的名称;或者选中要运行的查询后,单击“数据库”窗口中的“打开”按钮。临时性的简单查询可不保存。4.2.5查询的视图查询有设计视图、数据表视图、SQL视图、数据透视表视图、数据透视图视图五种。“设计”视图用来创建查询或修改查询要求;“数据表”视图对于选择查询来说,相当于显示查询的结果,对于操作查询来说,是预览涉及到的记录;“SQL”视图用来查看、编写或修改SQL语句。“数据透视表”视图以表格显示选择查询的结果,并可以汇总并分析选择查询的结果;“数据透视图”以图形显示选择查询的结果。打开各种视图的方法。各种视图间的直接转换。在“设计”视图中创建了查询,系统就自动生成了相应的SELECT语句,查看“江苏的学生”查询的“SQL”视图就可以证实。只不过这样生成的SELECT语句比前面写出的更完善罢了,见下图。4.2.6创建查询的有关操作1.添加或删除数据源在“显示表”对话框中添加数据源;在查询的“设计”视图删除数据源。2.向设计网格添加字段向设计网格添加字段除4.2.2节介绍的方法(直接双击)外还有: (1)在字段列表中选择要添加的字段,然后拖至设计网格的字段行。 (2)在设计网格的字段行,从下拉列表中选择要添加的字段。3.设计网格中列的操作选择一列或多列、移动列、删除列和改变列宽。4.给查询的字段重命名将插入点放在设计网格中需要重命名字段名的左边,输入新名后键入英文冒号(:),参看例4-3。4.2.7设置查询属性查询的属性会直接影响查询的执行、显示结果和查询性能等。创建查询时系统对查询的各属性项都预设了默认值。但是这些预设的默认值有时达不到预期目标,需要重新设置。在查询网格和字段列表外任意处单击,再单击工具栏的“属性”按钮,系统就打开了当前查询的“查询属性”对话框,如下页图所示。对于每一个属性项,当插入点进入该属性域时,状态栏会显示该属性项的简要说明,按F1可得到该属性项的详细帮助信息。下面简要介绍重要的属性项。输出所有字段:否(默认值):只显示那些在查询设计网格中指定了“显示”的字段。是:显示基数据源中的所有字段,与字段在设计网格中是否指定了“显示”无关。上限值:All(默认值):输出全部记录。数字:按数字输出记录数。百分比:按百分比输出记录数。唯一值:否(默认值):显示所有记录。是:只显示那些在“数据表”视图中所有字段的值都唯一的记录。记录集类型。动态集(默认值):可通过查询来编辑数据源中的数据,数据源中数据的变化会在查询结果中得到即时反映。动态集(不一致的更新):查询结果与数据源是按指定的时间间隔交换数据而非即时。快照:查询结果出来后,与数据源不再有关系。如果不允许通过该查询修改数据源中的记录,可设置此属性。

例4-2建立名为“最高的三名学生”的查询,从“学生情况”表查看所有字段,只显示最高的三名学生,并且查询结果是只读的。(演示)要查看最高的学生,可以先按身高的降序排列,再取排在前面的3个。按前面所述的步骤创建查询,再打开它的“查询属性”窗口,把属性项“上限值”改为3,属性项“记录集类型”改为“快照”。设计网格中的“*”表示输出全部字段,因而不再指定“显示”身高字段(下页图)。例4-3建立名为“学生来源地”的查询,从“学生情况”表查看所有家庭所在地(以“来源地”显示),但结果不要重复显示(即同一个家庭所在地只显示一个记录)。(演示)按前面所述的步骤创建查询,并在字段“家庭所在地”前后加上:来源地:。再打开它的“查询属性”窗口,将其中的“唯一值”属性项设为“是”(下页图),最后以“学生来源地”为名保存该查询。

4.2.8设置排序方式选择查询的结果,一般以数据输入的物理顺序显示。若想按特定的顺序显示,可通过设置排序方式来实现。排序分升序和降序。比如,例4-1中的查询“江苏的学生”,结果按字段“学号”的降序排列。可以按一个字段排序,也可以按多个字段排序。排序可把相同的信息排在一起。若按性别排序,可把男女分开;若按姓名排序,可把同姓的排在一起。若按多个字段排序,则要特别注意字段在“设计”视图中的网格列顺序,不同的网格列顺序会得到不同排列的记录集。例4-4创建查询“排序的江苏学生”,从“学生情况”表查看家庭所在地是江苏的那些学生的学号、姓名、班级代号和性别,分别按两种方式排序:(A)先按班级代号升序,再按性别升序,(B)先按性别升序,再按班级代号升序。(演示)不同优先次序的运行结果见下页图。Theendof4-15_24.2.9设置查询条件

正确设置查询条件是创建查询的关键。需要把自然条件语言(比如:来自江苏、1975年以后出生、身材最高、考试成绩不及格等)转换为正确的逻辑表达式,并将它写入查询的设计网格中。在设计网格中设置条件的逻辑关系是: (1)在同一行(“条件”行或“或”行)的不同列输入的多个查询条件彼此间是逻辑“与”(And)关系。

(2)在不同行输入的多个查询条件彼此间是逻辑“或”(Or)关系。 (3)如果行与列同时存在,行比列优先(即And比Or优先)。在设计网格中正确表示查询条件至关重要。对于同一个复杂条件,可以写出不同的条件表达式。而对于同一个条件表达式,在设计网格中又可能有多种处理方式。例4-5创建查询“75年及以后出生的江苏和上海学生”,从“学生情况”表查看学号、姓名、家庭所在地、出生年月日。条件为:家庭所在地是江苏或上海,并且是1975年及以后出生。(演示)对本题,条件的逻辑表达式可以用多种方式表示,下面是其中的两种: ([家庭所在地]=”江苏” And[出生年月日]>=#1975-1-1#)Or ([家庭所在地]=”上海” And[出生年月日]>=#1975-1-1#)或:([家庭所在地]=”江苏”Or[家庭所在地]=”上海”)And Year([出生年月日])>=1975本题逻辑表达式的第一种表示法的前一部分: ([家庭所在地]=”江苏”And[出生年月日]>=#1975-1-1#)是“与”关系,在设计网格中用下图的方式表示。而后一部分:([家庭所在地]=”上海”And[出生年月日]>=#1975-1-1#)也是“与”关系,在设计网格中用下图的方式表示。前后两部分之间是“或”关系。因此,对应逻辑表达式第一种表示法的设计网格如下图所示。对应本题逻辑表达式第二种表示法的设计网格如下图所示。下图对本题来说是一个典型错误,它表达的是另一个查询条件:75年及以后出生的江苏学生或者是上海学生。例4-6创建查询“到今天满22岁但不是江苏来的学生”,从“学生情况”表查看学号、姓名、家庭所在地、出生年月日。条件是:到今天年满22岁,但家庭所在地不是江苏,并按出生年月日升序排列。日期函数的使用。本题条件的逻辑表达式是:DateAdd(“yyyy”,22,[出生年月日])<=Date()

AndNot([家庭所在地]=”江苏”)对应的设计网格如下页图所示。“条件”行的逻辑表达式既可以直接输入,也可以使用“表达式生成器”来辅助生成。将光标定位在要填表达式处,单击工具栏的“生成器”按钮(或通过快捷菜单选“生成器”项)可打开“表达式生成器”对话框。下面是使用“表达式生成器”来辅助生

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论