• 沒有找到結果。

图 1-4-52 删除查询提示对话框 图 1-4-53 表删除结果 注意:删除运行查询一定要谨慎,记录删除后不能撤销所做的更改。

4.6 SQL 查询

SQL 查询是用户使用 SQL 语句创建的自定义查询,它是一个用于显示当前查询的 SQL 语句窗口,在这个窗口中用户可以查看和改变 SQL 语句,从而达到查询的目的。

4.6.1 使用 SQL 修改查询中的准则

使用 SQL 语句可以直接在 SQL 视图中修改已建查询中的条件。

【例 1.4.16】用 SQL 修改“95 年前工作的副教授信息”查询,使查询的结果显示为“95 年前工作的教授信息”。

具体操作步骤如下:

① 在“学生成绩管理系统”数据库中,选择“95 年前工作的副教授信息”查询对象。单 击“设计”按钮,打开查询。

② 选择“视图”→“SQL 视图”命令,或单击工具栏上的“视图”下拉按钮,从下拉列 表中选择“SQL 视图”选项,这时屏幕显示如图 1-4-54 所示。

图 1-4-54 修改前 SQL 视图

③ 在该窗口中选择要进行修改的部分,然后输入修改后的准则,如图 1-4-55 所示。

图 1-4-55 修改后 SQL 视图

④ 单击工具栏的“视图”按钮,选择“数据表视图”选项,预览查询结果,如图 1-4-56 所示。

图 1-4-56 预览查询结果

⑤ 选择“文件”→“另存为”命令,弹出“另存为”对话框,修改查询名称为“95 年前 工作的教授信息”,如图 1-4-57 所示。

⑥ 单击“确定”按钮,保存成功。

4.6.2 SQL基础知识

SQL 是 Structured Query Language(结构化查询语 言)的缩写。SQL 是专为数据库而建立的操作命令集,

是一种功能齐全的数据库语言。

SQL 语句按其功能的不同可以分为以下 3 类:

数据定义语句(data-definition language,DDL)

定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引 4 部分。其命令动词有 CREATE、DROP、ALTER。

数据操作语句(data-manipulation language,DML)

包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新 3 种操作。

其命令动词有 SELECT、INSERT、DELETE、UPDATE。

数据控制语句(data-control language,DCL)

对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。

其命令动词有 GRANT、REVOKE。

本书将根据实际应用的需要,主要介绍数据定义、数据操作的基本语句。

1.CREATE 语句

【格式】CREATE TABLE <表名 1>(<字段名 1><数据类型 1>[(<宽度>[,<小数位数>])][完 整性约束][NULL|NOT NULL][,<字段名 2><数据类型 2>…])[PRIMARY KEY|UNIQUE]

[DEFAULT <表达式>];

【功能】定义(也称创建)一个表。

【例 1.4.17】使用 CREATE TABLE 语句创建 stud 表,它由以下字段组成:学号(C,10);

姓名(C,8);性别(C,2);班级名(C,10);系别代号(C,2);地址(C,50);是否团 员(L);备注(M)。

CREATE table stud(st_no char(10) PRIMARY KEY,st_name char(8), st_sex char(2),st_class char(10), st_depno char(2),st_add char(50),st_leag logical,st_memo memo);

补充知识点

Access 中的几个基本数据类型如表 1-4-10 所示。

图 1-4-57 “另存为”对话框

表 1-4-10 基本数据类型

【格式】ALTER TABLE <表名>

[ADD <新字段名><数据类型>[(<宽度>)][完整性约束][NULL | NOT NULL]]

[DROP <字段名> …]

