关于Access数据库中的数据类型与Access项⽬中的数据类型的
不同之处[转]
⾃officeOnline
关于 Access 数据库数据类型
根据以下条件决定字段应使⽤哪种数据类型(数据类型:决定字段可拥有的数据类型的字段特征。数据类型包括 Boolean、Integer、Long、Currency、Single、Double、Date、String 和 Variant(默认)。):
字段中允许哪些类型数据?例如,不能在“数字”数据类型中存储⽂本。
字段值使⽤多少存储空间?
准备对字段值采取哪些操作?例如,Microsoft Access 能汇总“数字”或“货币”字段的值,⽽不能汇总“⽂本” (text 数据类型:Microsoft Access 数据库中的⼀种字段数据类型。text 数据类型最多可以包含 255 个字符,或者是由 FieldSize 属性指定的⼀个⼩⼀些的字符数。)或 OLE 对象(“OLE 对象”数据类型:字段的数据类型之⼀,⽤于在其他应⽤程序中创建的、可链接或嵌⼊(插⼊)到 Access 数据库中的对象。)字段。
是否要对⼀个字段进⾏排序或者索引(索引:⼀种功能,可以加速根据键值在表中进⾏的搜索和排序,并可使表中的⾏实现单值性。
表中的主键是⾃动编制索引的。有些字段由于其数据类型的原因⽽⽆法编制索引。)?OLE 对象字段不能进⾏索引。
是否使⽤⼀个字段在查询或报表中分组记录?OLE 对象字段不能⽤于分组记录。
准备如何对字段值进⾏排序?在“⽂本”字段中,数字作为字符串排序(1、10、100、2、20、200 等等),⽽不是作为数字值。使⽤“数字”或“货币”字段按数字⼤⼩排序数字。同时,在“⽂本”字段中,许多格式不能正确排序。使⽤ Date/Time 字段以确保正确地排序。
是否需要存储在其他程序中创建的 Microsoft Word 或 Microsoft Excel ⽂档、图⽚、声⾳和其他⼆进制数据类型?OLE 对象可以链接(OLE/DDE 链接:OLE 对象及其 OLE 服务器之间,或动态数据交换 (DDE) 的源⽂档与⽬标⽂档之间的⼀种连接。)到或者嵌⼊(嵌⼊:⽤于插⼊来⾃其他应⽤程序的 OLE 对象的副本。源对象称为 OLE 服务器端,可以是任意⽀持链接和嵌⼊对象的应⽤程序。对嵌⼊式对象的更改不会反映在原对象中。) Microsoft Access 表的 OLE 对象字段中。要显⽰ OLE 对象,在窗体或报表中使⽤控件(控件:允许⽤户控制程序的图形⽤户界⾯对象,如⽂本框、复选框、滚动条或命令按钮等。可使⽤控件显⽰数据或选项、执⾏操作或使⽤户界⾯更易阅读。)。
access和office哪个好考
在“⽂本”或“备注”字段中选择
Microsoft Access 提供两种字段数据类型(字段数据类型:决定可以存储哪种数据的字段特征。例如,数据类型为“⽂本”的字段可以存储由⽂本或数字字符组成的数据,⽽“数字”字段只能存储数值数据。)以存储⽂本或数字,或两者的组合:“⽂本”和“备注”。
使⽤“⽂本”数据类型存储如名称、地址和任何不需计算的数字,如电话号码、部件编号或者。“⽂本”字段能存储最多 255 个字符,但默认字段⼤⼩是 50 个字符。“字段⼤⼩”属性控制可以输⼊“⽂本”字段的最⼤字符个数。
如果需要存储超过 255 个字符,应使⽤“备注”数据类型。“备注”最多可以存储 65,536 个字符。如果要存储带格式⽂本或长⽂档,可以创建OLE 对象字段代替“备注”字段。
“⽂本”和“备注”数据类型存储输⼊到⼀个字段中的值;不存储字段中没⽤的部分的空⽩字符。
可以对“⽂本”或者“备注”字段进⾏分组和排序,但 Access 只使⽤“备注”字段的前 255 个字符进⾏分组和排序。
在“数字”或“货币”字段中选择
Microsoft Access 提供两种字段数据类型(字段数据类型:决定可以存储哪种数据的字段特征。例如,数据类型为“⽂本”的字段可以存储由⽂本或数字字符组成的数据,⽽“数字”字段只能存储数值数据。)存储数字值数据:“数字”和“货币”。
使⽤“数字”字段存储⽤于数学计算(除了涉及货币和要求⾼精度的计算)的数字数据,能存储在“数字”字段的数字值的类型和⼤⼩通过设
置“字段⼤⼩”属性控制。例如,Byte 字段⼤⼩只能存储从 0 到 255 的数字(没有⼩数)且占据 1 个字节空间。
使⽤“货币”字段能避免计算中的舍⼊。⼀个“货币”字段能精确到⼩数点左侧 15 位和⼩数点右侧 4 位数字。⼀个“货币”字段占据 8 个字节空间。
“数字”和“货币”字段提供预定义的显⽰格式(格式:指定数据的显⽰⽅式和打印⽅式。Access 数据库为特定的数据类型提供了标准格式,同时 Access 对象也为其相对应的 SQL 数据类型提供了标准格式。⽤户也可以⾃定义格式。),也可以创建⾃定义格式。
在递增或随机“⾃动编号”字段中选择
Microsoft Access 提供“⾃动编号”数据类型创建当添加记录时⾃动输⼊唯⼀编号的字段。记录编号⽣成之
后,就不能删除或者更改。“⾃动编号”字段可以⽣成三种编号:每次加⼀的顺序编号、随机编号和同步复制 ID(也称 GUID——全局唯⼀标志符)编号。每次加⼀的“⾃动编号”是最普通的⾃动编号且适合⽤作主键(主键:具有唯⼀标识表中每条记录的值的⼀个或多个域(列)。主键不允许为 Null,并且必须始终具有唯⼀索引。主键⽤来将表与其他表中的外键相关联。)。随机⾃动编号对表中每⼀记录⽣成⼀个唯⼀的随机数。同步复制 ID ⾃动编号⽤于数据库同步复制(数据库同步复制:创建 Access 数据库的两个或更多特殊副本的过程。副本可同步化,即⼀个副本中数据的更改,或“设计母版”中设计的更改,均被送到其他副本中。),⽣成⽤于同步副本(副本:属于⼀个副本集并且可与该集合中其他副本同步的⼀个
数据库副本。在⼀个副本中对复制的表的数据所做的更改会发送并应⽤到其他副本。)的唯⼀标志符。
关于 Access 项⽬ (SQL Server) 数据类型
包含数据的对象都拥有⼀个相关的数据类型,该数据类型定义了对象能够包含的数据(字符、整数、⼆进制数等)的类型。下述对象拥有数据类型:
表和视图中的列。
存储过程中的参数。
变量。
返回⼀个或多个指定数据类型的数据值的 Transact-SQL 函数。
拥有返回代码的存储过程,该存储过程总是拥有⼀个整型数据类型。
如果将数据类型指定给对象,则会定义对象的四个属性:
对象包含的数据的种类。例如,字符、整数或⼆进制。
存储值的长度,即⼤⼩。图像、⼆进制以及 varbinary 数据类型的长度是以字节为单位定义的。任何数字数据类型的长度都是字节数,即容纳该数据类型所允许的数字位数所必需的字节数。字符串和 Unicode 数据类型的长度是按字符定义的。
数字的精度(仅适⽤于数字数据类型)。该精度是数字可以包含的数字位数。例如,smallint 对象最多可以包含 5 位:它拥有 5 位的精度。
数字的⼩数位数(仅适⽤于数字数据类型)。该⼩数位数是⼩数点右侧可以存储的⼩数数字的个数。例如,int 对象不接受⼩数点,其⼩数位数为 0。货币对象在⼩数点右侧最多可有 4 位数字,则⼩数位数为 4。
例如,如果将对象定义为 money,则其最多包含 19 位,其中⼩数点右侧可以为 4 位。该对象⽤ 8 个字节来存储数据。因此,money 数据类型精度为 19,⼩数位数为 4,长度为 8 个字节。
存储在 SQL Server 中的所有数据必须与这些基本数据类型中的⼀种兼容。光标类型是唯⼀的不能指定给表列的基本数据类型。它仅⽤于变量和存储过程参数。
也可以创建⽤户定义数据类型,例如:
-- Create a birthday datetype that allows nulls.
EXEC sp_addtype birthday, datetime, 'NULL'
-- Create a table using the new data type.
CREATE TABLE employee
emp_id char(5)
emp_first_name char(30)
emp_last_name char(40)
emp_birthday birthday
⽤户定义的数据类型总是根据基本数据类型定义的。它们能够为数据类型应⽤⼀个名称,该名称可以更好地描述对象存放的值的类型。这更便于程序员或数据库管理员理解任何使⽤该数据类型定义的对象的预期⽤途。
Access 数据库和 Access 项⽬之间的数据类型的⽐较或映射
下表⽐较了 Microsoft Access 数据库(Microsoft Access 数据库:数据和对象(如表、查询或窗体)组成的集合,与特定的主题或⽤途有关。)和 Microsoft Access 项⽬(Microsoft Access 项⽬:与 Microsoft SQL Server 数据库连接且⽤于创建客户/服务器应⽤程序的 Access ⽂件。项⽬⽂件中不包含任何数据或基于数据定义的对象(如表或视图)。)的数据类型(数据类型:决定字段可拥有的数据类型的字段特征。数据类型包括 Boolean、Integer、Long、Currency、Single、Double、Date、String 和 Variant(默认)。)。
Microsoft Access 数据类型SQL Server 数据类型
是/否(“是/否”数据类型:⼀种字段数据类型,⽤于只有两种可能值(如是或否、True 或 False)的字段。不允许有Null 值。)bit (bit 数据类型:在 Access 项⽬中,⼀种存储值为 1 或 0 的数据类型。接受1 和 0 以外的整数值,但总是将其解释为 1。)
数字(“数字”数据类型:Microsoft Access 数据库中的⼀
种字段数据类型,⽤于将在数学运算中使⽤的数值数据。但是,若要显⽰或计算货币值,则应使⽤“货币”数据类型。)(字节)tinyint (tinyint 数据类型:Access 项⽬中的⼀种占⼀个字节(8 位)的数据类型,⽤于存储从 0 到 255 范围内的整数。)
数字(整型)smallint (smallint 数据类型:Access 项⽬中的⼀种 2 字节(16 位)数据类型,存储位于 -2^15 (-32,768) 与 2^15 - 1 (32,767) 之间的数字。)
数字(长整型)int (int 数据类型:Access 项⽬中的⼀种 4 字节(32 位)数据类型,存储位于 -2^31 (-2,147,483,648) 与 2^31 - 1 (2,147,483,647) 之间的数字。)
数字(单精度浮点型)real (real 数据类型:在 Access 项⽬中,⼀种近似的数值数据类型,精度为 7位,正值取值范围⼤致从 1.18E - 38 到 3.40E + 38,负值取值范围⼤致从 -1.18E - 38 到 -3.40E + 38,也可以取 0。)
(⽆等价的数据类型)bigint (bigint 数据类型:Access 项⽬中的⼀种 8 字节(64 位)数据类型,存储位于 -2^63 (-9,223,372,036,854,775,808) 与 2^63-1
(9,223,372,036,854,775,807) 之间的数字。)
float (float 数据类型:在 Access 项⽬中,⼀种近似的数值数据类型,精度为
数字(双精度浮点型)15 位。它所存储的正值范围⼤致是从 2.23E - 308 到 1.79E + 308,负值范围⼤
致是从 - 2.23E - 308 到 -1.79E + 308,也可以为 0。)
货币(“货币”数据类型:Microsoft Access 数据库中的⼀种数据类型,⽤于与货币有关的计算或其精确度极其重要的定点计算。)money (money 数据类型:在 Access 项⽬中,⽤于存储货币值的数据类型,取值范围从 - 922,337,203,685,477.5707 到 922,337,203,685,477.5807,精确度为万分之⼀个货币单位。)
smallmoney (smallmoney 数据类型:Access 项⽬中的⼀种存储货币值的数据类型,取值范围从 -214,748.3648 到 214,748.3647,精确度为万分之⼀个货币单位。当显⽰ smallmoney 值时,会将它们四舍五⼊为两个⼩数位。)
⼩数/数值(decimal 数据类型(Access 数据库):精确的数值数据类型,⽤于存储 -10^28 -1 到 10^28 -1 的值。可以指定数值范围(最⼤总位数)和精度(⼩数点右边的最⼤位数)。)decimal (decimal 数据类型(Access 项⽬):精确的数值数据类型,⽤于存储-10^38 -1 到 10^38 -1 的值。可以指定数值范围(最⼤总位数)和精度(⼩数点右边的最⼤位数)。)
numeric (numeric 数据类型:在 Access 项⽬中,⼀种精确的数值数据类型,取值从 -10^38 -1 到 10^38 - 1。可以指定数值范围(最⼤总位数)和精度(⼩数点右边的最⼤位数)。)
⽇期/时间(“⽇期/时间”数据类型:Access 数据库的⼀种数据类型,⽤来存放⽇期和时间信息。)datetime (datetime 数据类型:在 Access 项⽬中,⽇期和时间的数据类型,范围从 1753 年 1 ⽉ 1 ⽇到 9999 年 12 ⽉ 31 ⽇,精确度为三百分之⼀秒,即 3.33毫秒。)
smalldatetime (smalldatetime 数据类型:Access 项⽬中的⼀种⽇期和时间数据类型,精度不如 datetime 时间数据类型。数据取值范围从 1900 年 1 ⽉ 1 ⽇到2079 年 6 ⽉ 6 ⽇,精确度为⼀分钟。)
⾃动编号(“⾃动编号”数据类型:Microsoft Access 数据
库中的⼀种字段数据类型,当向表中添加⼀条新记录时,这种数据类型会⾃动为每条记录存储⼀个唯⼀的编号。可以产⽣三种编号:顺序号、随机号和同步复制 ID。)(递增)int (int 数据类型:Access 项⽬中的⼀种 4 字节(32 位)数据类型,存储位于 -2^31 (-2,147,483,648) 与 2^31 - 1 (2,147,483,647) 之间的数字。)(定义了Identity 属性)
⽂本(text 数据类型:Microsoft Access 数据库中的⼀种字段数据类型。text 数据类型最多可以包含 255 个字符,或者是由 FieldSize 属性指定的⼀个⼩⼀些的字符数。)(n)varchar(n) (varchar (n) 数据类型: Access 项⽬中的⼀种可变长度的数据类型,最⼤长度为 8,000 个 ANSI 字符。)
nvarchar(n) (nvarchar(n) 数据类型:在 Access 项⽬中,⼀种可变长度的数据类型,最多可含 4,000 个 Unicode 字符。Unicode 字符每字符占两个字节,⽽且⽀持所有国际字符。)
备注(“备注”数据类型:在 Microsoft Access 数据库中的⼀种字段数据类型。“备注”字段最多可以包含 65,535 个字符。)text (text 数据类型:Access 项⽬中的⼀种长度可变的数据类型,最多可存储2^31 -1 (2,147,483,647) 个字符;默认长度为 16。)
OLE 对象(“OLE 对象”数据类型:字段的数据类型之⼀,⽤于在其他应⽤程序中创建的、可链接或嵌⼊(插⼊)到Access 数据库中的对象。)image (image 数据类型:在 Access 项⽬中,⼀种长度可变的数据类型,最多可存储 2^31 -1 (2,147,483,647) 字节的⼆进制数据。image 数据类型⽤来存储BLOB(⼆进制⼤对象),如图⽚、⽂档、声⾳和已编译代码。)
同步复制 ID(⼜名全局唯⼀标识符(GUID:在 Access
数据库中,⼀种⽤于建⽴同步复制唯⼀标识符的 16 字节字段。GUID ⽤于标识副本、副本集、表、记录和其他对象。在 Access 数据库中,GUID 是指同步复制 ID。)(GUID))uniqueidentifier (uniqueidentifier 数据类型:在 Access 项⽬中,16 字节的全局唯⼀标识符 (GUID)。)(仅适于 SQL Server 7.0 或更⾼版本)
超链接(“超链接”数据类型:存储超链接地址的 Access 数据库字段的数据类型。地址最多可以包含四部分,⽤以下语法格式编写:displaytext#address#subaddress#。)char (char 数据类型:在 Access 项⽬中,⼀种固定长度的数据类型,最多可含8,000 个 ANSI 字符。), nchar (nchar 数据类型:在 Access 项⽬中,⼀种固定长度的数据类型,最多可含 4,000 个 Unicode 字符。Unicode 字符每字符占两个字节,⽽且⽀持所有国际字符。), varchar, nvarchar(Hyperlink 属性设为Yes)
(⽆等价的数据类型)varbinary (varbinary 数据类型:Access 项⽬中的⼀种可变长度的数据类型,最多可存储 8,000 字节的⼆进制数据。)
(⽆等价的数据类型)smallint (smallint 数据类型:Access 项⽬中的⼀种 2 字节(16 位)数据类型,存储位于 -2^15 (-32,768) 与 2^15 - 1 (32,767) 之间的数字。)
(⽆等价的数据类型)timestamp (timestamp 数据类型:在 Access 项⽬中,⼀种每插⼊或更新⼀⾏就会⾃动更新的数据类型。timestamp 列中的值不是 datetime 数据,⽽是binary(8) 或 varbinary(8),标明了数据修改的顺序。)
(⽆等价的数据类型)
char
nchar
(⽆等价的数据类型)sql_variant (sql_variant 数据类型:Access 项⽬中的⼀种数据类型,存储除text、ntext、image、timestamp 和 sql_variant 类型以外的多种数据类型的值。在列、参数、变量或⽤户定义函数的返回值中使⽤。)
(⽆等价的数据类型)⽤户定义(⽤户定义的数据类型:在 Microsoft SQL Server 数据库中,允许某列包含的数据的类型定义,由⽤户利⽤现有的系统数据类型定义。规则和默认值仅可以绑定到⽤户定义的数据类型。)
注释在 Access 项⽬或 SQL Server 数据库中,前缀“n”代表“国家/地区”,意思是这个数据类型是启⽤ Unicode 的。在 Access 数据库中,全部⽂本列在默认情况下都是启⽤ Unicode 的。