ALL、DISTINCT、DISTINCTROW、TOP语句.doc
上传人:sy****28 上传时间:2024-09-12 格式:DOC 页数:2 大小:37KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

ALL、DISTINCT、DISTINCTROW、TOP语句.doc

ALL、DISTINCT、DISTINCTROW、TOP语句.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

ALL、DISTINCT、DISTINCTROW、TOP谓词HYPERLINK"javascript:AlterAllDivs('block');"全部显示HYPERLINK"javascript:AlterAllDivs('none');"全部隐藏指定用HYPERLINK"javascript:AppendPopup(this,'ofSQL_1')"SQL(结构化查询语言(SQL):一种数据库查询和编程语言,广泛应用于访问、查询、更新和管理关系数据库系统中的数据。)查询选择的记录。语法SELECT[ALL|DISTINCT|DISTINCTROW|[TOPn[PERCENT]]]FROMtable包含以上谓词的SELECT语句具有以下部分:部分说明ALL如果未包括以上任何谓词,则默认采用该谓词。MicrosoftAccess数据库引擎将选择符合HYPERLINK"javascript:AppendPopup(this,'defSQLString_2')"SQL语句(SQL字符串/语句:用于定义SQL命令(如SELECT、UPDATE或DELETE)的表达式,可以包含子句(如WHERE和ORDERBY)。SQL字符串/语句通常用在查询和聚合函数中。)中条件的所有记录。以下两个示例是等效的,都返回“雇员(Employees)”表中的所有记录:SELECTALL*FROMEmployeesORDERBYEmployeeID;SELECT*FROMEmployeesORDERBYEmployeeID;DISTINCT忽略所选字段中包含重复数据的记录。只有SELECT语句中列出的每个字段的值是唯一的,记录才会包括在查询结果中。例如,Employees(雇员)表中列出的多个雇员可能具有相同的姓氏。如果两个记录的LastName(姓氏)字段中都包含Smith,则以下SQL语句只返回一个包含Smith的记录:SELECTDISTINCTLastNameFROMEmployees;如果无DISTINCT,则此查询返回两个包含Smith的记录。如果SELECT子句中包含多个字段,则对于结果中包含的特定记录,其所有字段的值组合必须是唯一的。如果查询使用DISTINCT,则其输出不可更新,且无法体现其他用户所做的后续更改。DISTINCTROW根据整个重复记录而不是某些重复字段来忽略数据。例如,您可以创建一个查询,根据CustomerID(客户ID)字段将Customers(客户)表和Orders(订单)表联接起来。Customers(客户)表中无重复的CustomerID(客户ID)字段,但Orders(订单)表中包含重复字段,因为每个客户可以有多个订单。以下SQL语句显示了如何使用DISTINCTROW来生成至少具有一个订单的公司列表,但不包含有关订单的任何细节:SELECTDISTINCTROWCompanyNameFROMCustomersINNERJOINOrdersONCustomers.CustomerID=Orders.CustomerIDORDERBYCompanyName;如果无DISTINCTROW,则此查询将为具有多个订单的每个公司生成多行。仅当从查询中所用的某些表,而不是所有表中选择字段时,DISTINCTROW才有效。如果查询只包含一个表,或者如果输出所有表的字段,则DISTINCTROW将被忽略。TOPn[PERCENT]返回位于ORDERBY子句所指定范围内靠前或靠后的某些记录。假设您需要1994级前25名学生的姓名:SELECTTOP25FirstName,LastNameFROMStudentsWHEREGraduationYear=2003ORDERBYGradePointAverageDESC;如果不包括ORDERBY子句,则查询将返回满足WHERE子句的Students(学生)表中的任意25个记录。TOP谓词不在相等值之间进行选择。在上例中,如果第25个和第26个学生的平均分相等,则查询将返回26个记录。还可以使用PERCENT保留字返回位于ORDERBY子句所指定范围内靠前或靠后的一定百分比的记录。假设您不是需要前25名学生,而是名列班级最后10%的学生:SELECTTOP10PERCENTFirstName,LastNameFROMStudentsWHEREGraduationYear=2003ORDERBYGradePointAverageASC;ASC谓词指定了返回的是末端的值。TOP后面的值必须是无符号HYPERLINK"javascript:AppendPopup(this,'defIntege