VALUES ("G0842001","王魁","男","计 0801","05","肥东",true,"曾担任班长",#1989-10-1#)

【例 1.4.21】将一条新记录插入到 stud 表中,其中学号为"G0842002",姓名为"李伟",性 别为"男"。

INSERT INTO STUD (st_no,st_name, st_sex)VALUES ("G0842002","李伟","男") 5.UPDATE 语句

【格式】UPDATE <表文件名>

SET <字段名 1>=<表达式> [,<字段名 2>=<表达式>…]

[WHERE <条件>];

【功能】更新指定表中满足 WHERE 条件子句的数据。其中 SET 子句用于指定列和修改

[GROUP BY<字段名> [HAVING <组条件表达式>]]

[ORDER BY<字段名> [ASC|DESC]];

【功能】从指定的表中,创建一个由指定范围内、满足条件、按某字段分组、按某字段 排序的指定字段组成的新记录集。

其中,ALL 表示检索所有符合条件的记录,默认值为 ALL;DISTINCT 表示检索要去掉 重复行的所有记录。FROM 子句说明要检索的数据来自哪个或哪些表;WHERE 子句说明检索 条件;GROUP BY 子句用于对检索结果进行分组汇总;HAVING 必须跟随 GROUP BY 子句使

4.6.3 创建 SQL 查询

SQL 查询分为联合查询、传递查询、数据定义查询和子查询 4 种。其中联合查询、传递 查询、数据定义查询不能在查询“设计”视图中创建,必须直接在“SQL”视图中创建 SQL 语句。对于子查询,要在查询设计网格的“字段”行或“条件”行中输入 SQL 语句。

1.创建联合查询

联合查询功能由 UNION 子句实现,其含义是将两个 SELECT 命令的查询结果合并成一个 查询结果。

子句格式:[UNION[ALL]<SELECT 命令>]

其中 ALL 表示结果全部合并。若没有 ALL,则重复的记录将被自动去掉。合并的规则是:

(1)不能合并子查询的结果。

(2)两个 SELECT 命令必须输出同样的列数。

(3)两个表列出相应的数据类型必须相同,数字和字符不能合并。

(4)仅最后一个 SELECT 命令中可以用 ORDER BY 子句,且排序选项必须用数字说明。

【例 1.4.28】创建名为“合并学生信息”的查询,查询“成绩 60 以下学生信息”表中学 生信息和“学生”表中“营销与策划”专业学生信息,显示学生的姓名、性别和所属专业字段。

具体操作步骤如下:

① 在“学生成绩管理系统”数据库中,选择查询对象,单击“新建”按钮,打开“设计”

视图,并弹出“显示表”对话框,直接单击“关闭”按钮。

② 选择“查询”→“SQL 特定查询”→“联合”命令,在打开的窗口中输入 SQL 语句,

如图 1-4-58 所示。

③ 单击工具栏上的“保存”按钮 ,将查询命名为“合并学生信息”,然后单击“确定”

按钮。

④ 单击工具栏上的“运行”按钮 切换到数据表视图,结果如图 1-4-59 所示。

图 1-4-58 设置 SQL 语句 图 1-4-59 联合查询结果 2.创建传递查询

传递查询是 SQL 特定查询之一,Access 传递查询是自己并不执行而传递给另一个数据库 来执行的查询。传递查询可直接将命令发送到 ODBC 数据库服务器中。使用传递查询时,不 必与服务器上的表链接,就可以直接使用相应的表。应用传递查询的主要目的是减少网络负荷。

一般创建传递查询时,需要完成两项任务,一是设置要链接的数据库,二是在 SQL 窗口 中输入 SQL 语句。

3.建立数据定义查询

数据定义查询与其他查询不同,利用它可以直接创建、删除或更改表,或者在数据库中 创建索引。在数据定义查询中要输入 SQL 语句,每个数据定义查询只能由一个数据定义语句 组成。

【例 1.4.29】将【例 1.4.17】题中 stud 表定义并生成。

具体操作步骤如下:

① 选择查询对象,单击“新建”按钮,打开“设计”视图,并弹出“显示表”对话框,

直接单击“关闭”按钮。

② 选择“查询”→“SQL 特定查询”→“数据定义”命令,在打开的窗口中输入 SQL 语句,如图 1-4-60 所示。

③ 单击工具栏上的“保存”按钮 ,将查询命名为“数据定义查询 1”,然后单击“确定”

按钮。

④ 单击工具栏上的“运行”按钮 ,查看对象“表”中的 stud 表,如图 1-4-61 所示。

图 1-4-60 设置 SQL 语句 图 1-4-61 查看 stud 表 4.使用子查询

在对 Access 表中的字段进行查询时,可以利用子查询的结果进行下一步的查询,但不能 将子查询作为单独的一个查询,其必须与其他查询相结合。

【例 1.4.30】创建名为“成绩大于平均分”的查询,显示“学生课程成绩”表中成绩高于 平均成绩的学生课程成绩记录。

具体操作步骤如下:

① 选择查询对象,单击“新建”按钮,打开“设计”视图,并弹出“显示表”对话框,

添加“学生课程成绩”表后,单击“关闭”按钮。

② 在“字段列表”区域,双击“学生课程成绩”表中的“学号”、“课程编号”和“成绩”

字段。

③ 在“成绩”字段的“条件”单元格中输入 SQL 语句及表达式“>(select avg(成绩) from 学生课程成绩)”,如图 1-4-62 所示。

④ 单击工具栏上的“保存”按钮 ,弹出“另存为”对话框,在“查询名称”文本框中 输入“成绩大于平均分”,然后单击“确定”按钮。

⑤ 单击工具栏上的“视图”按钮 ,或单击工具栏上的“运行”按钮 ,切换到“数 据表”视图,这时可以看到查询的执行结果,如图 1-4-63 所示。

图 1-4-62 选择字段及设置子查询 图 1-4-63 子查询结果

相關文件