ACCESS数据库常用SQL语句.docx

上传人:b****5 文档编号:3065511 上传时间:2022-11-17 格式:DOCX 页数:39 大小:35.53KB
下载 相关 举报
ACCESS数据库常用SQL语句.docx_第1页
第1页 / 共39页
ACCESS数据库常用SQL语句.docx_第2页
第2页 / 共39页
ACCESS数据库常用SQL语句.docx_第3页
第3页 / 共39页
ACCESS数据库常用SQL语句.docx_第4页
第4页 / 共39页
ACCESS数据库常用SQL语句.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

ACCESS数据库常用SQL语句.docx

《ACCESS数据库常用SQL语句.docx》由会员分享,可在线阅读,更多相关《ACCESS数据库常用SQL语句.docx(39页珍藏版)》请在冰豆网上搜索。

ACCESS数据库常用SQL语句.docx

ACCESS数据库常用SQL语句

ACCESS数据库常用SQL语句

SELECT语句

指示MicrosoftJet数据库引擎从数据库返回一组记录信息。

语法

SELECT[predicate]{*|table.*|[table.]field1[ASalias1][,[table.]field2[ASalias2][,...]]}

FROMtableexpression[,...][INexternaldatabase]

[WHERE...]

[GROUPBY...]

[HAVING...]

[ORDERBY...]

[WITHOWNERACCESSOPTION]

SELECT语句包含以下部分:

部分

说明

predicate

这些谓词之一:

ALL、DISTINCT、DISTINCTROW或TOP。

可以使用谓词来限定返回记录的数量。

如果没有指定谓词,默认值为ALL。

*

指定选择所指定的表的所有字段。

table

表的名称,该表包含了其记录被选择的字段。

field1,field2

字段名,这些字段包含了要检索的数据。

如果包括多个字段,将按它们的排列顺序对其进行检索。

alias1,alias2

用作列标题的名称,不是table中的原始列名。

tableexpression

其中包含要检索的数据的表的名称。

externaldatabase

如果tableexpression中的表不在当前数据库中,则使用该参数指定该数据库名。

说明

若要执行此项操作,Microsoft®Jet数据库引擎会搜索指定的表,并提取出选定的列,再选择出符合条件的列,然后按指定的顺序对得到的行进行排序或分组。

SELECT语句不会更改数据库中的数据。

SELECT通常是SQL语句中的第一个词。

大多数SQL语句是SELECT或SELECT...INTO语句。

SELECT语句最简化的语法为:

SELECTfieldsFROMtable

可以通过星号(*)来选择表中所有的字段。

以下的示例选择在Employees表中的所有字段:

SELECT*FROMEmployees;

如果一个字段名包括于FROM子句内的多个表中,请在该字段前面加上表名和.(圆点)号。

在下面的示例中,Department字段同时存在于Employees表和Supervisors表中。

SQL语句从Employees表中选择出部门并从Supervisors表中选择出主管名:

SELECTEmployees.Department,Supervisors.SupvName

FROMEmployeesINNERJOINSupervisors

WHEREEmployees.Department=Supervisors.Department;

创建Recordset对象时,MicrosoftJet数据库引擎将使用表的字段名作为Recordset对象中的Field对象名。

如果需要一个不同的字段名或者名称不适合用来生成该字段的表达式,请使用AS保留字。

下面的示例使用标题Birth来命名在所得到的Recordset对象中的返回Field对象:

SELECTBirthDate

ASBirthFROMEmployees;

只要使用的聚合函数或查询返回的是不明确的或重复的Field对象名称,就必须使用AS子句为该Field对象另外提供一个替代名称。

下面的示例使用标题HeadCount来命名在结果Recordset对象中的返回Field对象:

SELECTCOUNT(EmployeeID)

ASHeadCountFROMEmployees;

可以在SELECT语句中使用其他子句进一步约束和组织所返回的数据。

有关详细信息,请参阅相应子句的帮助主题。

请参阅

ALLDISTINCT、DISTINCTROW、TOP谓词

ORDERBY子句(MicrosoftJetSQL)

DELETE语句

SELECT...INTO语句

FROM子句

SQL聚合函数

GROUPBY子句

UNION操作

HAVING子句

UPDATE语句

IN子句

WHERE子句

INSERTINTO语句

WITHOWNERACCESSOPTION声明

ALL、DISTINCT、DISTINCTROW、TOP谓词

指定使用SQL查询选择的记录。

语法

SELECT[ALL|DISTINCT|DISTINCTROW|[TOPn[PERCENT]]]

FROMtable

一个包含这些谓词的SELECT语句具有以下部分:

部分

说明

ALL

作为不包括谓词处理。

MicrosoftJet数据库引擎会选择符合SQL语句中的条件的所有记录。

以下两个示例是等价的,它们都返回Employees表中的所有记录:

SELECTALL*

FROMEmployees

ORDERBYEmployeeID;

SELECT*

FROMEmployees

ORDERBYEmployeeID;

DISTINCT

忽略在选定字段中包含重复数据的记录。

