其实在Access数据库中,我们用查询设计器设计的查询本质上就是一条条SQL语言编写的命令。当我们使用查询设计器用可视化的方式创建一个查询对象后,系统便自动把它转换为相应的SQL语句保存起来。
SQL(Structure Query Language)的中文名称叫结构化查询语言。SQL是一种专门针对数据库操作的计算机语言。SQL查询是使用SQL语句创建的查询。
例如我们做一个简单的查询所有男教师的查询,在查询设计器中按如下设置:
此时我们切换到SQL视图:
会看到系统为我们自动创建了一条该查询的SQL语句:
当我们运行一个查询对象时实际上就是执行该查询中指定的SQL命令。
那么有的人就说了反正在查询设计器中可以做查询,那么就可以避免了直接写SQL语句了,所以可以不用学习SQL语句。这话有一定的道理,只可惜的是,在查询设计器中只是可以做一些比较简单的查询而已,对于某些复杂的查询,如传递查询、数据定义查询和联合查询等等你是不能够在查询设计器中完成的,此时必须要正面面对SQL语句,所以还是不要投机取巧了,在Access数据库中功能强大的查询基本上都是通过编辑SQL语句来实现的。
在使用表存储数据的时候我们都有侧重点,通过它们的名字就可以看出这个表是用来做什么的,这样很容易就可以知道哪些表中存储有什么数据内容。所以我们在建立表的时候,首先想的就是要把同一类的数据放在一个表中,然后给这个表取个一目了然的名字,这样管理起来会方便得多。
我们在实际工作中使用数据库中的数据时,并不是简单地使用这个表或那个表中的数据,而常常是将有“关系”的很多表中的数据一起调出使用,有时还要把这些数据进行一定的计算以后才能使用。如果再建立一个新表,把要用到的数据拷贝到新表中,并把需要计算的数据都计算好,再填入新表中,就显得太麻烦。
用“查询”对象可以很轻松地解决这个问题,它同样也会生成一个数据表视图,看起来就像新建的“表”对象的数据表视图一样。“查询”的字段来自很多互相之间有“关系”的表,这些字段组合成一个新的数据表视图,但它并不存储任何的数据。当我们改变“表”中的数据时,“查询”中的数据也会发生改变。计算的工作也可以交给它来自动地完成,完全将用户从繁重的体力劳动中解脱出来,充分体现了计算机数据库的优越性。
让我们在数据库中建立一个“查询”,看看“查询”究竟有什么用,该怎么用。我们现在用的“查询”是“选择查询”,这种查询很好学,而且用得也很普遍,很多数据库查询功能都可以用它来实现。顾名思义,“选择查询”就是从一个或多个有关系的表中将满足要求的数据提取出来,并把这些数据显示在新的查询数据表中。而其他的方法,像“交叉查询”、“操作查询”和“参数查询”等,都是“选择查询”的扩展。
这次建立查询我们不用向导,而是直接用“查询设计视图”来建立新的查询。直接使用查询设计视图建立查询可以帮助你理解数据库中表之间的关系,让你看到要查询的字段之间是如何联系的。这些对建立一个优秀的数据库非常有帮助。其实查询向导的使用和表向导基本一样,也非常简单。
现在我们建立一个“订单”查询,建立这个查询就是为了将每份订单中的各项信息都显示出来,包括“订单号”、“订货公司”、“货品名称”、“货物单价”、“订货数量”、“订货金额”、“经办人”和“订货时间”这些字段。 首先要在Access中打开“客户订单数据库”,然后单击“对象”列表中的“查询”项,并在创建方法列表中单击“在设计视图中创建查询”项。
下面的操作都是在对“查询”这个对象进行操作,所以要将当前的对象切换到“查询”对象上。在第二课和第四课中讲过,执行任何操作都必须先选择这个操作所针对的对象 。
单击“在设计视图中创建查询”后,屏幕上出现“查询”窗口,它的上面还有一个“显示表”对话框。在上一课“建立表之间的关系”中曾经提到过“显示表”对话框。
单击“显示表”对话框上的“两者都有”选项,在列表框中选择需要的表或查询。“表”选项卡中只列出了所有的表,“查询”选项卡中只列出了所有的查询,而选择“两者都有”就可以把数据库中所有“表”和“查询”对象都显示出来,这样有助于我们从选择的表或查询中选取新建查询的字段。
单击所需要的表或查询,然后单击对话框上的“添加”按钮,这个表的字段列表就会出现在查询窗口中。将“客户订单数据库”中的“订单信息表”和“产品信息表”都添加到查询窗口中。添加完提供原始数据的表后,就可以把“显示表”窗口关闭,回到“查询窗口”中准备建立“查询”了。