Nothing 2006-9-25 23:57
对了,有些数据结构Access和SQL不一样,可以对应一下
[table=98%][tr][td][size=2]等效的 ANSI SQL 数据类型[/size][size=2]下列表列出了 ANSI SQL 数据类型和等效的 Microsoft Jet 数据库引擎 SQL数据类型还有它们的有效同义字。并且列出了 等效的 Microsoft SQL服务器数据类型。[/size]
[table][tr][size=2]ANSI SQL
的数据类型[/size][size=2]Microsoft Jet
SQL 的数据类型[/size]
[size=2]同义字[/size][size=2]Microsoft SQL
服务器数据类型[/size][/tr][tr][td=1,1,20%][size=2]BIT,BIT VARYING[/size][/td][td=1,1,27%][size=2]BINARY(请参阅注意)[/size][/td][td=1,1,25%][size=2]VARBINARY,
BINARY VARYING
BIT VARYING[/size][/td][td=1,1,28%][size=2]BINARY, VARBINARY[/size][/td][/tr][tr][td=1,1,20%][size=2]不支持[/size][/td][td=1,1,27%][size=2]BIT(请参阅注意)[/size][/td][td=1,1,25%][size=2]BOOLEAN,LOGICAL,LOGICAL1,YESNO[/size][/td][td=1,1,28%][size=2]BIT[/size][/td][/tr][tr][td=1,1,20%][size=2]不支持[/size][/td][td=1,1,27%][size=2]TINYINT[/size][/td][td=1,1,25%][size=2]INTEGER2,SMALLINT[/size][/td][td=1,1,28%][size=2]TINYINT[/size][/td][/tr][tr][td=1,1,20%][size=2]不支持[/size][/td][td=1,1,27%][size=2]COUNTER(参见注意)[/size][/td][td=1,1,25%][size=2]AUTOINCREMENT[/size][/td][td=1,1,28%][size=2](参见注意)[/size][/td][/tr][tr][td=1,1,20%][size=2]不支持[/size][/td][td=1,1,27%][size=2]MONEY[/size][/td][td=1,1,25%][size=2]CURRENCY[/size][/td][td=1,1,28%][size=2]MONEY[/size][/td][/tr][tr][td=1,1,20%][size=2]DATE,TIME,TIMESTAMP[/size][/td][td=1,1,27%][size=2]DATETIME[/size][/td][td=1,1,25%][size=2]DATE, TIME (参见注意)[/size][/td][td=1,1,28%][size=2]DATETIME[/size][/td][/tr][tr][td=1,1,20%][size=2]不支持[/size][/td][td=1,1,27%][size=2]UNIQUEIDENTIFIER[/size][/td][td=1,1,25%][size=2]GUID[/size][/td][td=1,1,28%][size=2]UNIQUEIDENTIFIER[/size][/td][/tr][tr][td=1,1,20%][size=2]DECIMAL[/size][/td][td=1,1,27%][size=2]DECIMAL[/size][/td][td=1,1,25%][size=2]NUMERIC, DEC[/size][/td][td=1,1,28%][size=2]DECIMAL[/size][/td][/tr][tr][td=1,1,20%][size=2]REAL[/size][/td][td=1,1,27%][size=2]REAL[/size][/td][td=1,1,25%][size=2]SINGLE, FLOAT4, IEEESINGLE [/size][/td][td=1,1,28%][size=2]REAL[/size][/td][/tr][tr][td=1,1,20%][size=2]DOUBLE PRECISION,FLOAT[/size][/td][td=1,1,27%][size=2]FLOAT[/size][/td][td=1,1,25%][size=2]DOUBLE, FLOAT8, IEEEDOUBLE, NUMBER (参见注意)[/size][/td][td=1,1,28%][size=2]FLOAT[/size][/td][/tr][tr][td=1,1,20%][size=2]SMALLINT[/size][/td][td=1,1,27%][size=2]SMALLINT[/size][/td][td=1,1,25%][size=2]SHORT, INTEGER2 [/size][/td][td=1,1,28%][size=2]SMALLINT[/size][/td][/tr][tr][td=1,1,20%][size=2]INTEGER[/size][/td][td=1,1,27%][size=2]INTEGER[/size][/td][td=1,1,25%][size=2]LONG, INT, INTEGER4[/size][/td][td=1,1,28%][size=2]INTEGER[/size][/td][/tr][tr][td=1,1,20%][size=2]INTERVAL[/size][/td][td=1,1,27%][size=2]不支持[/size][/td][td=1,1,25%] [/td][td=1,1,28%][size=2]不支持[/size][/td][/tr][tr][td=1,1,20%][size=2]不支持[/size][/td][td=1,1,27%][size=2]IMAGE[/size][/td][td=1,1,25%][size=2]LONGBINARY, GENERAL, OLEOBJECT[/size][/td][td=1,1,28%][size=2]IMAGE[/size][/td][/tr][tr][td=1,1,20%][size=2]不支持[/size][/td][td=1,1,27%][size=2]TEXT (参见注意)[/size][/td][td=1,1,25%][size=2]LONGTEXT, LONGCHAR, MEMO, NOTE, NTEXT (参见注意)[/size][/td][td=1,1,28%][size=2]TEXT[/size][/td][/tr][tr][td=1,1,20%][size=2]CHARACTER, CHARACTER VARYING, NATIONAL CHARACTER, NATIONAL CHARACTER VARYING[/size][/td][td=1,1,27%][size=2]CHAR (参见注意)[/size][/td][td=1,1,25%][size=2]TEXT(n), ALPHANUMERIC, CHARACTER, STRING, VARCHAR, CHARACTER VARYING, NCHAR, NATIONAL CHARACTER, NATIONAL CHAR, NATIONAL CHARACTER VARYING, NATIONAL CHAR VARYING (参见注意)[/size][/td][td=1,1,28%][size=2]CHAR, VARCHAR, NCHAR, NVARCHAR[/size][/td][/tr][/table]
[size=2][b]注意[/b] [/size]
[list][*][size=2]ANSI SQL BIT数据类型与 the Microsoft Jet SQL BIT 数据类型不对应。而与 BINARY 数据类型对应。ANSI SQL 并没有等效于 Microsoft Jet SQL 的 BIT 的数据类型。 [/size][*][size=2]TIMESTAMP不再作为DATETIME的同义字被支持。 [/size][*][size=2]NUMERIC 不再作为 FLOAT或 DOUBLE的同义字被支持。NUMERIC现在被用作DECIMAL的同义字。 [/size][*][size=2]LONGTEXT字段总被储存于 Unicode 表示格式. [/size][*][size=2]如果数据类型名 TEXT被使用而未说明任选长度,例如 TEXT(25), LONGTEXT字段会被创建。这使得 [u]CREATE TABLE 语句[/u]能被写成让数据类型同 Microsoft SQL 服务器保持一致。 [/size][*][size=2]CHAR字段总被储存于 Unicode 表示格式,和 ANSI SQL NATIONAL CHAR 数据类型等效。 [/size][*][size=2]如果数据类型名 TEXT 被使用而未说明任选长度,例如 TEXT(25),则这一字段的数据类型与 CHAR 数据类型等效。这样既保持了对 Microsoft Jet应用程序的向后兼容,又使 TEXT 数据类型(没有长度说明) 能用 Microsoft SQL服务器定位。 [/size][/list]
[/td][/tr][/table]
[size=2]JET SQL 数据类型参考 [/size]
[table=98%][tr][td]
[size=2]SQL 数据类型[/size][size=2]Microsoft Jet 数据库引擎 SQL 数据类型 由13个基本数据类型组成,它们是由 Microsoft Jet 数据库引擎和几个验证过的有效同义字定义的。[/size]
[size=2]下面的表格列出了主要数据类型。这些同义字在 [u]Microsoft Jet 数据库引擎[/u] SQL 保留字中被识别。[/size]
[table=98%][tr][size=2]数据类型[/size][size=2]存储大小[/size][size=2]说明[/size][/tr][tr][td=1,1,28%][size=2]BINARY[/size][/td][td=1,1,27%][size=2]每个字符占一个字节[/size][/td][td=1,1,45%][size=2]任何类型的数据都可存储在这种类型的字段中。不需数据转换(例如,转换到文本数据)。数据输入二进制字段的方式决定了它的输出方式。[/size][/td][/tr][tr][td=1,1,28%][size=2]BIT[/size][/td][td=1,1,27%][size=2]1 个字节[/size][/td][td=1,1,45%][size=2]Yes 和 No ,以及只包含这两个数值之一的字段。[/size][/td][/tr][tr][td=1,1,28%][size=2]TINYINT[/size][/td][td=1,1,27%][size=2]1 个字节[/size][/td][td=1,1,45%][size=2]介于 0 到 255 之间的整型数。[/size][/td][/tr][tr][td=1,1,28%][size=2]MONEY[/size][/td][td=1,1,27%][size=2]8 个字节[/size][/td][td=1,1,45%][size=2]介于 –922,337,203,685,477.5808 到 922,337,203,685,477.5807 之间的符号整数。[/size][/td][/tr][tr][td=1,1,28%][size=2]DATETIME
(清参阅 DOUBLE )[/size][/td][td=1,1,27%][size=2]8 个字节[/size][/td][td=1,1,45%][size=2]介于 100 到 9999 年的日期或时间数值。[/size][/td][/tr][tr][td=1,1,28%][size=2]UNIQUEIDENTIFIER[/size][/td][td=1,1,27%][size=2]128 个位[/size][/td][td=1,1,45%][size=2]用于远程过程调用的唯一识别数字。[/size][/td][/tr][tr][td=1,1,28%][size=2]REAL[/size][/td][td=1,1,27%][size=2]4 个字节[/size][/td][td=1,1,45%][size=2]单精度浮点数,负数范围是从 –3.402823E38 到 –1.401298E-45,正数从1.401298E-45 到 3.402823E38,和 0。[/size][/td][/tr][tr][td=1,1,28%][size=2]FLOAT[/size][/td][td=1,1,27%][size=2]8 个字节[/size][/td][td=1,1,45%][size=2]双精度浮点数,负数范围是从 –1.79769313486232E308 到 –4.94065645841247E-324,正数从 4.94065645841247E-324 到 1.79769313486232E308,和 0。[/size][/td][/tr][tr][td=1,1,28%][size=2]SMALLINT[/size][/td][td=1,1,27%][size=2]2 个字节[/size][/td][td=1,1,45%][size=2]介于 –32,768 到 32,767 的短整型数。[/size][/td][/tr][tr][td=1,1,28%][size=2]INTEGER[/size][/td][td=1,1,27%][size=2]4 个字节[/size][/td][td=1,1,45%][size=2]介于 –2,147,483,648 到 2,147,483,647 的长整型数。[/size][/td][/tr][tr][td=1,1,28%][size=2]DECIMAL[/size][/td][td=1,1,27%][size=2]17 个字节[/size][/td][td=1,1,45%][size=2]容纳从 1028 - 1到 - 1028 - 1. 的值的精确的数字数据类型。你可以定义精度 (1 - 28) 和 符号 (0 - 定义精度)。缺省精度和符号分别是18和0。[/size][/td][/tr][tr][td=1,1,28%][size=2]TEXT[/size][/td][td=1,1,27%][size=2]每一字符两字节(参见注意)[/size][/td][td=1,1,45%][size=2]从零到最大 2,14 千兆字节。 [/size][/td][/tr][tr][td=1,1,28%][size=2]IMAGE[/size][/td][td=1,1,27%][size=2]视实际需要而定[/size][/td][td=1,1,45%][size=2]从零到最大 2,14 千兆字节。用于 OLE 对象。[/size][/td][/tr][tr][td=1,1,28%][size=2]CHARACTER[/size][/td][td=1,1,27%][size=2]每一字符两字节(参见注意)[/size][/td][td=1,1,45%][size=2]长度从 0 到 255 个字符。 [/size][/td][/tr][/table]
[size=2][b]注意[/b] [/size]
[list][*][size=2]可以用ALTER TABLE 语句修正基数和增量。刚插进表中的行会有自动为基于新种值和增量值的列生成的值。如果新种和增长的值和以前的种值及增量匹配,就会造成复制。如果这个列是主键,复制值生成时可能导致错误。 [/size][*][size=2]定义成TEXT也称作MEMO)或CHAR(也称作有具体长度的 TEXT(n))的字段中的字符被储存在 Unicode 表示格式。Unicode字符一律需要两个字节存储每一字符。对于现有的主要包含字符数据的 Microsoft Jet数据库,这可能意味着数据库文件被转换成 Microsoft Jet 4.0格式时字长会增加将近一倍。然而,从前由单字节字符群(SBCS)指示的众多字符群的Unicode 表示可以很容易地被压缩成一个单字节。 有关的详细信息,参见 CREATE TABLE。如果用COMPRESSION属性定义CHAR列,数据存储时会自动被压缩,提取时解压缩。 [/size][/list][/td][/tr][/table]