若要包括在查询的结果中,在SELECT语句中所列出的每个字段的值必须是唯一的。

例如,Employees表中列出的一些雇员可能有相同的名字(LastName)。

如果在LastName字段中有两个包含Smith的记录,则下面的SQL语句只返回一个包含Smith的记录:

SELECTDISTINCT

LastName

FROMEmployees;

如果忽略了DISTINCT,这个查询将返回两个Smith记录。

如果SELECT子句包含多个字段,若要在结果中包含给定的记录,那么所有字段的值的组合必须是唯一的。

使用DISTINCT查询的输出结果是不可更新的,它不会影响其他用户所做的后续更改。

DISTINCTROW

忽略整个重复记录的数据,而不仅仅是重复的字段。

例如,创建一个联接顾客表和订单表的CustomerID字段的查询。

顾客表不包含重复的CustomerID字段,但是订单表包含重复的CustomerID字段,因为每一个顾客可以有多个订单。

下面的SQL语句显示了如何使用DISTINCTROW产生一个至少有一个订单但没有这些订单任何细节的公司列表:

SELECTDISTINCTROWCompanyName

FROMCustomersINNERJOINOrders

ONCustomers.CustomerID=Orders.CustomerID

ORDERBYCompanyName;

如果忽略了DISTINCTROW,对于每个有多个订单的公司这个查询语句将得到多个行。

DISTINCTROW仅在选择的字段源于查询中所使用的表的一部分而不是全部时才会生效。

如果查询仅包含一个表或者要从所有的表中输出字段,DISTINCTROW就会被忽略。

TOPn[PERCENT]

返回出现在由ORDERBY子句指定的起始和结束范围内的一定数量的记录。

假定希望得到1994年级中前25名学生的名字:

SELECTTOP25

FirstName,LastName

FROMStudents

WHEREGraduationYear=1994

ORDERBYGradePointAverageDESC;

如果没有包含ORDERBY子句,查询将会从Students表中返回一个满足WHERE子句的包含25个记录的任意集合。

TOP谓词不会在两个相等的值中进行选择。

在上面的示例中,如果第25和第26名的年级平均分相同,那么查询将会返回26个记录。

也可以使用PERCENT保留字返回出现在ORDERBY子句指定的起始和结束范围内的某个百分比数量的记录。

假如,您希望返回该年级中最后名次的百分之十个学生,而不是前25名学生:

SELECTTOP10PERCENT

FirstName,LastName

FROMStudents

WHEREGraduationYear=1994

ORDERBYGradePointAverageASC;

ASC谓词指定返回最小值。

TOP之后的值必须是一个无符号整数。

TOP谓词不影响查询是否可更新。

table

从中检索记录的表名。

FROM子句

指定其中包含SELECT语句中所列字段的表或查询。

语法

SELECTfieldlist

FROMtableexpression[INexternaldatabase]

包含FROM子句的SELECT语句具有以下部分:

部分

说明

fieldlist

要检索的字段的名称以及任何字段名别名、SQL聚合函数、选择谓词(ALL、DISTINCT、DISTINCTROW或TOP)或其他SELECT语句选项。

tableexpression

用来标识从中检索数据的一个或多个表的表达式。

该表达式可以是单个表名、保存的查询名、或者是INNERJOIN、LEFTJOIN或者RIGHTJOIN产生的结果。

externaldatabase

包含tableexpression中的所有表的外部数据库的完整路径。

说明

FROM是必需的,并且在任何SELECT语句后面。

在tableexpression中表名称的顺序无关紧要。

为了提高性能和便于使用,建议您使用链接表而不是IN子句来从外部数据库中检索数据。

下例展示了怎样从Employees表中检索数据:

SELECTLastName,FirstName

FROMEmployees;

WHERE子句

指定FROM子句所列出的表中哪些记录会受SELECT、UPDATE或DELETE语句的影响。

语法

SELECTfieldlist

FROMtableexpression

WHEREcriteria

包含WHERE子句的SELECT语句具有以下部分:

部分

说明

fieldlist

任何要检索的字段的名称,以及任何字段名别名、SQL聚合函数、选择谓词(ALL、DISTINCT、DISTINCTROW或TOP)或其他SELECT语句选项。

tableexpression

将从中检索数据的表的名称。

criteria

表达式,记录必须满足该表达式才能包括在查询结果中。

说明

MicrosoftJet数据库引擎会选择出符合WHERE子句所列条件的记录。

如果没有指定WHERE子句,查询会返回表中的所有行。

如果在查询中指定了多个表并且不包含WHERE子句或JOIN子句,查询将会产生各个表的迪卡尔积。

WHERE是可选的,但包含它时,则应在FROM后面。

例如,可以选择销售部门中的所有雇员(WHEREDept='Sales')或年龄在18岁到30岁之间的顾客(WHEREAgeBetween18And30)。

如果没有使用JOIN子句来对多个表执行SQL联接操作,那么所返回的Recordset对象将是不可更新的。

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

当前位置:首页 > 法律文书 > 判决书

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

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