为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数据库设计第4章查询

2012-02-19 50页 ppt 434KB 17阅读

用户头像

is_982057

暂无简介

举报
数据库设计第4章查询null第四章 查询与SQL第四章 查询与SQLnull第四章 查询与SQL数据库设计基础学习目标与要求学习目标与要求通过本章学习,读者应达到以下要求: 1.深入理解Access数据库中查询对象的概念和意义。 2.了解SQL语言的特点、发展、功能与用法。 3.掌握Access查询对象的工作视图运用和切换。 4.掌握数据运算与表达式的用法。 5.理解并掌握SELECT语句的作用与用法。 6.理解并掌握SQL追加、更新、删除功能和对应语句。 7.理解并掌握SQL的数据定义功能和对应语句。 8.在掌握SQL语句的基础上,掌握通过设计...
数据库设计第4章查询
null第四章 查询与SQL第四章 查询与SQLnull第四章 查询与SQL数据库基础学习目标与要求学习目标与要求通过本章学习,读者应达到以下要求: 1.深入理解Access数据库中查询对象的概念和意义。 2.了解SQL语言的特点、发展、功能与用法。 3.掌握Access查询对象的工作视图运用和切换。 4.掌握数据运算与达式的用法。 5.理解并掌握SELECT语句的作用与用法。 6.理解并掌握SQL追加、更新、删除功能和对应语句。 7.理解并掌握SQL的数据定义功能和对应语句。 8.在掌握SQL语句的基础上,掌握通过设计视图进行可视化操作的查询设计应用。第四章 查询第四章 查询第一 Access查询概述第一 Access查询概述数据库系统一般包括三大功能:数据定义、数据操作、数据控制。 数据库的定义功能包括对象的创建、修改、删除。 数据库的操作功能包括对于数据库中数据的增加、删除、更新和查找。 实现数据库的功能需要使用数据库语言。关系数据库中使用的语言是结构化查询语言(Structure Query Language),即SQL。4.1 Access查询概述4.1 Access查询概述在Access中,实现数据库操作功能(也包括定义功能)的数据库对象是“查询”。表实现数据组织存储,查询实现数据库操作、重新组织,查询以表为基础。 Access查询主要有两种作用: (1)通过查询,可以实现对数据库数据的各种操作。 (2)可以将设计好的查询命名保存,就得到查询对象。查询对象的外在视图与表类似。由于查询可以对数据库重新组织,这样,查询对象可以将数据库以不同的形式呈现在不同的用户眼中。(例)4.1 Access查询概述① Access通过查询对象实现SQL的功能。查询对象在逻辑上相当于是一个表,与表有一样的结构。用户使用查询对象,就可以象使用表一样,所以,查询也可以作为其他对象的数据源。 ② 查询对象保存查询定义,不保存查询结果,不会浪费存储空间,查询对象为“虚表”。在查询对象界面选中查询对象“打开”,就可以运行查询查看结果,避免了每次重新设计查询的操作。同时,结果是一个动态数据集,自动与源表保持同步。4.1 Access查询概述4.1 Access查询概述③ 查询对象基于SQL,隐藏了数据库复杂性,可以为不同的应用设计不同的查询,因此查询是用户眼中的数据库。查询增加了应用的灵活性,实现了数据库三级模式结构中外模式的功能。 ④ 对查询对象的操作要转换为对表的操作。由于查询的多样性,因此,不是所有对查询对象的操作都可以完成,一般来说,对查询对象的SELECT操作都可以实现,但对查询对象的INSERT、UPDATE、DELETE操作有很多限制。查询增加了数据应用的安全性。 4.1 Access查询概述4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询应用查询(对象)的基本步骤如下。 ① 设计定义查询。 ② 运行查询,获得查询结果集。这个结果集与表的结构一致。 ③ 如果需要重复或在其他地方使用这个查询的结果,就将查询命名保存,这就得到一个查询对象。 ④ 以后打开查询对象,就会立即执行查询并获得新的结果。查询对象可象表一样使用。4.1 Access查询概述4.1 Access查询概述Access中实现查询或查询对象的基本操作方法有两种: (1)通过查询设计视图交互式设置(包括向导); (2)通过输入SQL命令。 查询的基础是SQL,这两种方式是可以对应并相互转换的。在Access中这两种操作的界面是集成在一起并可灵活切换。 在学习过程中,可以将这两种方式对照学习,达到深入理解并熟练应用的程度。第二 SQL语言与SQL命令查询第二 SQL语言与SQL命令查询SQL是关系数据库的标准语言,是集数据定义、数据操作和数据控制功能于一身的功能完善的数据库语言。目前,SQL仍处于不断发展过程中。 SQL提出于1974年。IBM公司的System R中率先实现SQL。1986年10月美国国家标准局(ANSI)批准将SQL作为关系数据库语言的美国标准,并发布了ANSI SQL标准文本(SQL-86)。1987年,国际标准化组织(ISO)通过了这一标准。1989年发布SQL-89,1992年发布SQL-92(也称SQL2)。1997年发布SQL3。 各数据库厂家推出的关系型DBMS都支持SQL,其基本内容、命令和格式是一致的。掌握SQL对使用关系数据库非常重要。 4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询① 数据定义功能。SQL可以方便地完成对表及关系、索引、查询的定义和维护。 ② 数据操作功能。操作功能包括数据插入、删除、修改和数据查询。 ③ 数据控制功能。SQL可以实现对数据库的安全性和完整性控制。 4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询SQL既是自主式语言,能够独立执行,也是嵌入式语言,可以嵌入程序中使用。 ① 独立使用方式。在数据库环境下用户直接输入SQL命令并立即执行。这种使用方式可立即看到操作结果,对测试、维护数据库也极为方便。也适合初学者学习SQL。 ② 嵌入使用方式。将SQL命令嵌入到高级语言程序中,作为程序的一部分来使用。SQL仅是数据库处理语言,缺少格式控制和复杂运算功能,在许多信息系统中必须将SQL和其它高级语言结合起来,将SQL查询结果由程序进一步处理。4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询① 高度非过程化,是面向问的语言。用户只须表达“做什么”,不用管“怎么做”。 ② 面向表,运算的对象和结果都是表。 ③ 表达简洁,使用词汇少,便于学习。SQL定义和操作功能使用的命令动词只有:CREATE、ALTER、DROP、INSERT、UPDATE、DELETE、SELECT。 ④ 自主式和嵌入式的使用方式,方便灵活。 ⑤ 功能强大,包括数据定义、数据操纵和数据控制。 ⑥ 所有关系数据库系统都支持,可移植性好。 SQL已经成为当前和将来DBMS应用和发展的基础。4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询Access将输入SQL命令的工作界面与查询设计视图集成在一起。这是因为Access是一个可视化的软件。其设计目标是尽量将各种功能通过可视化操作实现。因此,看上去SQL命令方式就作为设计视图的附属方式。 不过,事实上,无论是通过设计视图设置,还是使用向导,查询定义最后都转换为SQL命令。 要输入SQL命令,首先进入设计视图,然后可以在不同的视图之间切换。“SQL视图”就是SQL命令工作界面。4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询SQL的基本工作方式是命令行方式。使用 “SQL视图” 。“SQL视图”是一个文本编辑器窗口,用户在这个窗口中可以完成: 输入、编辑SQL语句。 运行SQL语句并查看查询结果。 保存SQL语句为查询对象。 该工具一次只能编辑处理一条SQL语句。 在“SQL视图”和“设计视图”之间转换界面。4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询在这个窗口只能使用SQL命令语句。包括定义命令:CREATE、ALTER、DROP;查询命令:SELECT;更新命令:INSERT、UPDATE、DELETE。SQL语句都以“;”作为结束标志。 在“SQL视图”窗口中输入命令后,可单击工具栏中的运行按钮,或者选择“查询”菜单中“运行”命令,SQL视图界面就会变成查询结果的显示界面。 单击工具栏“存储”按钮,或“文件”菜单中“另存为”菜单项,命名保存查询对象 4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询查询时经常要对各种类型的数据进行运算。 表达式:由运算符和运算对象组成的运算式。 运算对象包括常量、输入参数、表中的字段等,运算符包括一般运算和函数运算。可以通过以下的语句来查看表达式运算的结果。 〖语法〗SELECT <表达式> [AS <名称>] [,<表达式> … ] 4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询Access事先了各类型数据运算的运算符。 ① 数字运算符。数字运算符用来对数字型或货币型数据进行运算,运算的结果也是数字型数据或货币型数据。包括:正负号、^、*、/、mod、+、-以及括号。 ② 文本运算符。或称字符串运算符。普通的文本运算符是:“&”或者“+”,两者完全等价。其运算功能是将两个字符串联接成一个字符串。其他文本运算使用函数。 ③ 日期时间运算符。普通日期时间运算符只有“+”和“-”。4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询④ 比较测试运算符。同类型数据可以进行比较运算。这些类型有:文本型、数字型、货币型、日期时间型、是否型等。 运算符有比较运算符如<、<=、>、>=、=、<>,还有BETWEEN-AND、[NOT] LIKE、IS [NOT] NULL、[NOT] IN、EXISTS。运算结果为是否型,即true或false。用0表示false,-1表示true。 ⑤ 逻辑运算符。逻辑运算又称为布尔运算,是针对true或false的运算,运算结果仍为是否型。逻辑运算符主要包括:NOT、AND、OR、XOR等。4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询⑥ 函数。除普通运算符表达的运算外,大量的运算通过函数实现。Access设计了大量各种类型函数。 函数包括函数名、自变量和函数值3个要素。函数基本格式是:函数名([自变量])。 函数名标识函数的功能;自变量是需要传递给函数的参数,写在括号内,一般是表达式。有的函数无需自变量,称为哑参,一般和系统环境有关,具有特指的不会混淆的内涵。缺省自变量时,括号仍要保留。有的函数可以有多个自变量,之间用逗号分隔。4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询⑦ 参数。参数可在表达式运算时输入一个数据。在命令中,没有确定的值而需要在执行时输入的标识符就是参数。 数值或文本参数可以直接在命令给出。其他类型参数必须在使用前明确定义。语句语法如下。 〖语法〗PARAMETERS <参数名> 数据类型 为避免表达式语法错误,参数最好遵守如下规定。 参数名以字母或汉字开头,由字母、汉字、数字和必要的其他字符组成。 参数都用方括号([、])括起来。(用方括号括起来后,对于参数的命名规定可不完全遵守上面规定)4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询SQL查询只有一条SELECT语句,功能强大,语法复杂。 SELECT [ALL | DISTINCT] [TOP <数值> [PERCENT] ] * | [[<别名.>]<输出列> [AS<列名>]…] [INTO <保存表名> ] FROM <表名> [ INNER|LEFT|RIGHT JOIN <表名>] [ON <连接条件> …] ] [WHERE <条件> [AND | OR <条件>...] ] [GROUP BY <分组项> [,...] [HAVING <过滤条件> ] ] [UNION SELECT 语句 ] [ORDER BY <排序列> [ASC | DESC] [, ...]]4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询命令中只有<输出列>和<数据源>是必选项。其他子句可选。各子句基本构成如下。 输出列:列名、*、函数(SUM,AVG,MAX,MIN,COUNT、FIRST、LAST、STDEV、VAR)、常量、表达式、DISTINCT、TOP n [PERCENT]、表名前缀、AS <新名> 换名。 INTO子句:INTO <新表>。保存查询结果到某个表。 FROM 子句:单个表; 两个表:内连接:左表 INNER JOIN 右表 ON 条件 外连接:左表 LEFT|RIGHT [OUTER] JOIN 右表 ON 条件 笛卡尔积:左表,右表 多个表在两个表基础上扩展。用“AS”子句为表换名。重名字段加表名前缀。 WHERE子句:WHERE <逻辑表达式> 4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询“逻辑表达式”可以使用所有的比较运算符、逻辑运算符。还可以使用子查询,使用与子查询进行整体比较的ALL、SOME、IN、EXISTS运算。 GROUP与HAVING子句:分组统计及结果过滤输出。 GROUP BY 分组字段 [,…][HAVING <过滤条件> ] 分组统计时输出列应该由分组字段和统计集函数构成。HAVING子句必须与GROUP子句联用,只对统计的结果进行筛选。可以使用集函数。 OREDER子句:OREDER BY 排序项 [,…] ASC或缺省表示升序,DESC表示降序。4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询子查询有相关和非相关两种方式。非相关子查询是:首先进行子查询,获得一个结果集合,然后再进行外部查询中记录字段值与子查询结果的比较。这是先内后外的方式。 相关子查询方式是:对于外部查询中与子查询有关的表记录,逐条带入子查询中运算,若结果不为空,这条记录就符合查询要求;若子查询结果为空,则该条记录不符合查询要求。查询过程是针对外部查询的记录值再去进行子查询,子查询的结果与外部查询表有关。这是从外到内的过程。 联合(UNION)运算将两个查询的结果合并在在一起,实现关系代数并运算的功能 。4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询追加是指将一条或多条记录加入到表中的操作。 〖语法1〗INSERT INTO <表>[(<字段表>])] VALUES (<表达式1>[, <表达式2>, ...]) 〖语法2〗INSERT INTO <表>[(<字段表>])] 语法1向表中追加一条新记录。如果省略字段名表,则值的个数必须与表中字段数相同,按字段顺序依次赋予各字段,对应数据类型必须相容。列出字段表,则可指定字段赋值,没有列出的字段取默认值或空值。 语法2将一条SELECT查询结果追加到表中成为新记录。查询输出列与对应字段名称可以不同,但数据类型必须相容。 4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询更新操作用于更改记录的字段值。 〖语法〗 UPDATE <表> SET <字段1> = <表达式1> [, ... ] [WHERE <条件> [AND | OR <条件>...] ] 省略WHERE子句时,对表中所有记录的指定字段进行修改;当有WHERE子句时,修改只在满足条件的记录的指定字段中进行。 WHERE子句的用法与SELECT类似。 要注意更新操作后的数据必须符合完整性规则的要求。否则更新失败。 4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询将记录从表中删除,删除的记录数据将不可恢复。 〖语法〗 DELETE FROM <表> [WHERE <条件> [AND | OR <条件>...]] 当省略WHERE子句时,将删除表中的所有记录,但保留表的结构。WHERE子句关于条件的使用与SELECT命令中的类似。删除操作应注意数据完整性规则的要求。 数据库的操作功能由查询、追加、删除、更新组成,SQL用四条命令实现这四种功能。 4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询定义功能是SQL的主要功能之一。可以定义、修改、删除表、索引等。 1.表的定义 表定义包含非常多项目。SQL提供CREATE TABLE命令完成表定义,通过“查询”菜单中“SQL特定查询”项下“数据定义”子菜单启动定义命令输入窗口。 表定义包含:表名、字段名、数据类型、字段的所有属性、主键、外键与参照表、表约束规则等。 SQL定义表命令的基本语法可以与“设计”视图中交互式定义表的方式进行对照。4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询〖语法〗CREATE TABLE <表名> ( <字段名1> <类型> [(<大小> [,<小数位数>])] [NULL | NOT NULL] [PRIMARY KEY ] [UNIQUE ] [REFERENCES <参照表名>(<参照字段>)] [DEFAULT <默认值>] [,<字段名2> ...] ... [,主键] [,外键及参照表] [,索引] )4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询PRIMARY KEY将该字段创建为主键,UNIQUE为该字段定义无重复索引。 NULL选项允许字段取空值,NOT NULL不允许字段取空值。主键不允许取NULL 值。 DEFAULT 子句指定字段的默认值,默认值类型必须与字段类型相同。 REFERENCES 子句定义外键并指明参照表及其参照字段。 当主键、外键、索引等由多字段组成时,必须在所有字段都定义完毕后再定义。 所有这些定义的字段或项目用逗号隔开,同一个项目内用空格分隔。 4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询2.定义索引 〖语法〗CREATE [ UNIQUE ] INDEX <索引名> ON <表名>(<字段名> [ASC|DESC] [,<字段名> [ASC|DESC] ,...]) [WITH PRIMARY ] 使用UNIQUE子句将建立无重复索引。可以定义多字段索引。ASC表示升序,DESC表示降序。WITH PRIMARY子句将索引指定为主键。 4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询3. 修改表结构 修改表的结构主要有以下几项内容。 增加字段。 删除字段。 更改字段名称、类型等,增加、删除或修改字段属性。 增加、删除或修改表的主键、索引、外键及参照表等。 〖语法〗 ALTER TABLE <表名> ADD COLUMN <字段名> <类型>[(<大小>)] [NOT NULL] [索引] | ALTER COLUMN <字段名> <类型>[(<大小>)] | DROP COLUMN <字段名> 要注意,当修改或删除字段被外键引用时,可能会使修改失败。4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询4.删除对象 已建立的表、查询对象、索引可以删除。 〖语法〗 DROP TABLE <表名> | INDEX <索引名> ON <表名> | VIEW <查询对象名> 注意,如果被删除表被其它表引用,这时删除命令可能执行失败。 4.3 选择查询4.3 选择查询按照Access的特点,查询应该通过交互操作设置,“SQL视图”属于交互操作的附属对照视图。 按照交互操作划分,建立查询操作有两种: “在设计视图中创建查询”和“使用向导创建查询”。 查询类别分为两大类5种。 两类是:选择查询、操作查询。 5种是:选择查询、交叉查询、参数查询、 SQL特定查询和操作查询。前3种都是选择查询。 其中,“操作查询”包括“更新查询”、“追加查询”、“删除查询”。 除“SQL特定查询”外,它们都是通过查询的“设计视图”进行可视化的交互操作来完成查询的定义。4.2 SQL语言与SQL命令查询4.2 SQL语言与SQL命令查询要注意,这5种查询类别只是查询功能上的划分。 Access提供了可视化操作界面来设置查询。用户在查询的“设计视图”窗口中通过直观的交互操作构造查询,Access自动在后台生成对应的SQL语句。SQL的查询、追加、删除、更新等功能,都可以通过查询“设计视图”进行设置,并可以保存为查询对象。 通过“查询设计”工具栏可在“设计视图”和“SQL视图”之间转换。 在进行查询设计时,系统菜单将出现“查询”菜单,同时会出现“查询设计”工具栏。4.3 选择查询4.3 选择查询建立选择查询的操作步骤如下。 ① 在数据库窗口启动查询“设计视图”。可通过“在设计视图中创建查询”、“新建查询”对话框启动查询“设计视图”。 ② 确定数据源。启动“显示表”对话框,从中添加表或查询对象作为数据源。 ③ 定义查询。在 “设计视图”中交互操作构造查询。 ④ 运行查询。 ⑤ 根据需要保存为查询对象。4.3 选择查询4.3 选择查询(1)设计视图界面 该视图分为上下两部分,上半部分是数据源“表/查询”输入显示区,对应SELECT语句FROM子句;下半部分是依例查询(QBE)设计网格,用于确定查询结果要输出的列和查询条件等。 QBE网格中Access初始设置了字段、表、排序、显示、准则、或等栏目。 (2)多表关系的操作 当“表/查询输入区”中只有一个表时,这是单表查询。若“表/查询输入区”中有多个表时,这是多表连接查询,Access会自动设置多表之间的连接条件。默认为内连接。可设置不同连接方式。 4.3 选择查询4.3 选择查询(3)“字段”行、“表”行与“显示”行的操作 ① 在“字段”行的组合框中选择一个字段。 ② 从“表/查询输入区”中拖曳某一字段到“字段”行中。 ③ 一次设置多个字段。按下shift键选中连续、或者按下ctrl键选中不连续的多个字段,然后拖曳到“字段”行。 ④ 设置“*”来代表全部字段。 ⑤ 一次设置全部字段。选定表全部字段,拖曳到“字段”行。 (4)“排序”行操作 确定按该字段进行排序。下拉框中选择“升序”或“降序”。 (5)“条件”行操作 所有查询条件,都在“条件”行设置。在QBE设计网格中,同一行的条件以AND连接,不同行的条件以OR连接。 4.3 选择查询4.3 选择查询(6)某些基本功能的设置操作 ① DISTINCT和TOP功能。在设计视图中不选中任何对象时启动“查询属性”对话框,来对查询整体设计进行设置,包括DISTINCT、TOP。 ② 输出列重命名和表取别名。可在“字段”行定义的字段或表达式前,直接加上“新列名”并用“:”分割;或者利用“字段属性”对话框。 ③ 参数。在输入比较值时,若输入的是标识符,或用“[ ]”括起来,则认为是参数。 ④ BETWEEN、IN、LIKE和IS NULL运算。在“条件”行中输入这些运算符,并根据需要输入比较对象。4.3 选择查询4.3 选择查询⑤ 在查询中执行计算。“字段”行还可以设置包含字段的计算表达式。字段用方括号([ ])括起来。Access会自动为表达式命名,用户可以重命名。 ⑥ 汇总查询设计。在QBE网格中通过工具栏“合计”按钮增加“总计”行。可以对整个表进行汇总,也可以根据分组字段进行分组统计汇总。“总计”行下拉列表中有12个选项,选择项目进行汇总运算。 ⑦ 子查询设计。将子查询放置在“条件”行中。 ⑧ 查询中字段属性设置。在查询中用到的字段会继承在表设计中定义的字段属性。用户也可以在查询设计视图中,通过“字段属性”对话框重新设置字段属性。4.3 选择查询4.3 选择查询(6)查询的运行、保存与编辑 ① 运行查询。通过工具栏“运行”按钮、“查询”菜单“运行”命令、切换到“数据表视图”等方式运行查询。“数据表视图”方法仅适用于选择查询。 ② 保存查询。保存创建好的查询为查询对象。通过工具栏“保存”按钮,或者“文件”菜单“另存为”命令,在“另存为”对话框命名保存查询。 查询对象可以随时在数据库窗口查询对象界面中通过“打开”来运行查询,查看结果。 ③ 编辑查询或查询对象。已经设计好的查询,重新进入查询设计视图,可以修改以前的查询设置。4.3 选择查询4.3 选择查询参数查询事实上不是独立的查询类型。使用参数的查询就是参数查询。在运行查询时若需要由用户输入某个或某些值,可以将这个或这些数据定义为参数。 参数有两种定义方式。 ① 在查询中直接写出的名称标识符,该标识符不是字段名等已有的名称。 ② 为避免混淆,可以将作为参数的标识符用“[ ]”括起来。 Access在“查询”菜单中列出“参数查询”菜单项,用户可以点击该菜单定义参数。4.3 选择查询4.3 选择查询在运行查询输入参数值时,每个参数都显示一个“输入参数值”对话框,操作如下。 ① 若要输入一个参数值,键入其值。 ② 若输入的值就是创建表时定义的该字段的默认值,键入“default”。 ③ 若要输入一个 Null ,键入“null”。 ④ 若要输入一个零长度字符串 或空字符串,请将该框留空。4.3 选择查询4.3 选择查询交叉表查询是一种特殊的汇总查询。所谓交叉表,就是满足了以下特征的表,这样的表的内容可以通过另外一种方式来输出显示。可以看做交叉表的数据特征如下。 ① 表的列由三部分构成,前两部分代表两种不同类型的实体或对象,第三部分列的值是这两类对象发生联系产生的结果。4.3 选择查询4.3 选择查询② 若转换格式显示,前两部分列中,指定某一部分的列作为转换后的行标题,指定另外一部分是列标题。作为列标题的部分只能是一列。 ③ 将指定的行标题和列标题字段作为分组字段,对第三部分进行汇总运算,然后应将汇总的结果作为“输出值”填写在行与列的交叉处。 如果一个查询的结果符合这些特征,就可以转换格式输出,这就是交叉表查询。4.3 选择查询4.3 选择查询交叉表查询的基本步骤如下。 ① 选择“查询”菜单中的“交叉表查询”命令,然后定义查询,查询字段的结构应该符合上面所说特征。 ② 在查询中指定字段作为交叉表输出的“行标题”,指定一列为“列标题”。 ③ 行标题字段和列标题字段作为分组字段,然后设置剩余的最后列进行汇总统计运算的类别,再指定输出。 ④ 运行查询,查看结果。若需要,命名保存。第四节 查询向导第四节 查询向导Access提供四种查询向导:简单查询向导、交叉表查询向导、查找重复项查询向导和查找不匹配项查询向导。这些查询向导采用交互问答方式引导用户创建选择查询。 在创建查询时,可以首先利用查询向导创建查询,然后在设计视图中进一步完善修改。5.4 查询向导5.4 查询向导利用查询向导创建查询的基本操作步骤如下。 ① 进入数据库窗口查询对象界面,启动“新建查询”对话框。 ② 选择相应的“查询向导”选项,启动向导对话框。 ③ 根据对话框的提示,进行必要的设置。 ④ 单击“完成”按钮完成创建,然后可运行查询或进入查询设计视图修改。4.4 查询向导4.4 查询向导“简单查询向导”可以设置普通的选择查询;“交叉表查询向导”能创建标准的交叉表查询;“查找重复项查询向导”可以创建一个特殊的选择查询,用以在同一个表或查询中查找指定字段具有相同值的记录。4.4 查询向导4.4 查询向导“查找不匹配项查询向导”也可以创建一个特殊的选择查询,用以在两个表中查找不匹配的记录。所谓不匹配记录,是指在两个表中根据共同拥有的指定字段筛选出来的一个表有而另一个表没有相同字段值的记录。两个表共同拥有的字段一般是主键和外键。没有匹配的记录,通常意味着一个主键值没有被引用。第五节 动作查询第五节 动作查询在Access中将“生成表查询、追加查询、删除查询、更新查询”都归结为动作查询(Action Query),这几种查询都会对数据库有所改动。不过,这几种查询都与选择查询有关或者建立在选择查询之上。生成表查询是将选择查询的结果保存到表的查询。其他三种查询则分别对应SQL语言中的INSERT、DELETE、UPDATE语句。4.5 动作查询4.5 动作查询生成表查询是把从指定的表或查询对象中查询出来的数据集生成一个新表。由于查询能够集中多个表的数据,因此这种功能在需要从多个表中获取数据并将数据永久保留时比较有用。该功能实现SELECT语句中INTO子句的功能。 4.5 动作查询4.5 动作查询生成表查询的基本操作步骤如下。 ① 启动选择查询设计视图,定义查询。 ② 选择“查询”菜单中“生成表查询”命令或工具栏“查询类型”按钮,启动“生成表”对话框,对要生成的表命名。新表可保存到当前数据库中,或者“另一数据库”中。 运行查询后,将产生新的表。 利用生成表查询建立新表时,新表中的字段从生成表查询的源表中继承字段名称、数据类型以及“字段大小”属性,但是不继承其他的字段属性以及表的主键。4.5 动作查询4.5 动作查询在使用追加查询时,必须遵循以下规则。 ① 如果目标表有主键,追加的记录在主键字段上不能取空值或与原主键值重复。 ② 如果目标表属于另一个数据库,则必须指明数据库的路径和名称。 ③ 如果在设计查询的QBE网格的“字段”行中使用了星号(*)字段,就不能在“字段”行中再次使用同一个表的单个字段。 ④ 如果目标表有“自动编号”字段,追加查询中不要包括“自动编号”字段。4.5 动作查询4.5 动作查询追加查询的基本操作步骤如下。 ① 启动查询设计视图,定义好选择查询。该查询的结果就是要追加的数据。 ② 选择“查询”菜单中“追加查询”命令,或者工具栏“查询类型”按钮“追加查询”选项,启动“追加”对话框,键入目标表名。可以是当前数据库或其他数据库。 ③ 查询设计视图标题变更,QBE网格中增加“追加到”行,用于设置目标表与查询结果中字段的对应关系。 ④ 可直接运行查询实现追加。若命名保存,就建立了一个追加查询对象。4.5 查询向导4.5 查询向导更新查询是在指定的表中对满足条件的记录进行更新操作。操作基本步骤如下。 ① 启动查询设计视图,定义好选择查询。 ② 选择【查询】菜单中“更新查询”命令,或者工具栏“查询类型”按钮“更新查询”选项,窗口标题变更,同时在QBE网格中增加“更新到”行。 ③ 将更新字段加入QBE窗格中。在对应的“更新到”行中输入更新表达式。 ④ 可直接运行查询实现更新。若命名保存,就建立了一个更新查询对象。4.5 动作查询4.5 动作查询删除查询在指定表中删除符合条件的记录。在删除数据时要考虑表之间的关联性并使之符合完整性要求。建立删除查询的基本步骤如下。 (1)进入查询设计视图,添加要删除记录的表。 (2)选择【查询】菜单中“删除查询”命令,或者工具栏“查询类型”按钮“删除查询”选项,窗口标题变更,同时在QBE网格中增加“删除”行。“删除”行通常用于设置Where关键字,以确定记录的删除条件。 (3)设置删除条件。 (4)可直接运行查询实现删除。若命名保存,就建立了一个删除查询对象。第六节 SQL特定查询第六节 SQL特定查询Access“查询”菜单中列出了“联合查询、传递查询、数据定义查询” 三种SQL特定查询。这三种查询都是直接输入SQL语句,而不用可视化方式。 启动特定查询设计方法,是先进入查询设计视图,不添加表,然后选择“查询”菜单中“SQL特定查询”中选定的查询单击,然后进入查询窗口。4.6 SQL特定查询4.6 SQL特定查询联合查询实现的就是与SELECT语句中联合(UNION)运算相同的功能,实现将多个表或查询的数据记录合并到一个查询结果集中。联合查询的完整语法如下。 〖语法〗[TABLE] <表1>|<查询1> UNION [ALL] [TABLE] <表2>|<查询2> [UNION …] 合并运算的结果是默认没有重复记录,ALL子句的意义是合并运算保留重复记录。4.6 SQL特定查询4.6 SQL特定查询UNION前后的记录集的结构要对应(二者列数应相同,对应字段类型要相容),最后结果集的字段名和类型、属性按照出现在查询中第一位的表或查询的列名来定义。 操作方法:进入查询设计视图,无须添加表。选择“查询”菜单中“SQL特定查询”项下“联合”菜单命令,进入“联合查询”窗口。在窗口中输入联合运算的SQL命令。 可以在“数据表视图”和“SQL视图”中切换以查看查询结果或命令定义。4.6 SQL特定查询4.6 SQL特定查询传递查询是SQL特定查询之一。在Access中,传递查询直接将命令发送到ODBC(Open Database Connectivity,开放数据库互联)数据库服务器上。使用传递查询,不必与服务器上的表进行连接,就可以直接使用相应的数据。 在使用Access传递查询时,要对ODBC进行设置,通过“查询属性”对话框中进行。 本章小结本章小结本章完整介绍了Access查询对象的意义、基础和用法。查询对象是数据库中数据重新组织、数据处理、数据库维护的主要对象,其基础是SQL语言。 本章首先介绍了SQL语言,并将表达式运算作为SQL的组成部分。SQL语言包括了数据定义和数据操作功能,本章通过众多示例,全面介绍了数据定义、查询、维护的用法,展示了单表、多表连接、分组汇总、子查询等多种操作数据的方法,这是本书非常重要的特色。 在此基础上,介绍了Access中查询的各种交互式设计视图的使用方法,包括选择查询、交叉表查询、参数查询、生成表查询、追加查询、删除查询、更新查询、SQL特定查询等。思考题 思考题 1.简述Access查询对象的意义和作用。 2.简述SQL的特点和基本功能。 3. 简述启动查询对象SQL视图的方法。 4. 什么是参数?在SQL命令中怎样定义参数? 5. 什么是表达式? 6. SELECT语句中,Distinct与Top子句有何作用? 7. LIKE运算的作用是什么?匹配符号有哪些? 8. 什么是连接查询?如何表达连接查询? 9. SELECT语句中Having子句有何作用?一定要和GROUP子句联用吗? 10. 动作查询有哪几种?分别对应SQL什么命令? 11. 什么是交叉表? 12. 保存了查询后,能否对查询进行修改操作?nullThank You!
/
本文档为【数据库设计第4章查询】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索