
5.4 创建SQL特定查询
在利用查询向导和设计视图这两种方法创建查询时,Access会自动在后台生成等效的SQL语句,这意味着任何一个查询都对应着一个SQL语句。查询创建完成后,可以通过SQL视图查看对应的SQL语句。
此外,联合查询、传递查询、数据定义查询等类型不能使用上述两种方法创建,只能在SQL视图中输入相应的SQL语句进行创建,这几种查询称为SQL特定查询。
5.4.1 SQL概述
SQL即结构化查询语言(Structured Query Language),它是一种通用的、功能强大的数据库查询和程序设计语言,用于存取数据以及查询、更新和管理数据库系统。SQL作为关系数据库的标准查询语言,具有以下主要特点。
☆ SQL是一种一体化语言,提供完整的数据定义、数据查询、数据操纵和数据控制等功能。
☆ SQL具有完备的查询功能。
☆ SQL结构简洁,易学易用。
☆ SQL是一种高度非过程化的语言。
☆ SQL的执行方式多样。
如果读者想要真正学透SQL,可以查阅专业的SQL书籍,本节只是简单介绍SQL的一些基础知识。表5-2列出了SQL的常用语句,表5-3列出了SQL的常用函数,读者可作为参考。
表5-2 SQL的常用语句

表5-3 SQL的常用函数

提示
SQL对大小写没有特殊限制,不管在SQL语句中出现的是“Select”还是“SELECT”,意义都是一样的。
在使用SQL语句时,用户首先需要熟悉SQL的语法格式。下面通过介绍常用的Select语句和Insert语句,对SQL的语法格式进行简单的了解。
1. Select语句
Select语句是根据相应的条件从数据表中检索出记录。基本的语法结构如下:
SELECT[字段1,字段2, …]…FROM [表1,表2, …]
[WHERE<条件表达式>]
[GROUP BY<分组字段>]
[ORDER BY<排序字段>]
其中,SELECT语句中的字段表示要显示的目标字段;FROM语句中的表名是指目标字段所在的数据表;WHERE语句表示查询的条件;GROUP BY语句表示对指定字段进行分组;ORDER BY语句表示对指定字段进行排序。
例如,查找出“员工信息表”中部门ID为“S2”的员工姓名、员工电话和员工职位等信息。使用以下Select语句可以实现:
SELECT员工姓名,员工电话,员工职位FROM员工信息表WHERE(部门ID="S2")
例如,查找出“员工信息表”中所有员工信息,需要使用通配符*:
SELECT * FROM员工信息表
例如,查找并统计出“工资明细表”中实发工资的总数,代码如下:
SELECT SUM(实发工资)FROM工资明细表;
2. Insert语句
Insert语句是向数据表中追加新的数据记录。基本的语法结构如下:
INSERT INTO表名(字段1,字段2, …)VALUES(值1,值2, …)
其中,INSERT INTO语句中的表名指定要追加记录的表,字段名指定要将数据追加到哪些字段;VALUES语句中的值列表表示要追加的新记录,注意新记录中每个值都会追加到与之对应的字段中。
例如,向“员工信息表”中插入一条员工ID为2017012,部门ID为E1,员工姓名为冯花,员工性别为女的新记录。使用以下Select语句可以实现:
INSERT INTO员工信息表(员工ID,部门ID,员工姓名,员工性别)VALUES("2017012", "E1", "冯花", "女")
5.4.2 SELECT查询
SELECT查询是最基本的SQL查询。下面在“人事管理”数据库中,使用SELECT查询语句查询部门ID为“S2”的员工姓名、员工电话和员工职位等信息。具体的操作步骤如下。
步骤1打开随书光盘中的“素材\Ch05\人事管理.accdb”文件,单击【创建】选项卡下【查询】组中的【查询设计】按钮,如图5-80所示。

图5-80 单击【查询设计】按钮
步骤2此时会进入查询的设计视图,并弹出【显示表】对话框,选择“员工信息表”,单击【添加】按钮,如图5-81所示。

图5-81 【显示表】对话框
步骤3添加完成后,关闭【显示表】对话框。在查询的设计视图中,单击【查询工具】【设计】选项卡下【结果】组【视图】按钮的下拉按钮,在弹出的下拉列表中选择【SQL视图选项,如图5-82所示。

图5-82 选择【SQL视图】选项
步骤4切换到SQL视图,在其中输入以下SQL语句,如图5-83所示。SELECT员工姓名,员工电话,员工职位FROM员工信息表WHERE(部门ID="S2")

图5-83 在SQL视图中输入SQL语句
步骤5单击【查询工具】→【设计】选项卡下【结果】组的【运行】按钮,如图5-84所示。

图5-84 单击【运行】按钮
步骤6运行SQL查询,查询结果如图5-85所示。

图5-85 SQL查询的结果
5.4.3 数据定义查询
数据定义查询和其他查询不同,它并不操作数据,而是使用数据定义语言直接创建、修改、删除数据表,或创建、删除索引等。表5-4列出了数据定义查询常用的SQL语句。
表5-4 数据定义查询常用的SQL语句

下面在“人事管理”数据库中,使用Create Table语句创建一个“员工考核表”。具体的操作步骤如下。
步骤1打开随书光盘中的“素材\Ch05\人事管理.accdb”文件,单击【创建】选项卡下【查询】组中的【查询设计】按钮。此时会进入查询的设计视图,并弹出【显示表】对话框,单击【关闭】按钮,关闭对话框,然后在设计视图中单击【查询工具】→【设计】选项卡下【查询类型】组的【数据定义】按钮,如图5-86所示。

图5-86 单击【数据定义】按钮
步骤2进入查询的SQL视图,在其中输入以下SQL语句,如图5-87所示。

图5-87 在SQL视图中输入SQL语句
CREATE TABLE员工考核表
(员工ID char(10)primary key,员工姓名char(10),出勤考核char(5),工作质量char(5),工作态度char(5),考核日期date);
提示
primary key表示设置“员工ID”字段为主键,Char(10)表示设置字段的类型及大小。
步骤3单击【查询工具】→【设计】选项卡下【结果】组的【运行】按钮,如图5-88所示。

图5-88 单击【运行】按钮
步骤4运行SQL查询,此时在导航窗格中可以发现,已成功创建“员工考核表”,进入该表的设计视图,效果如图5-89所示。

图5-89 数据定义查询的结果