资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,9,章 查询,1,9.1.1,查询的功能,利用查询可以实现如下功能:,(,1,)选择字段:指定要在查询结果中出现的字段。,(,2,)选择记录:指定条件来限制查询结果中所要显示的记录。,(,3,)编辑记录:对记录添加、修改、删除。,(,4,)实现计算:对查询结果中的记录进行各种统计计算。另外,还可以建立计算字段。,(,5,)建立新表:将查询结果生成一个新的表对象。,(,6,)建立基于查询的报表和窗体:在查询结果的基础上建立窗体和报表。,2,9.1.2,查询的类型,Access,提供了多种查询方式,包括,:,(1),选择查询,(2),参数查询,(3),交叉表查询,(4),操作查询,(5)SQL,查询,3,9.1.3,查询中使用的,“,条件,”,查询中使用的“条件”也称“准则”,通常由常量、表达式、函数组成。,4,1,常量,(,1,)数字型常量,由数字、小数点及正负号构成的常数。,(,2,)文本型常量,也称字符串或文本值,是用英文半角双引号,括起来的字母、数字、汉字及部分符号。,(,3,)日期,/,时间型常量,用“,#”,号括起来的日期或日期时间数据,如:,#1980-1-1#,和,#2008-8-8 8:08:08#,。在“条件”行中,,Access,将自动提供“,#”,。,(,4,)是,/,否型常量,包括,True,、,False,、,Yes,、,No,等,当其不被定义为文本型常量时,,Access,默认其为是,/,否型常量。,(,5,)空值,空值是一个特殊的常量,用,Null,表示,以表明丢失或未知的数据。请注意,主键字段不可以包含,Null,值。,5,2,用于表达式的运算符,运算符有算术运算符、关系运算符、逻辑运算符和特殊运算符等。可以使用多种运算符来构造查询的表达式。,6,(,1,)算术运算符,运算符,含义,示例,+,、,-,单目运算符正、负号,+98,-3.58,+,加法,58+2.5,成绩,+10,-,减法,20-9.6,*,乘法,18*3,/,除法,18/3,表,9-1,算术运算符及其含义,7,(,2,)关系运算符,表,9-2,关系运算符及其含义,关系,运算符,含义,以,“,成绩,”,字段为示例,=,等于,=60,不等于,60,大于,60,小于,=,大于或等于,=60,=,小于或等于,=60,即相当于,=90 And=90 Or=80 And=100,In,用于为一个字段指定多个值,In(80,85,90),相当于:,=80 Or=85 Or=90,Is Null,用于指定一个字段值为空值,Is Null,表示:“成绩”无任何值,Is Not Null,用于指定一个字段值为非空值,Is Not Null,表示:“成绩”有值,Like,用于指定文本型或备注型字段的部分值。可使用通配符*和,?,以“姓名”字段为示例:,(1)Like,王*,表示:查询王姓记录。,(2)Like,王,?,表示:查询姓名为两个字的王姓记录。,&,可以对多个字段或控件中的文本值进行组合,教师编号,&,姓名,表示:连接“教师编号”、“姓名”两个字段的值合二为一。,表,9-4,特殊运算符及其含义,10,3,“,条件,”,中使用的函数,P200,函数,功能,Space(n),生成,n,个空格组成的字符串,Left(,字符表达式,n),取字符表达式值的前,n,个字符。当字符表达式为,Null,时,结果为,Null,;当,n=0,时,结果为一个空串;当,n,大于字符表达式值的长度时,结果为原字符表达式。,Right(,字符表达式,n),取字符表达式值的后,n,个字符。当字符表达式为,Null,时,结果为,Null,;当,n=0,时,结果为一个空串;当,n,大于字符表达式值的长度时,结果为原字符表达式。,Mid(,字符表达式,n1,n2),取字符表达式值的第,n1,个字符开始的共,n2,个字符。当,n1=1,时,此函数的作用与,Left,函数相同;当省略了,n2,,此函数的作用与,Right,函数相同。,Ltrim(,字符表达式,),去掉字符表达式的前端空格,Rtrim(,字符表达式,),去掉字符表达式的尾部空格,Trim(,字符表达式,),去掉字符表达式的前端和尾部空格,Len(,字符表达式,),测试字符表达式值的字符个数(长度),表,9-6,字符函数及其功能,-,P200,11,3,“,条件,”,中使用的函数,例子,例子,Space,Space(10),“,”,Left,Left(,“,中国人民,”,2),“,中国,”,Right,Right(,“,中国人民,”,2),“,人民,”,Mid,Mid(,“,中国人民万岁,”,2,2),“,国人,”,Ltrim,“,ab,”,&Ltrim(,“,cd,”,),“,abcd,”,Rtrim,Rtrim(,“,ab,”,)&,“,cd,”,“,abcd,”,Trim,“,a,”,&Trim(,“,b,”,)&,“,c,”,“,abc,”,Len,Len(,“,abc,”,),Len(,“,中国,”,),3,,,2,12,函数,功能,例子,结果,Day(date),返回月中第几天(,1,31,),Day(#3/4/2009#),4,Month(date),返回一年中的某月(,1,12,),Month(#5/3/2009#),5,Year(date),返回年份(,yyyy,),Year(#7/10/2009#),2009,WeekDay(date),返回是星期几(,1,7,),WeekDay(#3/3/2009#),6,Hour(date),返回小时(,0,23,),Hour(#7/10/2009 3:25:22 PM#),15,Date(),返回当前日期(,yy-mm-dd,),Date(),2009-7-10,Time(),返回当前时间(,hh:mm:ss,),Time(),21:06:15,Now(),返回当前日期和时间,Now(),2009-7-10 21:06:15,Minute(date),返回分钟(,0,59,),Minute(#7/10/2008 3:25:22 PM#),25,Second(date),返回秒(,0,59,),Second(#7/10/2008 3:25:22 PM#),22,13,表,9-8,统计函数及其功能,函数,功能,Sum(,表达式,),结果为表达式中值的总和。表达式可以是一个字段名,也可以是一个含字段名的表达式。表达式中所含字段必须是数字型,如:,Sum(,成绩,),Avg(,表达式,),结果为表达式中值的平均值。表达式可以是一个字段名,也可以是一个含字段名的表达式。表达式中所含字段必须是数字型,如:,Avg(,年龄,),Max(,表达式,),结果为表达式中值的最大值。表达式可以是一个字段名,也可以是一个含字段名的表达式。表达式中所含字段必须是数字型,如:,Max(,年龄,),Min(,表达式,),结果为表达式中值的最小值。表达式可以是一个字段名,也可以是一个含字段名的表达式。表达式中所含字段必须是数字型,如:,Min(,年龄,),Count(,表达式,),计算查询所返回的记录数。记录中所存储的数值类型与计算无关,可以统计包括除,OLE,对象型以外的任何类型数据,例如按姓名统计:,Sum(,姓名,),。,Count,函数不统计包含,Null,字段的记录,除非是星号,(*),通配符。如果使用了星号通配符,,Count,会计算出包含,Null,字段在内的所有记录的数目,如:,Count(*),。,14,9.2,选择查询,选择查询将从一个或多个表(或查询)中检索指定的字段数据,分为,无条件查询,有条件查询,创建查询有两种方法:使用向导创建和使用“设计”视图创建。,无条件的选择查询是不加任何条件限制而直接进行的查询。可对一个表或多个表进行查询。,15,9.2.1,创建无条件的选择查询,-,例,9.1,1,单表查询,例,9.1,查询并显示“学生信息”表中的,“学号”、“姓名”、“所属院系”、“党员否”,4,个字段的内容。,16,例,9.2,2,多表查询,例,9.2,依据“学生信息”表、“课程信息”表和“成绩信息”表进行多表查询。查询并显示,“学号”、“姓名”、“课程名”、“成绩”,4,个字段的内容,并按,姓名升序,排序。(书上图有错),17,行的名称,作用,字段,可以在此输入或添加字段名,表,字段所在的表(或查询)的名称,总计,用于确定字段在查询中的运算方法,排序,用于选择字段的升序或降序,显示,利用复选框来确定字段是否在查询结果中显示,条件,用于输入一个条件来限定记录的选择,或,用于输入“或”关系的条件,表,9-10,“,设计网格,”,中行的作用,18,在查询操作中,还将用到一些专门用于查询的工具按钮,这些按钮为建立和使用查询提供了方便。表,9-11,列出了这些按钮的基本功能。,19,9.2.2,创建有条件的选择查询,-,例,9.3,进行有条件的选择查询需进入,“,查询,”,设计视图,在其,“,条件,”,行中给出条件进行查询。可对一个表或多个表进行查询。,例,9.3,依据,“,学生,”,表创建一个查询,查找,成绩大于等于,85,分的学生情况,,显示学生的,“,学号,”,、,“,姓名,”,、,“,课程名称,”,、,“,成绩,”,4,个字段的内容。此查询命名为,“,例,9_3,”,。,20,21,例,9.4,例,9.4,使用“设计”视图依据“教师信息”表和“课程信息”表创建一个查询,查找,1980,年(含,1980,年)以后出生的教师讲授的课程,情况,显示“教师编号”、“姓名”、“课程名”,3,个字段的内容,此查询命名为“例,9_4”,。,在创建查询时,在准则中字段名必须用方括号“,”,括起来,而且数据类型应与对应字段定义的类型相符,否则将出错。例如:,Year(,出生日期,),22,例,9.5,例,9.5,查询“学生信息管理”数据库中,成绩大于等于,90,分的女生,或,成绩小于,60,分的男生,信息,显示“姓名”、“性别”和“成绩”,此查询命名为“例,9_5”,。,23,例,9.6,例,9.6,依据“学生信息”表创建一个查询,查找,所属院系为“东语学院”、“西语学院”和“法学院”,的学生信息,只显示学生的“学号”、“姓名”、“所属院系”,3,个字段的内容,并按“所属院系”降序排序,此查询命名为“例,9_6”,。,24,例,9.7,例,9.7,查询“学生信息”表中,所有爱好摄影,的学生名单,显示“姓名”、“所属院系”、“简历”,3,个字段的内容,此查询命名为“例,9_7”,。,25,9.2.3,计算查询,在实际应用中,常常要对查询结果进行计算,如:求和、求平均值、计数、求最大值、最小值等。本节将介绍如何在建立查询的同时实现计算。,实现计算查询方法有两种:查询向导和设计视图。,26,例,9.8,1,利用查询向导实现计算查询,例,9.8,依据“学生信息”表和“成绩信息”表创建查询,计算每位学生的,总成绩。只显示“学号”、“姓名”、“总成绩”,3,列数据,并按,“总成绩”降序,排序,其中“总成绩”是通过计算生成的,此查询命名为“例,9_8”,。,27,图,9-11,采用“汇总”查询,图,9-12,汇总选项,图,9-13,计算字段的命名,28,例,9.9,例,9.9,依据“成绩信息”表和“课程信息”表创建查询,计算,各科平均成绩。只显示“课程名”、“平均成绩”两列数据,并按“平均成绩”降序排序,,其中“平均成绩”通过计算生成的,“平均成绩”,保留小数位数为,2,位,,此查询命名为“例,9_9”,29,例,9.10,2,利用“设计”视图实现计算查询,(难),例,9.10,依据“学生信息”表创建查询,统计,1992,年出生的人数,此查询命名为“例,9_10”,,查询结果如图所示。,字段,“学号”“总计”,行选择,“计数”,字段,“,出生日期”,的“总计”行选择,“,条件”,30,例,9.11,(,连接:,&),(繁)例,9.11,依据“教师信息”表创建一查询,查找教师的“教师编号”、“姓名”和“联系电话”,3,个字段的内容,要求将,“教师编号”与“姓名”两个字段合二为一,,这样查询的,3,个字段的内容以两列形式显示,标题分别为“编号姓名”和“联系电话”,所建查询命名为“例,9_11”,,查询结果如图,9.19,所示。,31,32,例,9.12,(难),例,9.12,依据“成绩信息”表和“课程信息”表创建一个查询,计算并输出每门课程,最高成绩与最低成绩的差值,,显示标题为“最高成绩与最低成绩之差”(如图,9-21,所示),查询命名为“例,9_12”,。,在字段,“课程名”总计,行选择,“分组”,空白单元格中输入表达式:最高成绩与最低成绩之差,:Max(,成绩,)-Min(,成绩,),在此,字段总计,行选择,“表达式”,33,操作步骤简介如下:,(,1,)在“学生信息管理”数据库窗口中,双击“在设计视图中创建查询”,添加“成绩信息”表和“课程信息”表,关闭“显示表”对话框。,(,2,)双击字段“课程名”将其添加在“设计网格”区,单击工具栏的“总计”按钮显示“总计”行,在字段“课程名”总计行选择“分组”。,(,3,)在字段空白单元格中输入表达式:最高成绩与最低成绩之差,:Max(,成绩,)-Min(,成绩,),在此字段总计行选择“表达式”,单击“运行”按钮即可获得查询结果,单击“保存”按钮,输入查询名称例,9_12,。,34,9.3,参数查询,-Parameter query,参数查询利用对话框来提示输入参数,然后查找符合所输入参数的记录。可以建立一个参数提示的单参数查询,也可以建立多个参数提示的多参数查询。参数查询可应用于窗体、报表和数据访问页。,35,9.3.1,单参数查询,-,例,9.13,单参数查询是在字段中指定一个参数,在执行参数查询时,用户只需输入一项参数值,系统将以此参数为条件给出查询结果。,例,9.13,依据“学生信息”表创建一个查询,按,输入的“所属院系”值,查找并显示该院系学生的“学号”、“所属院系”、“姓名”,3,个字段的内容,当运行该查询时,应,显示参数提示信息:“请输入院系名称:”,。所建查询命名为“例,9_13”,。,36,例,9.14,例,9.14,依据“学生信息”表创建一个查询,当运行该查询时,应显示,参数提示信息“请输入爱好”,,当输入爱好内容后,将查找出具有指定爱好的学生名单。查询只显示“学号”、“姓名”、“简历”,3,个字段的内容,所建查询命名为“例,9_14”,。,37,9.3.2,多参数查询,-,例,9.15,如果有多个条件需要输入,则需建立多参数查询。,例,9.15,创建一参数查询,当运行该查询时,分别提示,参数“请输入成绩下限”和“请输入成绩上限”,,当输入数值后,将查找出指定成绩范围内的学生信息。查询只显示“学号”、“姓名”、“课程名”、“成绩”,4,个字段的内容,所建查询命名为“例,9_15”,。,38,39,例,9.16,例,9.16,创建一参数查询,假定字段“学号”的第,6,至,7,位是专业编号,,按,输入的专业编号和课程名进行查询,,显示“专业编号”、“姓名”、“课程名”和“成绩”,4,个字段的内容。当运行该查询时,提示信息分别是:“请输入专业编号”和“请输入课程名”,所建查询命名为“例,9_16”,。,40,例如:专业编号输入,21,,课程名输入,”大学英语”,41,9.4,交叉表查询,交叉表,-,实现类似,统计,功能,交叉表查询是以表的形式显示出数值计算的分布,例如某一字段的总和、计数、平均值等,并将这些值分组,在数据工作表中分别以行标题和列标题的形式显示出来,用于分析和比较。,创建交叉表查询有两种方法:“交叉表查询向导”和“查询”设计视图。下面分别以实例介绍如何使用这两种方法实现交叉表查询。,选择查询所能做出的统计,42,9.4.1,创建交叉表查询,-,例,9.17,使用“交叉表查询向导”创建交叉表查询,例,9.17,依据“学生信息”表,查询,各院系男、女生人数,分布情况,查询结构如图,9-23,所示,将此查询命名为“例,9_17”,。,43,交叉表查询向导,-,图示,1,图,9-24,“,新建查询,”,对话框,图,9-25,“,交叉表查询向导”的第,2,个对话框,图,9-25,“,交叉表查询向导”的第,1,个对话框,44,交叉表查询向导,-,图示,2,图,9-25,“交叉表查询向导”的第,3,个对话框,图,9-25,第,4,个对话框,45,例,9.18,例,9.18,依据“教师信息”表,查询,各系按“性别”分组的每种职称人数的分布,,如图,9-27,所示。将此查询命名为“例,9_18”,。,46,9.4.2,使用,“,查询,”,设计视图创建交叉表查询,-,例,9.19,在“查询”设计视图中,可以通过选择查询类型来创建交叉表查询。,(难),例,9.19,在“学生信息管理”数据库中,建立如图,9-28,所示的交叉表查询,此查询命名为“例,9_19”,。,47,48,例,9.19,操作步骤,(,1,)用查询向导选择字段,包括“学生信息”表中“学号”、“姓名”、“所属院系”字段,“课程信息”表中的“课程名”字段和“成绩信息”表中的“成绩”字段,两次单击“下一步”按钮,输入指定标题:例,9_19,选择“修改查询设计”,单击“完成”。,(,2,)单击工具栏上的“查询类型”按钮右侧的下拉按钮,选择“交叉表查询”。,(,3,)如图,9-29,所示对各字段“总计”行和“交叉表”行进行设置即可。注意,这里选择了三个行标题选“,学号,”、“,姓名,”、“,所属院系,”,一个列标题选“,课程名,”,“成绩”,字段的“,总计,”行选择“,第一条记录,”,且“,成绩,”字段“,交叉表,”行选择“,值,”。,根据以上各例总结以下几点:,(,1,)如果依据单表生成交叉表查询,通常利用“交叉表查询向导”即可完成。,(,2,)如果依据多表生成交叉表查询,必须使用查询“设计”视图完成。也可先利用“查询向导”制作一个查询,以此查询作为数据源,再利用交叉表“设计视图”进一步完成。,(,3,)若交叉表查询的行标题或列标题需要计算建立新字段得到,也必须使用查询“设计”视图完成。,书上没写,49,9.5,操作查询,Access,提供的操作查询可以对数据表中原有的数据内容进行编辑,对符合条件的数据进行成批地修改,并可将查询结果生成新表。操作查询用于对一个或多个表进行数据管理操作。,操作查询是,Access,提供的,5,种查询中一个很重要的查询,它包括生成表查询、更新查询、删除查询和追加查询等,4,种查询。,50,9.5.1,生成表查询,-,例,9.20,生成表查询是将查询的结果生成一个新表。,例,9.20,在“学生信息管理”数据库中创建生成表查询“例,9_20”,,生成的新表命名为“学生成绩明细”。,利用双击“在设计视图中创建查询”对上例的“查询例,9_19”,进行并命名为“例,9_20”,51,9.5.2,更新查询,-,例,9.21,更新查询用于更改多条记录中的一个或多个字段值,用户可以添加一些条件来筛选要更新的记录,大部分更新查询需要用表达式来规定更新条件。,注意:更新查询将永久性更改表中的数据,所以一定要做好数据表的备份。,例,9.21,为“学生成绩明细”表,增加一个字段“总分”,,类型为,“数字”,,字段,大小为“长整型”,,利用更新查询计算每位学生的总分,此查询命名为“例,9_21”,。,52,53,期末机考题,第,2,题,Access,操作,(50,分,)(,题号,:6),注意事项:添加查询字段时,不可以选择“*”字段。,-,考生的一切操作均在打开的“,EXERCISE”,数据库中进行。,一、基本操作,1,、打开“学生成绩表”取消隐藏的“语文”字段,并将语文列,宽调整成“最佳匹配”。,2,、在学生成绩表中,按信息科技字段对表进行降序排列。,3,、将“学生成绩表”中的历史成绩为,73,分的替换成,76,分。,二、简单操作,1,、打开“教师业务档案及收入”表,查询出学历为大学本科的,月工资大于等于,2000,元且小于等于,2500,元的教语文的女教师(要,求必须使用,between and,实现),保存到名为,q1,的查询中,字段,显示顺序结果如图,1,所示。,2,、设计一个查询,名为“高二年级汇总”的查询,要求对高二,年级的同学进行汇总,字段显示语文、数学、外语。结果如图,2,。,54,例,9.22,(选讲),例,9.22,用“学生信息”表复制一个副本,名为,“学生副本”,,修改表“学生副本”结构:,“学号”的字段大小改为,10,,并,增加一“年龄”,字段,数据类型为,“数字”,。对表“学生副本”创建更新查询:在每位学生的,“学号”前添加“,20”,,并计算出每位,学生的年龄,。此查询命名为“例,9_22”,。,55,9.5.3,删除查询,-,例,9.23,可以使用删除查询来删除不再需要的记录。删除查询是所有查询操作中最危险的一种查询,所作的删除是不可恢复的。,删除查询是将整个记录全部删除而不只是删除查询所使用的字段。查询所使用的字段只是用来作为查询的条件。,例,9.23,创建一个删除查询,将“学生成绩明细”表中,各科成绩有小于,60,的记录全部删除,,此查询命名为“例,9_23”,。,56,9.5.4,追加查询,-,例,9.24,追加查询可以从当前数据库的表中读取数据记录并向当前数据库(或另一个数据库)的指定表内添加记录,由于两个表之间的字段定义可能不同,追加查询只能添加相互匹配的字段内容,而那些不对应的字段将被忽略。,例,9.24,复制“学生成绩明细”表结构,,生成表名为“,80,分以上学生明细”,。创建一个,追加查询,,将各科成绩均在,80,分以上(含,80,分)的学生信息,添加到“,80,分以上学生明细”表中,此追加查询命名为“例,9_24”,。,图,9-33,“,例,9_24,”,的查询,“,设计,”,视图,57,58,操作步骤如下:,(,1,)在“学生信息管理”数据库中,右击表对象“,学生成绩明细”,选择“复制”,右击空白处,选择“粘贴”,输入表名,80,分以上学生明细,粘贴选项选择“只粘贴结构”,单击“确定”按钮。,(,2,)选择对象“查询”,利用查询向导选择“学生成绩明细”全部字段,单击“下一步”按钮,输入查询标题例,9_24,选择“修改查询设计”单选项,单击“完成”按钮。,(,3,)如图,9-33,所示设置各字段,单击“查询类型”按钮右侧的下拉按钮,选择“追加查询”,单击“当前数据库”单选项,在“表名称”中选择“,80,分以上学生明细”,单击“确定”按钮,单击保存按钮。,(,4,)单击“运行”按钮,在弹出的对话框中单击“是,(,Y,)”,按钮,关闭查询的设计视图,返回“表”对象查看“,80,分以上学生明细”表,追加操作已完成。,59,9.6 SQL,查询,在,Access,中,创建与修改查询都可以使用“查询”设计视图,但并不是所有的查询都可以通过“查询”设计视图完成,有些查询必须通过,SQL,语句才能完成。,SQL,查询是使用,SQL,语句直接创建的一种查询。在“查询”设计视图中创建与修改查询时,,Access,将在后台构造等效的,SQL,语句,如果我们熟悉,SQL,语句,就可以通过它修改查询、建立查询。,60,9.6.1 SQL,语句的基本结构,SQL,是一种结构化查询语言(,Structured Query Language,,,SQL,),是目前使用最为广泛的关系数据库查询语言。,SQL,语言的功能包括了查询、操纵、定义和控制,4,个方面。这里着重介绍,SQL,语言的查询功能和定义功能。,61,1,SQL,语言的查询功能,SELECT,用于对数据库进行查询,其一般格式为:,SELECT ALL|DISTINCT*|,FROM ,WHERE,GROUP BY HAVING,ORDER BY ASC|DESC;,各子句的作用如下:,ALL,选择所有符合条件的记录。,DISTINCT,忽略在选定字段中包含重复数据的记录。,*选择表中所有的字段。如:,SELECT*FROM,学生,可以是字段、常数或系统内部函数,使用“,”将每项分开。,FROM,说明要选择的数据来自与哪个或哪些表。,WHERE,指定查询条件。,GROUP BY,指定分组字段。,HAVING,对分组的组内指定条件。,ORDER BY,指定排序字段。,ASC,指定升序排序。,DESC,指定降序排序。,62,例,9.25-,SQL,语句查询功能,使用,SELECT,语句查找学生信息管理数据库中,90,分以上(含,90,分)的学生成绩,并显示“学号”、“姓名”、“课程名”和“成绩”,并按学号升序显示。,在“学生信息管理”数据库中,选择“查询”对象,双击“在设计视图中创建查询”选项,关闭“显示表”对话框,选择菜单项“视图,|SQL,视图”输入:,SELECT,学生信息,.,学号,学生信息,.,姓名,课程信息,.,课程名,成绩信息,.,成绩,FROM,学生信息,课程信息,成绩信息,WHERE,学生信息,.,学号,=,成绩信息,.,学号,AND,课程信息,.,课程,ID=,成绩信息,.,课程,ID AND,成绩信息,.,成绩,=90,ORDER BY,学生信息,.,学号,;,单击“运行”按钮可显示查询结果。,63,2,SQL,语言的定义功能,-,CREATE,语句,(,1,),CREATE,语句,CREATE,语句用于创建基本表、索引。其中,定义表的一般格式为:,CREATE TABLE (,),;,例,9.26,创建“学生”表,表中包括学号、姓名、性别、出生日期、简历字段。,在查询的,SQL,视图中输入:,CREATE TABLE,学生,(,学号,INT Primary Key,姓名,CHAR(4),性别,CHAR(1),出生日期,DATE,简历,MEMO),;,单击“运行”按钮可创建“学生”表。,64,2,SQL,语言的定义功能,-ALTER,语句,(,2,),ALTER,语句,ALTER TABLE,语句用于基本表结构的修改,其一般格式为:,ALTER TABLE,ADD ,DROP ,ALTER ,;,例,9.27,在上例生成的“学生”表中增加一个字段,字段名为“电话号码”,数据类型为“文本”;将“简历”字段删除;将“学号”字段数据类型为“文本”,长度改为为“,10”,。,添加新字段在查询的,SQL,视图中输入:,ALTER TABLE,学生,ADD,电话号码,CHAR(8);,单击“运行”按钮。,删除字段在查询的,SQL,视图中输入:,ALTER TABLE,学生,DROP,简历,;,单击“运行”。,修改字段在查询的,SQL,视图中输入:,ALTER TABLE,学生,ALTER,学号,CHAR(10);,单击“运行”。,注意:使用,ALTER,语句时不能一次添加或删除多个字段。,65,2,SQL,语言的定义功能,-DROP,语句,(,3,),DROP,语句,当某个基本表、索引不再需要时,可以使用,DROP,对其进行删除,其一般格式为:,DROP TABLE,;,DROP INDEX,;,例,9.28,删除“学生”表。,在查询的,SQL,视图中输入:,DROP TABLE,学生,;,单击“运行”按钮。,66,3SQL语言的数据操作功能,-,INSERT,语句,(,1,),INSERT,语句,INSERT,语句用于将一条新记录插入指定表中,其一般格式为:,INSERT INTO (,)VALUES,(,);,例,9.29,添加一条记录到“学生信息”表中。,在查询的,SQL,视图中输入:,INSERT INTO,学生信息,(,学号,姓名,)VALUES,(,01010101,张三,),;,,单击“运行”按钮。,67,3SQL语言的数据操作功能,-,UPDATE,语句,(,2,),UPDATE,语句,UPDATE,语句用于将指定表所有记录或满足条件的记录进行更新操作,其一般格式为:,UPDATE SET=,)WHERE,例,9.30,对“学生信息”表中的姓名为“张三”的记录修改,学号改为“,02020202”,,性别为“男”。,在查询的,SQL,视图中输入:,UPDATE,学生信息,SET,学号,=02020202,,性别,=,男“,WHERE,姓名,=,张三,;,单击“运行”按钮。,68,3SQL语言的数据操作功能,-,DELETE,语句,(,3,),DELETE,语句,DELETE,语句用于将指定表中所有记录或满足条件的记录删除。其一般格式为:,DELETE FROM WHERE),例,9.31,删除“学生信息”表中的姓名为“张三”的记录。,查询,SQL,视图中输入:,DELETE FROM,学生信息,WHERE,姓名,=,张三,;,,单击“运行”。,69,9.6.2,使用,SQL,修改查询,-,例,9.32,在实际应用中,大多数使用,SQL,语句,是直接在,SQL,视图中修改已创建的查询。,例,9.32,使用查询“设计”视图查找教师讲授的课程情况,显示“姓名”、“课程名”,2,个字段的内容,此查询命名为“例,9_32”,。使用,SQL,修改查询条件,查找出,1980,年以后出生的所在院系为“数学”的教师讲授的课程情况。,操作步骤如下:,(,1,)在“学生信息管理”数据库中,选择“查询”对象,双击“在设计视图中创建查询”,在“显示表”对话框中依次双击“教师信息”、“课程信息”表,关闭“显示表”对话框,双击“姓名”及“课程名”字段将字段添加到设计网格区,保存此查询命名为“例,9_32”,。,(,2,)选择菜单项“视图,|SQL,视图”,将显示如图,9-34,所示“,SQL,视图”窗口。,图,9-34,“,SQL,视图”窗口,70,例,9.32-2,(,3,)在该窗口中分号前输入,WHERE(Year(,教师信息,.,出生日期,)=1980)AND,教师信息,.,所在院系,=,数学,,如图,9-35,所示,单击保存按钮,单击“运行”,显示查询结果如图,9-36,所示。,图,9-35,“,例,9_,32,”,的,SQL,修改结果,图,9-36,“,例,9_,32,”,的查询结果,71,9.6.3,创建,SQL,查询,SQL,查询主要包括联合查询、子查询、数据定义查询和传递查询等,4,种。这里只介绍联合查询和子查询。,1,创建联合查询,联合查询是将两个或更多个表或查询中的字段合并到查询结果的一个字段中。使用联合查询可以合并两个表中的数据。,72,9.6.3,创建,SQL,查询,-,例,9.33,例,9.33,显示“学生信息”表中所有东语学院的记录和“学生成绩明细”表中非俄语学院的记录,如图,9-37,所示。此查询命名为“例,9_33”,。,操作步骤如下:,(,1,)在“学生信息管理”数据库中,选择“查询”对象,双击“在设计视图中创建查询”,关闭“显示表”对话框。,(,2,)执行菜单项“查询,SQL,特定查询联合”,显示“联合查询”窗口,在窗口中输入,SQL,语句,如图,9-38,所示。,(,3,)单击“运行”,显示结果如图,9-37,所示。保存此查询,命名为“例,9_33”,。,说明:,(,1,)如果将“联合查询”转换为其它查询,则输入的,SQL,语句将全部丢失。,(,2,)如果需要返回重复记录,应在,Union,后输入,ALL,。,(,3,)每个,Select,语句都必须以同一顺序返回相同数量的字段,对应字段除了可将数字和文本字段作为对应字段外,其余对应字段都具有兼容的数据类型。,图,9-38,“联合查询”窗口,图,9-37,“例,9_,33,”,的查询结果,73,9.6.3,创建,SQL,查询,2,创建子查询,在,Access,中,可以将一个查询(即子查询)的结果作为另一个查询的条件,子查询是由,SQL SELECT,语句组成。可以在查询设计网格的“条件”行的单元格中输入,SELECT,语句,并将子查询语句括在圆括号中。,74,9.6.3,创建,SQL,查询,-,例,9.34,例,9.34,查询成绩比平均成绩高出,10,分的学生信息,只显示“学号”、“姓名”和“成绩”,3,个字段的内容,并按成绩升序排序,查询结果如图,9-39,所示。此查询命名为“例,9_34”,。,操作步骤如下:,在“学生信息管理”数据库中,选择“查询”对象,双击“在设计视图中创建查询”,添加“学生信息”和“成绩信息”表,在“字段”行单元格内选择“学号”、“姓名”和“成绩”,按图,9-40,所示设置“条件”行,单击“运行”,显示结果如图,9-39,所示。,图,9-39,“,例,9_,34,”,的查询结果,图,9-40,“,例,9_,34,”,的查询“设计”视图,75,9.7,编辑修改查询,在前面介绍查询实例时,已多次用到在“查询”设计视图中修改已创建的查询。本节将系统介绍相关的操作,具体操作包括:字段的添加、删除、移动或更改;表的添加与移出。,76,9.7.1,编辑查询中的字段,1,添加字段,2,移动字段,3,删除字段,77,9.7.2,编辑查询中的数据源,在“查询”设计视图窗口的“字段列表”中,列出了可以添加到“设计网格”上的所有字段。但是,如果在列出的所有字段中,没有所要选择的字段,就需要将该字段所属的表或查询添加到“字段列表”中;反之,如果“字段列表”中列出的表或查询未被使用,可以将其删除,。,1,添加表或查询,2,删除表或查询,78,作业,P201,开始,例,9.1,例,9.24,将教师所给数据库在未打开状态下重命名为“学号姓名学生成绩管理”数据库(,例如:,20101111,王武学生信息管理,.mdb,)后(或打开后用 主菜单“文件”,“备份数据库”),在其中进行操作。,提交作业数据库(,例如:,20101111,王武学生信息管理,.mdb,)。,查询保存注意:,如例,9.1,命名为,9-1,,,。,79,9.2.1,创建无条件的选择查询,-,例,9.1,1,单表查询,例,9.1,查询并显示“学生信息”表中的,“学号”、“姓名”、“所属院系”、“党员否”,4,个字段的内容。,80,例,9.2,2,多表查询,例,9.2,依据“学生信息”表、“课程信息”表和“成绩信息”表进行多表查询。查询并显示,“学号”、“姓名”、“课程名”、“成绩”,4,个字段的内容,并按,姓名升序,排序。(书上图有错),81,9.2.2,创建有条件的选择查询,-,例,9.3,进行有条件的选择查询需进入,“,查询,”,设计视图,在其,“,条件,”,行中给出条件进行查询。可对一个表或多个表进行查询。,例,9.3,依据,“,学生,”,表创建一个查询,查找成绩,大于等于,85,分,的学生情况,显示学生的,“,学号,”,、,“,姓名,”,、,“,课程名称,”,、,“,成绩,”,4,个字段的内容。此查询命名为,“,例,9_3,”,。,82,例,9.4,例,9.4,使用“设计”视图依据“教师信息”表和“课程信息”表创建一个查询,查找,1980,年(含,1980,年)以后出生,的教师讲授的课程情况,显示“教师编号”、“姓名”、“课程名”,3,个字段的内容,此查询命名为“例,9_4”,。,在创建查询时,在准则中字段名必须用方括号“,”,括起来,而且数据类型应与对应字段定义的类型相符,否则将出错。例如:,Year(,出生日期,),83,例,9.5,例,9.5,查询“学生信息管理”数据库中成绩大于等于,90,分的女生或成绩小于,60,分的男生信息,显示“姓名”、“性别”和“成绩”,此查询命名为“例,9_5”,。,84,例,9.6,例,9.6,依据“学生信息”表创建一个查询,查找所属院系为“东语学院”、“西语学院”和“法学院”的学生信息,只显示学生的“学号”、“姓名”、“所属院系”,3,个字段的内容,并按“所属院系”降序排序,此查询命名为“例,9_6”,。,85,例,9.7,例,9.7,查询“学生信息”表中所有爱好摄影的学生名单,显示“姓名”、“所属院系”、“简历”,3,个字
展开阅读全文