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

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

📁 Access的中级语法参考,给大家分享!
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                </p>
                <p>注意:当用户执行UPDATE TABLE语句时,将被提示更新失败,因为该语句违反了检验性约束。如果用户使用小于等于100的值来更新CustomerLimit域,就能够成功。 </p>
                <p>约束-II <br>
                  级联性更新和删除 <br>
                  约束还可以用来在数据库中的表间建立参考完整性。具有参考完整性意味着数据是一致的和未被破坏的。比如,如果删除了一个顾客的记录但是该顾客的运单记录仍旧存在数据库中,这时数据就是非一致的,即指数据库中存在着一个孤立的顾客运单记录。参考完整性是在用户建立各个表间的关系时建立的。除了建立参考完整性之外,用户还可以使用级联性更新和删除来确保相互参考的表保持同步。例如,一旦定义了级联性更新和删除,当用户删除顾客记录时,该顾客的运单记录也将自动删除。 </p>
                <p>要使用级联性更新和删除,用户可以在ALTER TABLE 语句的CONSTRAINT子句中使用ON UPDATE CASCADE 和/或 ON DELETE CASCADE 关键字。注意他们都必须是应用于外键的。 </p>
                <p>ALTER TABLE tblShipping <br>
                  ADD CONSTRAINT FK_tblShipping <br>
                  FOREIGN KEY (CustomerID) REFERENCES <br>
                  tblCustomers (CustomerID) <br>
                  ON UPDATE CASCADE <br>
                  ON DELETE CASCADE <br>
                </p>
                <p>外键 <br>
                  在处理外键时,有关快速外键(fast foreign key)的概念是很有用的。快速外键即是一种没有索引的外键。尽管这乍听起来有点不合理,但却可以得到很好的解释。在缺省情况下,一旦定义了一个外键,将会自动生成一个基于该外键中列的索引,这在很多情况下提高了执行保持参考完整性的操作的表现。然而,如果在定义外键的域中存在许多重复值,外键索引将会影响增加和删除数据使得效率。要防止基于外键的索引的生成,我们可以在定义外键是NO INDEX关键字。 </p>
                <p>ALTER TABLE tblInvoices <br>
                  ADD CONSTRAINT FK_tblInvoices <br>
                  FOREIGN KEY NO INDEX (CustomerID) REFERENCES <br>
                  tblCustomers (CustomerID) <br>
                  ON UPDATE CASCADE <br>
                  ON DELETE CASCADE <br>
                </p>
                <p>注意: 快速外键语句只能通过Jet OLE DB provider 和 ADO来执行。在Access SQL View的用户界面中使用将返回错误信息。而且,要删除一个快速外键,也必须在Jet OLE DB provider 和ADO中执行DROP CONSTRAINT语句。 </p>
                <p>在记录按序排列的数据库应用中,快速外键也将发挥作用。比如这里有一个用来辨别所跟踪的顾客类型的 CustomerTypes的表,一个Customer 表和一个Orders 表。在CustomerTypes表中有10行,在 Customer 表中有100000行,在Orders表中有350000行。这时采用在Customers 表中指向CustomerTypes表中的主键的快速外键将是很好的选择,因为在100000行记录外最多只有10行唯一的记录。这时索引对于提取数据毫无用处,并且在CustomerType中插入、删除和更新数据是成为累赘。 </p>
                <p>而另一方面,快速外键应用于Orders 表中的CustomerID 列很可能是没有用处的,因为那些值每一个都代表了不同的客户,所以一般是唯一的。在这种情况下,使用通常的带有索引的外键将会很有裨益,这是因为它是应用在连结和其他查找规则上的。 </p>
                <p>注意: 尽管在本节的大部分例子中使用的是ALTER TABLE语句,但是所有这些都是可以写在CREATE TABLE 语句中的。 </p>
                <p>要了解有关CONSTRAINT子句的更多信息,请在Office 助手中或在Microsoft Access 帮助的回答向导的标签页中输入ALTER TABLE ,然后单击查找。 </p>
                <p>&nbsp;</p>
                <p>&nbsp;</p>
                <p>数据类型 <br>
                  在努力使基Jet数据引擎的Access应用程序易于向那些基于Microsoft SQL Server 或 MSDE的应用转化方面,Jet 数据引擎改变了一些数据类型,增加了一些新的数据类型字。下面的部分将讨论主要的数据类型及其如何实现的。 </p>
                <p>文本(TEXT)数据类型 <br>
                  文本(TEXT)数据类型是用来设置一个可以存储纯文本的域的,也可以用来存储同时包含文本和数字的内容,但其中的数字并不是用于计算的,比如电话号码或者电子邮件地址。当用户通过ACESS的用户界面创建表时,用户有两种基本的文本类型:文本(TEXT)和备注(MEMO)。但是通过SQL语句如CREATE TABLE或者 ALTER TABLE 来创建表时,则还有其他许多的TEXT 和 MEMO类型的同义字可供选择。 </p>
                <p>总的来说,文本域最多可以有255个字符,而备注域则最多可以有65,535 个字符,但是如果备注域不包含任何二进制数据的话,其唯一的限制就是整个数据库的最大容量(大概是2.14GB 或 1,070,000,000 双字节字符)。另外,没有用到的文本与部分并不会保存在内存中。 </p>
                <p>下面的表格列示了最基本的Jet 文本数据类型,它的同义字以及所分配的字节数。 </p>
                <p>Jet 数据类型 <br>
                  同义字 <br>
                  存储容量 </p>
                <p>TEXT(文本) <br>
                  TEXT, TEXT(n), CHAR, CHAR(n), ALPHANUMERIC, ALPHANUMERIC(n), STRING, STRING(n), VARCHAR, VARCHAR(n), NTEXT(n), NCHAR, NCHAR(n), CHAR VARYING, CHAR VARYING(n), CHARACTER VARYING, CHARACTER VARYING(n), NATIONAL CHAR, NATIONAL CHAR(n), NATIONAL CHARACTER, NATIONAL CHARACTER(n), NATIONAL CHAR VARYING, NATIONAL CHAR VARYING(n), NATIONAL CHARACTER VARYING, NATIONAL CHARACTER VARYING(n) <br>
                  最多可以有255个字符,每个字符两个子节(如果不进行压缩)。 </p>
                <p>MEMO(备注) <br>
                  LONGTEXT, LONGCHAR, 注意, NTEXT <br>
                  65,535 个字符;如果非二进制数据可以有2.14 GB <br>
                </p>
                <p>下面的CREATE TABLE语句示范了可以用来通过Access SQL View用户界面创建表的TEXT 和MEMO的不同形式的同义词。 </p>
                <p>CREATE TABLE tblUITextDataTypes ( <br>
                  Field1_TEXT TEXT, <br>
                  Field2_TEXT25 TEXT(25), <br>
                  Field3_MEMO MEMO, <br>
                  Field4_CHAR CHAR, <br>
                  Field5_CHAR25 CHAR(25), <br>
                  Field6_LONGTEXT LONGTEXT, <br>
                  Field7_LONGCHAR LONGCHAR, <br>
                  Field8_ALPHA ALPHANUMERIC, <br>
                  Field9_ALPHA25 ALPHANUMERIC(25), <br>
                  Field10_STRING STRING, <br>
                  Field11_STRING25 STRING(25), <br>
                  Field12_VARCHAR VARCHAR, <br>
                  Field13_VARCHAR25 VARCHAR(25), <br>
                  Field14_NOTE NOTE) <br>
                </p>
                <p>如果用户通过Access的用户界面察看上面的tblUITextDataTypes表的设计的话,将会看到MEMO、 LONGTEXT、 LONGCHAR、和注意同义字都是MEMO 的数据类型,其他的所有同义字都是TEXT数据类型。对于那些没有定义长度的TEXT 数据类型,缺省的长度为255个字符。 </p>
                <p>虽说上面的SQL语句也可以通过Jet OLE DB provider和 ADO来执行,但还是有一些其他的TEXT 和MEMO 数据类型的不同定义只能通过Jet OLE DB provider 和ADO来执行。 </p>
                <p>CREATE TABLE tblCodeTextDataTypes <br>
                  Field1_NTEXT NTEXT, <br>
                  Field2_NTEXT25 NTEXT(25), <br>
                  Field3_NCHAR NCHAR, <br>
                  Field4_NCHAR NCHAR(25), <br>
                  Field5_VARYING CHAR VARYING, <br>
                  Field6_VARYING CHAR VARYING(25), <br>
                  Field7_VARYING CHARACTER VARYING, <br>
                  Field8_VARYING CHARACTER VARYING(25), <br>
                  Field9_NATIONAL NATIONAL CHAR, <br>
                  Field10_NATIONAL NATIONAL CHAR(25), <br>
                  Field11_NATIONAL NATIONAL CHARACTER, <br>
                  Field12_NATIONAL NATIONAL CHARACTER(25), <br>
                  Field13_NATIONAL NATIONAL CHAR VARYING, <br>
                  Field14_NATIONAL NATIONAL CHAR VARYING(25), <br>
                  Field15_NATIONAL NATIONAL CHARACTER VARYING, <br>
                  Field16_NATIONAL NATIONAL CHARACTER VARYING(25)) <br>
                </p>
                <p>如果用户通过Access的用户界面察看上面的tblUITextDataTypes表的设计的话,将会看到只有NCHAR数据类型是MEMO,其他的都是TEXT数据类型。对于那些没有定义长度的TEXT 数据类型,缺省的长度为255个字符。 </p>
                <p>注意: 在上面的SQL语句中列示的这些数据类型只能通过Jet OLE DB provider 和ADO来执行,在Access SQL View的用户界面中使用将导致错误信息。还要注意如果通过Jet OLE DB provider和 ADO创建了一个TEXT数据类型的域,则通过Access用户界面看到的将是MEMO的数据类型。 </p>
                <p>Unicode压缩 </p>
                <p>现在在Microsoft Jet 4.0 数据引擎中,所有的TEXT数据类型都是以两个字节的统一编码形式存储的。它取代了前面版本中采用的多字节字符集(Multi-byte Character Set ,MBCS)格式。虽然双字节的格式需要更多的空间来存储每个字符,但可以定义使用TEXT数据类型的自动进行压缩。 </p>
                <p>在用户使用SQL建立的TEXT的数据类型时,双字节编码的压缩属性缺省设置为NO,如果需要将该属性设置为Yes,用户可以在定义域的时候使用WITHCOMPRESSION (或者 WITH COMP)关键字。 </p>
                <p>下面的CREATE TABLE 语句将创建一个新的顾客表,这里将双字节编码的压缩属性设置为Yes。 </p>
                <p>CREATE TABLE tblCompressedCustomers ( <br>
                  CustomerID INTEGER CONSTRAINT <br>
                  PK_tblCompCustomers PRIMARY KEY, <br>
                  [Last Name] TEXT(50) WITH COMP NOT NULL, <br>
                  [First Name] TEXT(50) WITH COMPRESSION NOT NULL, <br>
                  Phone TEXT(10), <br>
                  Email TEXT(50), <br>
                  Address TEXT(40) DEFAULT Unknown) </p>
                <p>&nbsp;</p>
                <p>注意WITH COMPRESSION 和WITH COMP关键字要在NOT NULL之前定义。用户也可以使用ALTER TABLE语句改变现存域的双字节编码的压缩属性,如下所示: </p>
                <p>ALTER TABLE tblCustomers <br>
                  ALTER COLUMN [Last Name] TEXT(50) WITH COMPRESSION <br>
                </p>
                <p>注意: 在上面的SQL语句中列示的WITH COMPRESSION and WITH COMP关键字只能通过Jet OLE DB provider 和ADO来执行,在Access SQL View的用户界面中使用将导致错误信息。 </p>
                <p>在用户设计数据表时采取那种数据类型取决于用户的应用程序的目的。如果该应用程序总是应用在Jet数据库的基础上,则应该使用最适宜的那些数据类型。但如果该应用程序最终要用到ODBC-compliant的数据库上,比如SQL Server 或 MSDE,则要使用那些是一致最方便的数据类型。 <br>
                </p>
                <p>数字( NUMERIC)数据类型 <br>
                  数字(NUMERIC)数据类型是用来定义存储计算用数字的域的。通常,将某种NUMERIC类型与其他的区别开来的是用来存储数据的字节数,它也影响着所存储数字的精度。许多Jet SQL 的数据类型豆油协同义字可以用来进行定义,到底使用哪一个取决于该数据表是仅在某个Jet数据库中还是将移植到诸如Microsoft SQL Server的数据库服务器中。如果将进行移植,用户应选择那些使得移植最容易进行的数据类型。 </p>
                <p>下面的表格列示了基本的Jet NUMERIC数据类型,它的各种同义字以及为期分配的字节数。 </p>
                <p>Jet 数据类型 <br>
                  同义字 <br>
                  存储大小 </p>
                <p>TINYINT <br>
                  INTEGER1, BYTE <br>
                  1 byte </p>
                <p>SMALLINT <br>
                  SHORT, INTEGER2 <br>
                  2 bytes </p>
                <p>INTEGER <br>
                  LONG, INT, INTEGER4 <br>
                  4 bytes </p>
                <p>REAL <br>
                  SINGLE, FLOAT4, IEEESINGLE <br>
                  4 bytes </p>
                <p>FLOAT <br>
                  DOUBLE, FLOAT8, IEEEDOUBLE, NUMBER <br>
                  8 bytes </p>

⌨️ 快捷键说明

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