⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 access 2000中级篇_语法参考.htm

📁 Access的中级语法参考,给大家分享!
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                <p>SELECT ALL *<br>
                  FROM tblCustomers<br>
                </p>
                <p>DISTINCT关键字</p>
                <p>DISTINCT关键字用来控制结果集中重复的值如何进行处理,那些对于指定的列来说用户相同值的行将被过滤掉。如果多于指定的列大于一,则所有指定的列的结合将作为过滤条件。例如,如果用户查询Customers表中姓氏不同的记录,则返回的值都将是唯一的,任何重复姓氏的名字都将以结果集中的一个记录作为其结果。</p>
                <p>SELECT DISTINCT [Last Name]<br>
                  FROM tblCustomers<br>
                </p>
                <p>尤其要注意的是,使用DISTINCT关键字的查询所返回的结果集不能更新,即是只读的。</p>
                <p>DISTINCTROW 关键字<br>
                  DISTINCTROW 关键字和DISTINCT关键字类似,但前者是基于整行而非个别的域的。他只有在处理多个表时,并且只有在用户从某几个但非全部的表中选择数据域时才是有用的。如果用户的查询是基于一个表的,或者要从所有的表中选择数据域,则DISTINCTROW 关键字本质上和ALL关键字相同。</p>
                <p>例如,在我们的发票数据库中,每个顾客都可能没有、有一个或多个发票记录。假设我们希望找出有多少拥有多于一张发票的顾客,这时可以使用DISTINCTROW关键字来进行选择。</p>
                <p>SELECT DISTINCTROW [Last Name], [First Name]<br>
                  FROM tblCustomers INNER JOIN tblInvoices<br>
                  ON tblCustomers.CustomerID = tblInvoices.CustomerID<br>
                </p>
                <p>如果我们不使用DISTINCTROW 关键字,得到的将是每个顾客的所有发票记录的行。(这里的 INNER JOIN 语句将在后面的部分讲解)。</p>
                <p>TOP关键字<br>
                  TOP关键字用来返回通过ORDER BY子句所指定的数据行中顶部或底部的某些行。ORDER BY 子句用来指定这些数据列是用升序还是降序排列。如果存在相等值,则TOP关键字将返回所有值相等的行。比如我们希望确定我们的发票数据库中最高额的三条发票记录,可以如下书写SQL语句:</p>
                <p>SELECT TOP 3 InvoiceDate, Amount<br>
                  FROM tblInvoices<br>
                  ORDER BY Amount DESC<br>
                </p>
                <p>我们也可以将PERCENT关键字和TOP关键字同时使用,来返回由ORDER BY子句所指定的数据行中顶部或底部的一定比例的行,如下所示:</p>
                <p>SELECT TOP 25 PERCENT InvoiceDate, Amount<br>
                  FROM tblInvoices<br>
                  ORDER BY Amount DESC<br>
                </p>
                <p>注意如果用户没有定义ORDER BY 子句,则TOP关键字将毫无意义,返回的是随机采样的一些行。</p>
                <p>要了解有关谓词的更多信息,请在Office 助手中或在Microsoft Access 帮助的回答向导的标签页中输入ALL、DISTINCT等谓词,然后单击查找。</p>
                <p>SQL 表达式<br>
                  一个SQL表达式就是作为SQL语句的一部分的一个字符串,并可以得到一个值。你可以任意组合运算符、常数、文字值、函数、域名、控制和属性来建立你的SQL表达式。而&quot; Microsoft Jet SQL for Access 2000高级版&quot;一文就向你描述了如何在WHERE子句中使用表达式来限制SQL语句;而且在本文随后的部分,我们将学习各种能够用于表达式的SQL操作符。</p>
                <p>IN操作<br>
                  IN操作是用来判断一个表达式的值是否属于一个指定列表中的值。如果这个表达式等于列表中的一个值,IN操作的返回值为True。而当没有找到,IN操作返回值为False。让我们假设我们想找到所有住在华盛顿州或乔治亚州的销售部成员。我们可以写一个带着长长的WHERE 子句,并使用AND逻辑操作符的SQL语句,而使用IN操作符会缩短我们写的语句。</p>
                <p>SELECT *<br>
                  FROM tblShipping<br>
                  WHERE State IN ('WA','GA')<br>
                </p>
                <p>通过使用NOT逻辑操作符,我们可以检索出IN操作的反操作结果,这个语句会返回所有不住在华盛顿州的销售部成员。</p>
                <p>SELECT *<br>
                  FROM tblShipping<br>
                  WHERE State NOT IN ('WA')<br>
                </p>
                <p>BETWEEN操作</p>
                <p>BETWEEN操作用于判断一个表达式的值是否介于一个特定的范围之间。如果这个表达式的值介于这个特定范围之间,包括范围开始和结束的值,这个BETWEEN操作返回True。如果这个表达式得值不属于这个范围,则BETWEEN操作返回值为False。假设我们想找到所以金额介于50美圆到100美圆之间的所有发票。我们最好在WHERE 子句使用BETWEEN 操作以及关键字AND设定范围。</p>
                <p>SELECT *<br>
                  FROM tblInvoices<br>
                  WHERE Amount BETWEEN 50 and 100<br>
                </p>
                <p>通过使用NOT逻辑操作符,我们可以检索出BETWEEN操作的反操作结果,找到不在范围中的所有发票数量。</p>
                <p>SELECT *<br>
                  FROM tblInvoices<br>
                  WHERE Amount NOT BETWEEN 50 and 100<br>
                </p>
                <p>注意这个范围可以设定为相反的顺序并依旧得到相同的结果 (BETWEEN 100 和 50),但许多的适用于ODBC的数据库要求这个范围遵从从头到尾的顺序。如果你设计你的应用程序可以兼容或升级为适用于ODBC的数据库,你就应该总是按照从头到尾的方法使用。</p>
                <p>LIKE操作<br>
                  LIKE 操作operator is used to determine if the value of an expression compares to that of a pattern. 一个样式就是就是一个完全的字符串或是一个包含有一个或多个通配符的部分字符串。通过使用LIKE 操作,你可以在一个结果集里查找一个域并找到所有符合特殊的样式的值。</p>
                <p>SELECT *<br>
                  FROM tblCustomers<br>
                  WHERE [Last Name] LIKE 'Johnson'<br>
                </p>
                <p>为了返回所有的名字以字母J开头的顾客,我们使用星号通配符。</p>
                <p>SELECT *<br>
                  FROM tblCustomers<br>
                  WHERE [Last Name] LIKE 'J*'<br>
                </p>
                <p>通过使用NOT逻辑操作符,我们可以检索出LIKE操作的反操作,并在列表中过滤掉所有的 Johnsons。</p>
                <p>SELECT *<br>
                  FROM tblCustomers<br>
                  WHERE [Last Name] NOT LIKE 'Johnson'<br>
                </p>
                <p>你在LIKE 操作样式里可以使用多种通配符,如下表所示:</p>
                <p>通配符<br>
                  描述</p>
                <p>*(星号)<br>
                  匹配所有字符并可以被用在结构字符串的任何位置。</p>
                <p>%(百分号)<br>
                  批评任何字符并可以被用在结构字符串的任何位置。(只适用于ADO 和 the Jet OLE DB provider) </p>
                <p>?(问号)<br>
                  匹配任何单个字符并可以被用在结构字符串的任何位置。</p>
                <p>_(下划线)<br>
                  匹配任何单个字符并可以被用在结构字符串的任何位置。(只适用于ADO 和 the Jet OLE DB provider) </p>
                <p>#(数字符号)<br>
                  匹配任何单个数字并可以被用在结构字符串的任何位置。</p>
                <p>[](方括号)<br>
                  匹配任何被包括在方括号里面的单个字符,并可以被用在结构字符串的任何位置。</p>
                <p>!(感叹号)<br>
                  匹配任何不属于被方括号所包含的字符列表中的单个字符。Matches any single character not in the list that is enclosed within the square brackets.</p>
                <p>-(连字符)<br>
                  匹配任何一个在方括号中的字符。<br>
                </p>
                <p>注意: 上表所述的“%”和“_”通配符只能通过Jet OLE DB provider 或 ADO运行。如果通过. Access SQL View 用户界面运行它们将获得一个空的结果集。</p>
                <p>如果你想得到更多的通配符的信息,在Office 助理或微软Access帮助窗体的Answer Wizard标志中输入wildcard characters,并单击Search。</p>
                <p>IS NULL 操作符<br>
                  空值就是指无值或不可知值。IS NULL操作符被用于判断一个表达式的值是否和一个空值相等。</p>
                <p>SELECT *<br>
                  FROM tblInvoices<br>
                  WHERE Amount IS NULL<br>
                </p>
                <p>通过添加NOT逻辑操作符,我们可以检索IS NULL操作符的反操作。在这个例子里,SQL语句将会除掉所有包含丢失的或未知值的发票记录。</p>
                <p>SELECT *<br>
                  FROM tblInvoices<br>
                  WHERE Amount IS NOT NULL</p>
                <p>SELECT INTO 语句<br>
                  SELECT INTO 语句,也可以理解为一个表单创建查询,可以用来从一个或多个已存在工作表中创建一个新的工作表。它所创建的工作表可以基于任何有效的SELECT语句。SELECT INTO 语句可以用来存储记录、创建备份表单或在一个外部数据库里创建新的工作表。</p>
                <p>当你用SELECT INTO 语句创建一个新工作表时,所有的新工作表里的域都继承于原始工作表。然而,不包括其他的工作表属性,如主关键字或索引都是在新工作表中被创建。一旦新的工作表被创建,你当然可以使用ALTER TABLE语句添加这些属性。</p>
                <p>如果你要创建一个新的工作表,可以使用一个带有你希望在工作表种包含的列的域列表和你新工作表的名称的SELECT INTO 语句,并在FROM子句里提供数据资源。</p>
                <p>SELECT *<br>
                  INTO tblNewCustomers<br>
                  FROM tblCustomers<br>
                </p>
                <p>为了为新的工作表指定确定的域,把域名列表里的原始工作表的域名用星号代替,并用AS关键字来命名新的工作表中的各列。</p>
                <p>SELECT [First Name] &amp; ' ' &amp; [Last Name] AS FullName<br>
                  INTO tblNewCustomerNames<br>
                  FROM tblCustomers<br>
                </p>
                <p>如果要在一个已经存在的外部数据库里创建新的工作表,你可以用IN关键字。如果外部数据库不存在,SELECT INTO 语句将会返回一个错误信息。</p>
                <p>SELECT *<br>
                  INTO tblNewCustomers<br>
                  IN 'C:\Customers.mdb'<br>
                  FROM tblCustomers<br>
                </p>
                <p>子查询<br>
                  子查询就是在用在另一个SELECT、SELECT INTO、INSETT INTO 、DELETE 或UPDATE语句内部的SELECT语句。它可以帮助你对基于另一个结果集的结果进行进一步的限制。这叫做嵌入,并且因为一个子查询就是一个SELECT语句,你也可以把一个子查询嵌入到另一个子查询里面。当你在一个SQL语句中使用一个子查询的时候,它可以作为一个域列表、WHERE子句或者HAVING子句的一部分。</p>
                <p>这里由三种基本的子查询形式,并且每种都使用不同种类的谓词。</p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -