access语法.docx

上传人:b****3 文档编号:27119580 上传时间:2023-06-27 格式:DOCX 页数:56 大小:1.22MB
下载 相关 举报
access语法.docx_第1页
第1页 / 共56页
access语法.docx_第2页
第2页 / 共56页
access语法.docx_第3页
第3页 / 共56页
access语法.docx_第4页
第4页 / 共56页
access语法.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

access语法.docx

《access语法.docx》由会员分享,可在线阅读,更多相关《access语法.docx(56页珍藏版)》请在冰豆网上搜索。

access语法.docx

access语法

access语法收藏

like查询用*

SELECT*

FROMflash

WHEREfilenamelike'*http*';

DELETE*

FROMcompany_guangxi

WHERE机构名称notlike'*公司*'and机构名称notlike'*工厂*';

删除查询

DELETE*FROM订单WHERE订单.下单日期<=#1/1/2002#

更新查询

UPDATE产品SET产品.建议售价=[建议售价]*1.2WHERE产品.厂牌="MOTOROLA"

accesssql语句查询

查询时生成序号

SELECT(SELECTCount([xlh].[aa])ASAutoNumFROMxlhWHERE(((xlh.aa)<=xlh_Alias.aa));)AS序号,xlh.aa

FROMxlhASxlh_AliasINNERJOINxlhONxlh_Alias.aa=xlh.aa

ORDERBYxlh.aa;

多表sql查询

SELECTtest.aaAS第一个字段,test1.bbAS第二个字段,test1.cc

FROMtest,test1

WHEREtest.aa=test1.aa;

多表sql查询1

SELECTa.aa,b.bb,b.cc,b.cc*100AS合计

FROMtestASa,test1ASb

WHEREa.aa=b.aa;

多表sql查询排序

SELECTa.aa,b.bb,b.ccAS第三个字段

FROMtestASa,test1ASb

WHEREa.aa=b.aa

ORDERBYb.cc;

查询例子

SELECTa.dhhm

FROMxl11aASa,xl919ASb

WHEREa.dhhm=b.dhhmandaa<>"1";

日期时间分隔符是#而不是引号

Select*FromTab1Where[Date]>#2002-1-1#;

函数及计算

合计的群组,运算式及条件

