建立表间关系_第1页
建立表间关系_第2页
建立表间关系_第3页
建立表间关系_第4页
建立表间关系_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

复习,建立表间关系满足条件:两表存在共同字段,该共同字段至少是其中一个表的主键。参照完整性:是在输入或删除记录时,为维持表之间已定义的关系而必须遵循的规则。实施参照完整性,对表中主键进行操作时,系统会自动检查主键字段是否被添加、修改或删除。若对主键的修改违背了参照完整性的要求,系统则强制执行参照完整性。级联更新、删除:当主表的内容更新、删除时,相关表的内容也相应更新、删除。,查询的目的,建立数据库的目的并不是为了简单的存储数据,在工作生活中,更重要的是对数据进行各种处理和分析,从中提取所需的信息。例:对一个表进行某些信息的查询对多个表同时进行某些信息的查询在查询的同时可以进行计算、排序等查询在功能上和筛选有些相似,可以对存储在一个表和多个表中的数据进行查找,同时产生一个类似于表的结果,这个结果可以重复查看。,筛选与查询的相似处:都是从表中检索出关于某个记录的子集。筛选与查询的不同之处:筛选只是一种查找操作,局限较多,而查询有很多功能。筛选的结果只用于显示,不可以提供给查询作为数据来源或打印输出。查询可以从一个或多个表、一个或多个查询中检索记录,筛选只能从一个打开的表中对记录进行检索。,到底什么是查询?,查询是一种方法,用来从已经存在的数据源中按照一定的条件来抽取用户需要的数据。,查询类型:选择最常用的查询(一会要讲到的)参数条件不固定的查询交叉表以行和列来统计数据的查询操作主要是对记录进行编辑(添加,修改,删除)SQL以命令方式建立查询,选择查询是一种最常用的查询类型。定义:根据指定条件,从一个或多个数据源中获取数据的查询称为选择查询。利用选择查询可以对表中的部分字段进行选择,一般是没有条件的选择;也可以对表的部分记录进行选择,一般都有指定的条件。,选择查询的创建方法一,使用向导(用于无条件查询)例3.1:查找“教师”表中记录,并显示“姓名”、“性别”、“工作时间”和“系别”4个字段。练习1:查询并显示学生表中的姓名,性别,入校日期这几个字段。例3.2:查看每名学生选课成绩,并显示”学生编号”、”姓名”、”课程名称”和”成绩”字段,所建查询名为“学生选课成绩”。,选择查询的创建方法二,使用”设计”视图(可以创建无条件的查询,也可以创建有条件的查询)结构,字段列表区,设计网格区,每行的作用请参考P79表3.9,例3.3:查看每名学生选课成绩,并显示”学生编号”、”姓名”、”课程名称”和”成绩”字段,所建查询名为“学生选课成绩”。例3.4:查找1992年参加工作的男教师,并显示“姓名”、“性别”、“学历”、“职称”、“系别”和“联系电话”。例3.5:查找成绩小于60分的女生,或成绩大于等于90分的男生,显示“姓名”、“性别”和“成绩”。,参数查询,实质:条件不固定的查询分类:单参数查询(指定一个条件)查看某门课程的成绩单多参数查询(指定多个条件)查找指定系别指定职称的教师信息方法:在条件字段所对应的”准则”行输入提示信息.,查询条件,针对复杂的查询,可以设置条件查询条件一定要在设计视图下使用条件在输入时一定要按照规定的格式一个字段可以使用一个或多个条件,一个查询可以对多字段设定条件运算符是组成条件的基本元素,条件的使用方法,在条件中的字段名用括起来;数据类型应与对应字段定义的数据类型相一致;在准则中输入文本信息时,要用半角的双引号括起来;(在2003环境下可以不用输入,系统自动生成)在条件中允许使用通配符;在条件中输入日期值用半角的#括起来,我们以前所创建的查询只是在某些表中找到一些符合条件的数据信息,而没有对这些信息进行进一步的计算或处理。比如:统计男教师的人数。其实这个操作就是对某个查询结果所进行的统计(计数)。,在查询中计算,这种对于查询结果的统计包括:求和、计数、求最大值、这些都归属于“在查询中计算”ACCESS支持两种基本计算功能:总计查询(选择查询的一种,利用现成的函数)自定义计算查询(人为编辑进行计算的表达式,这种计算是查询计算的难点),查询中计算的分类,总计查询,目的:在于记录的统计结果定义:所谓总计查询就是在成组的记录中完成一定计算的查询。利用“合计”按钮来激活ACCESS所提供的一组函数,分组总计查询,在实际应用中,用户不仅要统计某个字段的值,而且还要把记录分组,对每个组进行统计。这时,就需要使用“设计”视图中,“总计”行中的GroupBy来对某个字段先进行分组,然后再使用其他计算函数实现统计计算。,添加计算字段,有时我们在对表中数据进行计算时,需要统计的数据在表中没有相应的字段,或者用于计算的数据值来源于多个字段组合,我们就需要手工添加一个计算字段。方法:新字段名称:新字段的表达式(可以手工编辑,也可以使用生成器),交叉表查询,含义:将来源于某个表中的字段进行分组,一组列在数据表的左侧,一组列在数据表的上部,然后在数据表行与列的交叉处显示表中某个字段的各种计算值。注意事项:用户指定三种字段-行标题、列标题、总计项(是在行与列的交叉位置,只能指定一个总计项),操作查询,它使用户在利用查询检索数据,计算数据,显示数据的同时更新数据,而且还可以生成新的数据表。操作查询是指仅在一个操作中更改许多记录的查询。操作查询的结果要在表对象查看和验证。,操作查询的种类,生成表查询(需要指定条件字段和新表结构)从多个表中提取数据组合起来生成一个新表并保存下来删除查询(P94只需要指定条件字段)从单表多表中删除满足条件的记录更新查询(P95需要指定条件字段和待修改字段)将符合某条件的多个记录一次性的更新(修改)追加查询(P96要注意,新记录的结构要和目标表的结构一致,否则会发生添加不成功的情况)将某表中的符合条件的记录添加到另一个表中,SQL查询,用户使用SQL语句直接创建的查询,定义,SQL(StructureQueryLanguage,结构化查询语言)是广泛应用的数据库查询语言,它包括数据定义、查询、操纵和控制4种功能。SQL查询就是用户使用SQL语句直接创建的一种查询。其中,使用最频繁的就是SELECT语句,它是SQL数据库语言的核心。所有的查询都可以认为是一个SQL查询,Select:用于对数据库进行查询格式:selectall/distinctfrom,wheregroupbyhaving将结果按进行分组,having的意思是只有满足条件的组才能输出orderbyasc/desc将结果按进行排序,asc的意思是升序,desc是降序,SELECT语句示例,前面所讲的选择查询、交叉表查询、参数查询和操作查询均可使用SQL语句实现。例3.26查找并显示”教师”表中的所有字段.SELECT*FROM教师;查询教师表中张姓教师,显示所有字段。SELECT*FROM教师WHERE姓名LIKE张*”;例3.27查找并显示教师表中的“姓名”、“性别”、“工作时间”、“系别”这4个字段。SELECT姓名,性别,工作时间,系别FROM教师;例3.28查询1992年参加工作的男教师,显示姓名、性别、学历、职称、系别和联系电话。SELECT姓名,性别,学历,职称,系别,联系电话FROM教师WHERE性别=男andYEAR(工作时间)=1992;,进行分组统计,并增加新字段例3.29计算各类职称的教师人数,并将计算字段命名为”各类职称人数“SELECT职称,count(教师编号)as各类职称人数FROM教师groupby职称;对检索结果进行排序例3.30计算每名学生的平均成绩,并按平均成绩降序显示。SELECT学生编号,avg(成绩)as平均成绩FROM选课成绩groupby学生编号orderbyavg(成绩)desc;将多个表连接在一起例3.31查找学生的选课成绩,并显示“学生编号”、“姓名”、“课程名称”、“成绩”。Select学生.学生编号,学生.姓名,课程.课程名称,选课成绩.成绩From学生,课程,选课成绩Where课程.课程编号=选课成绩.课程编号and学生.学生编号=选课成绩.学生编号;,SQL特定查询,分类数据定义查询联合查询传递查询子查询,数据定义查询,使用该查询可以创建、删除或更改表。每个数据定义查询只能由一个数据定义语句组成。Createtable创建表Altertable修改表Drop删除表Createindex创建索引,SQL语句,Create:创建表(table)格式:CreateTable(完整性约束条件,)说明:内的内容必须填写内的内容可写可不写Textchar文本Date日期Money货币Memo备注Integer整型,例3.19创建一个雇员表,包括雇员号,姓名,性别,出生日期,部门,备注字段Createtable雇员(雇员号smallintprimarykey,姓名char(4)notnull,性别char(1),出生日期date,部门char(20),备注memo);整数型分类:int、smallint、tinyint。int长度为4个字节,smallint长度为2个字节,tinyint长度为1字节。例3.34建立一个”学生情况”表,包含学生ID、姓名、性别、出生日期、家庭住址、联系电话和备注这几个字段。Createtable学生情况(学生IDintegerprimarykey,姓名char(4),性别char(1),出生日期date,家庭住址char(20),联系电话char(8),备注memo);,Alter:修改表格式:altertableadd约束dropalter例3.20在雇员表中增加一个字段“职务”,文本类型;将“备注”字段删除;将“雇员号”字段的类型改为文本,字段大小为altertable雇员add职务char(10);altertable雇员drop备注;altertable雇员alter雇员号char(8);,Drop:删除表、索引、视图格式:Droptable例3.21:删除雇员表Droptable雇员;,INSERT(插入新记录),格式:INSERTINTO(,)VALUES(,)例3.22将一条新记录插入到”雇员”表中注意:文本用”括起来,日期用#括起来.Insertinto雇员values(“0001”,”张磊”,”男”,#1960-1-1#,”办公室”,”经理”);例3.23插入新记录,其中”雇员号”为”002”,”姓名”为”王宏”,”性别”为”男”.Insertinto雇员(雇员号,姓名,性别)values(“0002”,”王宏”,”男”);,UPDATE(更新记录),格式:UPDATESET=,=WHERE例3.24将”雇员”表张磊的出生日期改为”1960-1-11”Update雇员set出生日期=#1960-1-11#where姓名“张磊”;,DELETE(删除记录),格式:DELETEFROMWHERE例3.25将”雇员”表中雇员号为”0002”的记录删除.Deletefrom雇员where雇员号=“0002”;,联合查询,将来自一个或多个表(查询)的字段组合为查询结果的一个字段(列)。例3.32显示“90分以上学生情况”中的所有记录和“学生成绩查询”中80分以下的记录,显示的字段为“学生编号”、“姓名”、“成绩”。Select字段列表From表名称Union/UnionallSelect字段列表From表名称;,子查询,子查询是包含在一个选择查询或操作查询中的SELECT语句,调用这个子查询的查询叫主查询。在选择查询中使用子查询

温馨提示

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

评论

0/150

提交评论