(1)练习复杂查询,熟悉生成器中各运算符的意义与用法,包括数学、关系、字符串、布尔运算符。能够运用它们操作查询。
(2)了解交叉表查询、更新查询、追加查询、删除查询等查询类型。
Access查询选择准则是对查询中目标字段限定选择准则,从而检索出符合条件的记录。往查询里添加选择准则,有两个问题应该考虑,首先是为哪个字段添加“准则”,其次就是要在这个字段添加什么样的“准则”。例如,检索专业为“环境规划”的学生选修课程的情况,很明显就是为“专业”字段添加“准则”,而添加的准则就是限制“专业”字段中的值只能等于“环境规划”。如图3-1所示。
图3-1
但当需要对查询记录中的几种信息同时进行限制的时候,就需要将所有这些限制规则一一添加到需要的字段上,这样只有完全满足限制条件的那些记录才能显示出来。例如,查询“高数”成绩在[80~90]分之间的学生,就可在“课程名”和“成绩”上都添加一个规则,让“课程名”为“高数”,“成绩”的选择准则为“>=80And<=90”。这个查询的数据表,只有同时满足这两个条件限制的记录才会被选出来,如图3-2所示。
图3-2
在制定规则的时候,有时会用到很多函数或表中的字段名。为了解决这种问题,Access提供了一个名叫“表达式生成器”的工具。在这个工具中,给我们提供了数据库中所有的“表”或“查询”中“字段”名称、窗体、报表中的各种控件,还有很多函数、常量及操作符和通用表达式。将它们进行合理搭配,就可以书写任何一种表达式,十分方便。
图3-3
打开“表达式生成器”,在查询的规则行中单击鼠标右键,在弹出的菜单中可以看到一个“生成器……”的命令,单击它以后就会弹出一个“表达式生成器”。
在这个“表达式生成器”中,上方的这个方框用来输入“表达式”,是“表达式编辑框”,下面是三个列表框,最左面的这个框中是最基本的选项,选中这些选项以后,第二个列表框中就会出现次一级的列表。再选中第二个列表中的某一项,第三个列表框中就会出现更下一级的列表,在第三个列表中单击某一项,就可以将这一项加到表达式编辑器中了。
可以在Access中任何需要表达式的位置上使用,只要单击鼠标右键,然后在弹出的菜单上单击“生成器……”命令,就可以打开编辑表达式了。表达式生成器上可以使用如下符号:
“+”、“-”、“∗”、“/”等符号,代表数学运算中的“加”、“减”、“乘”、“除”四种运算符号。使用“&”符号可以使两个表达式强制连接在一起,例如: “数据库”&“使用指南”将返回:“数据库使用指南”,也就是将这两个字符串连接在一起,左边的字符串在前面,右边的字符串在后面。
“=”、“>”、“<”、“<>”这四个符号分别表示“等于”、“大于”、“小于”、“不等于”,它们都是用来判断某个条件是否为满足,例如: “ =34 ” 表示当某个值等于34时才算满足这个条件。 “<>‘北京’” 表示当某个值不等于字符串“北京”时才算满足了条件。
“And”、“Or”、“Not”这三个逻辑运算符是用来连接上面的这些条件表达式的。比如 >100 And <300 表示只有某个值大于100并且小于300时才能算条件满足>100Or<300表示这个值要大于100或者小于300,实际上就是任何数都满足这个条件Not>100 个表达式则表示只要这个值不大于100 ,这个条件就算满足了。
Access中还有一个符号“Like ”。这个符号常常用在对一个字符型的值进行逻辑判断,是否这个值满足某种格式类型。所以通常“Like”并不单独使用,常常还要跟一些别的符号?”表示任何单一字符∗”表示零个或多个字符#”表示任何一个数字;“[字符列表]”表示字符列表中的任何单一字符;“[!字符列表]”表示不在字符列表中的任何单一字符。例如, Like“中国?”则字符串“中国人”、“中国字”都满足这个条件; Like “中国∗”则字符串“中国”、“中国人”、“中国人民银行”这些都满足这个条件; Like “表#”则字符串“表1”、“表2”都满足这个条件; Like “[北京,上海,广州]”则只有字符串“北京”、“上海”、“广州”可以满足条件; Like “[!北京,上海,广州]”则只有字符串“北京”、“上海”、“广州”不能满足条件。
交叉表查询可以计算并重新组织数据的结构,这样可以更加方便地分析数据。交叉表查询可以计算数据的统计、平均值、计数或其他类型的总和。
在创建交叉表查询时,需要指定哪些字段包含行标题,哪些字段包含列标题以及哪些字段包含要汇总的值。在指定列标题和要汇总的值时,其中每个只能使用一个字段。在指定行标题时,最多可使用三个字段。
可以通过使用设计视图创建交叉表查询,可以根据需要使用任意多个记录源(表和查询)。不过,也可以让设计简单些,方法是:先创建一个返回所需的全部数据的选择查询,然后将该查询用作交叉表查询的唯一记录源。当在设计视图中生成交叉表查询时,使用设计网格中的“总计”和“交叉表”行指定哪个字段的值将成为列标题,哪些字段的值将成为行标题,哪个字段的值将用于计算总计、平均值、计数或其他计算。
操作查询是在一个操作中更改或移动许多记录的查询。操作查询供有4种类型:删除、更新、追加与生成表。
(1)删除查询:删除查询可以从一个或多个表中删除一组记录。
(2)更新查询:更新查询可对一个或多个表中的一组记录进行全面更改。例如,可以将所有教师的基本工资增加10%。使用更新查询,可以更改现有表中的数据。
(3)追加查询:追加查询可将一个或多个表中的一组记录追加到一个或多个表的末尾。
(4)生成表查询:生成表查询利用一个或多个表中的全部或部分数据创建新表。例如,在教学管理中,生成表查询用来生成不及格学生表。
SQL查询是用户使用SQL语句直接创建的一种查询。实际上,Access所有的查询都可以认为是一个SQL查询,因为Access查询就是以SQL语句为基础来实现查询的功能。不过在建立Access查询时并不是所有的查询都可以在系统所提供的查询“设计”视图中进行创建。由于查询只能通过SQL语句来实现,SQL查询可以分为以下四类:联合查询、传递查询、数据定义查询和子查询。要想在Access中建立SQL查询,首先要建立一个新的查询,然后单击“视图”菜单,选择“SQL视图”命令,这样在屏幕上就出现了一个文本框,用来书写SQL语句。将用到的SQL语句输入完毕后,再单击“视图”菜单,选择“数据表视图”命令,就可以看到刚才SQL语句所起的作用了。
(1)建立查询“选课4”:查询上课时间在“周二”的课程,显示“课程名”,“上课时间”,“先修课程”,选修该门课程的学生“姓名”、“专业”。
(2)建立查询“选课5”:查询选了“自然辩证法”且课程专业为“环境规划”的学生,显示这些同学的“姓名”、“专业”、选修课程的“课程代码”、“学分”。
(3)建立查询“选课6”,查询没有“先修课程”的课程,显示出选这些课的学生“姓名”、“专业”、“课程名”、“学分”、“成绩”。
(4)建立查询“选课7”,查询“高数”成绩在[80~90]分之间的学生,显示其“姓名”、“专业”、高数“成绩”。
(5)建立查询“选课8”,查询出入学时间在2004年以后或者专业为“环境规划”的学生,显示他们的“姓名”、“专业”,所选课程“课程名”、“成绩”。
(6)建立查询“选课9”,汇总每个学生所选课程的平均成绩、所选课程的总学分。显示“学号”、“姓名”、“专业”、“平均成绩”、“总学分”。筛选出“平均成绩”排在前五名的学生。
(7)建立查询“选课10”,汇总每个专业学生每门课的平均成绩。显示“专业”、“课程代码”、“课程名”、“平均成绩”。
(8)备份“学生信息”表,建立查询“选课11”,将查询类型设为“删除查询”,删除学分成绩低于4.0的学生,运行并查看结果(由于删除性查询的永久性破坏行为,通常在进行操作前对表进行备份)。
(9)建立查询“选课12”,将查询类型设为“更新查询”,将05年入学的学生的“入学时间”更新为“2005-9-1”,执行查询并修改表中相关数据。
(10)建立交叉表查询,练习用交叉表查询出不同专业、不同性别学生、不同课程的平均成绩。如图3-4所示。
(11)以上查询可查看SQL视图学习简单的SQL语言。
图3-4