SELECT订单.客户编号,Sum(订单.含税价)AS含税价之总计,Last(订单.订单日期)AS订单日期之最后一笔,Date()-[订单日期之最后一笔]AS距今天数FROM订单WHERE(订单.订单日期>=#12/1/2006#)GROUPBY订单.客户编号

11-2查询指令

群组

条件

多个计算栏位

多资料表查询指令

INNERJOIN-最基本的JOIN方式

SELECT客户.公司名称,订单.订单编号,订单.订单日期FROM客户INNERJOIN订单ON客户.客户编号=订单.客户编号

11-2查询指令

多资料表查询指令

LEFT及RIGHTJOIN

SELECT客户.公司名称,客户.连络人姓名,订单.客户编号FROM客户LEFTJOIN订单ON客户.客户编号=订单.客户编号WHERE(订单.客户编号IsNull)

11-2查询指令

四种动作查询指令

制成资料表

SELECT客户.客户编号,客户.公司名称,订单.下单日期,订单.含税价INTO客户及订单FROM客户INNERJOIN订单ON客户.客户编号=订单.客户编号

新增查询

INSERTINTO客户及订单(客户编号,公司名称,下单日期,含税价)SELECT客户.客户编号,客户.公司名称,订单.下单日期,订单.含税价FROM客户INNERJOIN订单ON客户.客户编号=订单.客户编号

11-3动作查询指令

四种动作查询指令

  下边列出sqlserver与access的语法差别,方便大家在更换程序数据库时查询。

日期分隔符号

  access:

英镑符(#)

  sqlserver:

撇号(’)

Boolean常量

  access:

True、False;On、Off;Yes、No;整数:

-1(真)、0(假)。

  sqlserver:

整数:

1(真)、0(假)

字符串连接

  access:

和号(&)

  sqlserver:

加号(+)

通配符

  access:

星号(*)与零个或更多字符匹配。

      问号(?

)与单个字符匹配。

      叹号(!

)意味着不在列表中。

      英镑符(#)意味着单个数字。

  sqlserver:

百分号(%)与零个或更多字符匹配。

        下划线(_)与单个字符匹配。

        上插入符(^)意味着不在列表中。

        没有与英镑符(#)对应的字符。

DROPINDEX

  access:

DropIndex<索引名>ON<表名>

  sqlserver:

DropIndex<表名>.<索引名>

表添加标识列

  access:

altertable<表名>add<列名>Counter(1,1)

  sqlserver:

altertable<表名>add<列名>bigintidentity(1,1)notnull

本文来自CSDN博客,转载请标明出处:

Access教程第三章查询

发布时间:

2009-7-16    阅读:

1227

第三章 查询

 

 

 

本章内容

 

◆查询的概念、种类和作用。

◆各种查询的建立。

◆查询的应用。

 

 

一、查询的概念

 

1.什么是查询

 

查询就是依据一定的查询条件,对数据库中的数据信息进行查找。

它与表一样,都是数据库的对象。

它允许用户依据准则或查询条件抽取表中的记录与字段。

Access2003中的查询可以对一个数据库中的一个或多个表中存储的数据信息进行查找、统计、计算、排序等。

 

有多种设计查询的方法,用户可以通过查询设计器或查询设计向导来设计查询。

 

 

查询结果将以工作表的形式显示出来。

显示查询结果的工作表又称为结果集,它虽然与基本表有着十分相似的外观,但它并不是一个基本表,而是符合查询条件的记录集合。

其内容是动态的。

 

2.查询的种类

 

Access2003提供多种查询方式,查询方式可分为选择查询、汇总查询、交叉表查询、重复项查询、不匹配查询、动作查询、SQL特定查询、以及多表之间进行的关系查询。

这些查询方式总结起来有4类:

选择查询、特殊用途查询、操作查询和SQL专用查询。

 

3.查询的作用和功能

 

查询是数据库提供的一种功能强大的管理工具,可以按照使用者所指定的各种方式来进行查询。

查询基本上可满足用户以下需求:

◆指定所要查询的基本表。

◆指定要在结果集中出现的字段。

◆指定准则来限制结果集中所要显示的记录。

◆指定结果集中记录的排序次序。

◆对结果集中的记录进行数学统计。

◆将结果集制成一个新的基本表。

◆在结果集的基础上建立窗体和报表。

◆根据结果集建立图表。

◆在结果集中进行新的查询。

◆查找不符合指定条件的记录。

◆建立交叉表形式的结果集。

◆在其他数据库软件包生成的基本表中进行查询。

作为对数据的查找,查询与筛选有许多相似的地方,但二者是有本质区别的。

查询是数据库的对象,而筛选是数据库的操作。

下表指出了查询和筛选之间的不同:

 

功能                                       查询       筛选

——————————————————————————————

用作窗体或报表的基础                       是         是

排序结果中的记录                           是         是

如果允许编辑,就编辑结果中的数据           是         是

向表中添加新的记录集                       是         否

只选择特定的字段包含在结果中               是         否

作为一个独立的对象存储在数据库中           是         否

不用打开基本表、查询和窗体就能查看结果     是         否

在结果中包含计算值和集合值                 是         否         

——————————————————————————————

 

 

二、创建查询

 

用户可以打开数据库窗口,选择【查询】对象,然后单击工具栏中的【新建】按钮,弹出【新建查询】对话框。

 

1.简单选择查询

 

简单选择查询通过简单查询向导来快速完成。

 

 

 

如果要添加汇总,则进行下一步操作而不选择【明细】。

 

 

 

下面是汇总选项:

 

 

如果不用向导设计查询而用查询设计器进行查询设计,并且要在查询中添加汇总选项,则需要手工添加一些汇总函数:

Sum    求总和

Avg    平均值

Min    最小值

Max    最大值

Count  计数

StDev  标准差

Var    方差

First  第一条记录

Last   最后一条记录

 

2.交叉表查询向导

 

交叉表查询以表的形式显示出摘要的数值,例如某一字段的总和、计数、平均等。

并按照列在数据表左侧的一组标题和列在数据表上方的另一组标题,将这些值分组,在数据工作表中分别以行标题和列标题的形式显示出来,用于分析和比较。

例如:

产品表如下

 

要从基本表中得到如下信息:

某一类别产品的“库存量”及其“供应商”。

 

方法步骤图解如下:

 

 

 

 

3.查找重复项查询向导

 

查找重要项查询向导,可以帮助用户在数据表中查找具有一个或多个字段内容相同的记录。

此向导可以用来确定基本表中是否存在重复记录。

如果要得到如下面所示的结果集:

 

 

则可进行如下操作步骤:

 

 

 

 

 

4.查找不匹配项查询向导

 

查找不匹配项查询向导,是用来帮助用户在数据中查找不匹配记录的向导。

如要查找【产品】表中的供应商ID与【供应商】表中的供应商ID不匹配的记录。

步骤分解如下:

 

 

 

 

 

 

 

 

 

5.用查询设计器创建查询

 

使用向导只能建立简单的、特定的查询。

Access2003还提供了一个功能强大的查询设计器,通过它不仅可以从头设计一个查询,而且还可能对已有的查询进行编辑和修改。

 

下图即为查询设计器:

 

【设计器】主要分为上下两部分,上面放置数据库表、显示关系和字段;下面给出设计网格,网格中有如下行标题:

◆字段    查询工作表中所使用的字段名

◆表      该字段所来自的数据表

◆排序    是否按该字段排序

◆显示    该字段是否在结果集工作表中显示

◆条件    查询条件

◆或      用来提供多个查询条件

 

上面的工具栏上有如下按钮:

 

 

◆视图        每个查询有5种视图(设计、数据表、SQL、数据透视表、数据透视图表)

◆查询类型    选择、交叉表、更新、追加、生成表、删除。

◆运行        运行查询

◆显示表      显示所有可用的表

◆总计        在查询设计区中增加【总计】行,可用于求和、求平均等

◆上限值      用户可指定显示范围

◆属性        显示当前对象属性

◆生成器      弹出【表达式生成器】

◆数据库窗口  回到数据库窗口

◆新对象      建立数据库的新对象

 

6.用查询设计器进一步设计查询

 

⑴添加表/查询

 

⑵更改表或查询间的关联

⑶删除表/查询

⑷添加插入查询的字段

⑸删除、移动字段

⑹设置查询结果的排序

⑺设置字段显示属性

 

 

7.查询及字段的属性设置

 

 

 

8.设置查询准则

 

查询设计视图中的准则就是查询记录应符合的条件。

它与在设计表时设置字段的有效性规则的方法相似。

 

⑴准则表达式

And            与操作         “A”And“B”

Or             或操作         “A”Or“B”

Between…And   指定范围操作   Between“A”And“B”

In             指定枚举范围   In(“A,B,C”)

Like           指定模式字符串 Like“A?

[A~f]#[!

0~9]*”   如:

AuD3q98e32ww

 

⑵在表达式中使用日期与时间

在准则表达式中使用日期/时间时,必须要在日期值两边加上“#”。

下面写法都是正确的:

#Feb12,98#、#2/12/98#、#1221998#。

相关内部函数:

Date()     返回系统当前日期

Year()     返回日期中的年份

Month()    返回日期中的月份

Day()      返回日期中的日数

Weekday()  返回日期中的星期数

Hour()     返回时间中的小时数

Now()      返回系统当前的日期与时间

 

⑶表达式中的计算

A+B        两个数字型字段值相加,两个文本字符串连接

A-B        两个数字型字段值相减

A*B        两个数字型字段值相乘

A/B        两个数字型字段值相除

A\B        两个数字型字段值相除四舍五入取整

A^B        A的B次幂

Mod(A,B)   取余,A除以B得余数

A&B        文本型字段A和B连接

 

⑷使用准则表达式生成器

 

 

 

三、创建特殊用途查询

 

数据查询未必总是静态地提取统一信息。

只要用户把搜索类别输入到一个特定的对话框中,就能在运行查询时对其进行修改。

例如:

当用户希望能够规定所需要的数据组进,就需要使用一个参数查询。

另一个特殊用途的查询就是把字段值自动填充到相关表中的“自动查询”查询。

“自动查询”查询通过查找用户输入在匹配字段中的数值,并把用户指定的信息输入到相关表的字段中。

 

1.参数查询

 

如用户想要查询价格在10~30元之间的各种产品,并想知道产品的供应商和产品的类别。

这需要向查询设计器中添加【产品】、【供应商】、【类别】三个表。

具体步骤如下:

 

首先打开查询设计器,将数据表添加到上面。

 

添加字段。

并给出条件:

Between[输入最低值]And[输入最高值]

 

 

然后运行,输入两参数:

 

 

可查看到结果:

 

 

如要改变参数类型,可打开【查询】|【参数】对话框来解决:

 

2.自动查找查询

 

自动查询查询使用具有一对多关系的两个表,若要创建一个自动查找查询,首先把两个相关表添加到查询设计窗口,然后把匹配字段从“多”方拖到网格上。

这种查询是查找“一”方中的相关记录并从匹配记录中的其他字段检索数值。

下面创建一个在【供应商】列中选择一个供应商时,自动填充【联系人姓名】、【地址】、【邮政编码】、【电话】的自动查找查询。

具体操作如下:

 

 

运行,在底部通过选择供应商而添加记录,其中“一”方表中的公司名称、联系人姓名、地址、邮政编码、电话等字段将自动加上。

而“多”方的产品名称则须人工加上。

 

 

3.交叉表查询

 

交叉表查询是一种特殊的合计查询类型,可以使数据按电子表格的方式显示查询结果集,这种方式在水平与垂直方向同时对数据进行分组,使数据的显示更为紧凑。

这一点在前面已讨论过了。

 

下面我们再创建一个雇员销售订单金额汇总表。

由于每一个定单中有多个订单明细产品,所以金额必须求和。

所以按订单分组,利用表达式[数量]*[单价]求和即可,并按雇员分列之。

 

 

 

 

 

四、操作查询

 

   操作查询用于同时对一个或多个表执行全局数据管理操作。

操作查询可以对数据表中原有的数据内容进行编辑,对符合条件的数据进行成批的修改。

因此,应该备份数据库。

 

1.更新查询

 

更新查询用于同时更改许多记录中的一个或多个字段值,用户可以添加一些条件,这些条件除了更新多个表中的记录外,还筛选要更改的记录。

大部分更新查询可以用表达式来规定更新规则。

如下表实例:

 

字段类型   表达式         结果

————————————————————————————————————

货币       [单价]*1.05    把“单价”增加5%

日期       #4/25/01#      把日期更改为2001年4月25日

文本       “已完成”     把数据更改为“已完成”

文本       “总”&[单价]  把字符“总”添加到“单价”字段数据的开头

是/否      Yes            把特定的“否”数据更改为“是”

————————————————————————————————————

 

 

 

 

2.追加查询

 

当用户要把一个或多个表的记录添加到其他表时,就会用到追加查询。

追加查询可以从另一个数据库表中读取数据记录并向当前表内添加记录,由于两个表之间的字段定义可能不同,追加查询只能添加相互匹配的字段内容,而那些不对应的字段将被忽略。

 

 

 

 

 

3.删除查询

 

删除查询是所有查询操作中最危险的一个。

删除查询是将整个记录全部删除而不只是删除查询所使用的字段。

查询所使用的字段只是用来作为查询的条件。

可以从单个表删除记录,也可以通过级联删除相关记录而从相关表中删除记录。

 

4.生成表查询

   

生成表查询可以从一个或多个表/查询的记录中制作一个新表。

在下列情况下使用生成表查询:

◆把记录导出到其数据库。

如创建一个交易已完成的订单表,以便送到其它部门。

◆把记录导出到Excel/Word之类的非关系应用系统中。

◆对被导出的信息进行控制。

如筛选出机密或不相干的数据。

◆用作在一特定时间出现的一个报表的记录源。

◆通过添加一个记录集来保存初始文件,然后用一个追加查询向该记录集中添加新记录。

◆用一个新记录集替换现有的表中的记录。

例如,要以【产品】表为基础,查询出【产品名称】、【类别】、【单价】、【库存量】并生成一个新表:

 

 

 

 

 

 

五、SQL专用查询

 

结构化查询语言(即SQL语言)是最重要的关系数据库操作语言,在过去的几年中,SQL语言已经发展成为标准的计算机数据库语言。

1986年美国国家标准协会ANSI(AmericanNationalStandardsInstitute)和国际标准化组织ISO(InternationalStandardsOrganization)颁布了SQL正式标准,同是时确认SQL语言为数据库操作的标准语言,现在已有100多种遍布在从微机到大型机上的数据库产品SQL产品。

SQL语言基本上独立于数据库本身及其使用的机器、网络、操作系统,基于SQL的DBMS开发商所提供的产品一般都具有良好的可移植性。

SQL语言最初由IBM的研究人员在70年代提出,最初的名称为SEQUEL(结果),从80年代开始改名为SQL,看似是SEQUEL的缩写,但一般又理解为结构化查询语言StructureQueryLanguage。

下面讨论1991年ANSI制定的SQL语言的核心。

VFP的SELECT-SQL可以据此理解之。

 

1.对单个表进行查询

下面考虑SQL对单个表进行简单的查询。

为了进行实例分析,下面我们先建立三个表:

 

学生信息表ST:

学号*

姓名

主修

年龄

100

JONES

HISTORY

21

150

PARKS

ACCOUNTING

19

200

BAKER

MATH

50

250

GLASS

HISTORY

50

300

BAKER

ACCOUNTING

41

350

RUSSELL

MATH

20

400

RYE

ACCOUNTING

18

450

JONES

HISTORY

24

 

学生注册表EN:

学号*

班名

注册号

100

A100

1

150

B200

1

200

A100

2

200

C200

1

300

C100

1

400

B200

2

400

B100

1

400

C200

2

450

B200

3

 

面授安排表CL:

班名*

时间

教室

B200

MTH8

R001

A100

MWF3

R002

B100

MWF8

R002

C100

MWT3

R003

C200

MWF8

R004

 

⑴使用SQL进行投影

投影是指取表的某些列的字段值。

下面是使用SQL语句进行投影的例子,从ST表中列出需要的学号、姓名和主修:

 

SELECT学号,姓名,主修FROMST

学号  姓名        主修

100   JONES       HISTORY

150   PARKS       ACCOUNTING

200   BAKER       MATH

250   GLASS       HISTORY

300   BAKER       ACCOUNTING

350   RUSSELL     MATH

400   RYE         ACCOUNTING

450   JONES       HISTORY

 

 

SELECT主修FROMST

主修

 HISTORY       

 ACCOUNTING    

 MATH          

 HISTORY       

 ACCOUNTING    

 MATH          

 ACCOUNTING    

 HISTORY 

 

 

SELECTDISTINCT主修FROMST

主修

 ACCOUNTING    

 HISTORY       

 MATH 

 

 

⑵使用SQL进行选择

选择是

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1