ACCESS数据库常用SQL语句.docx
- 文档编号:3065511
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:39
- 大小:35.53KB
ACCESS数据库常用SQL语句.docx
《ACCESS数据库常用SQL语句.docx》由会员分享,可在线阅读,更多相关《ACCESS数据库常用SQL语句.docx(39页珍藏版)》请在冰豆网上搜索。
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对象将是不可更新的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ACCESS 数据库 常用 SQL 语句