tianyu的专栏

-- 宁静致远

Access数据类型

 

关于 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 对象,在窗体或报表中使用控件 (控件:允许用户控制程序的图形用户界面对象,如文本框、复选框、滚动条或命令按钮等。可使用控件显示数据或选项、执行操作或使用户界面更易阅读。)

隐藏在“文本”或“备注”字段中选择

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 值。) Boolean YESNO bit (bit 数据类型:在 Access 项目中,一种存储值为 1 或 0 的数据类型。接受 1 和 0 以外的整数值,但总是将其解释为 1。)
数字 (“数字”数据类型:Microsoft Access 数据库中的一种字段数据类型,用于将在数学运算中使用的数值数据。但是,若要显示或计算货币值,则应使用“货币”数据类型。)(字节) Byte tinyint (tinyint 数据类型:Access 项目中的一种占一个字节(8 位)的数据类型,用于存储从 0 到 255 范围内的整数。)
数字(整型) Integer smallint (smallint 数据类型:Access 项目中的一种 2 字节(16 位)数据类型,存储位于 -2^15 (-32,768) 与 2^15 - 1 (32,767) 之间的数字。)
数字(长整型) Long int (int 数据类型:Access 项目中的一种 4 字节(32 位)数据类型,存储位于 -2^31 (-2,147,483,648) 与 2^31 - 1 (2,147,483,647) 之间的数字。)
数字(单精度浮点型) Single 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 (float 数据类型:在 Access 项目中,一种近似的数值数据类型,精度为 15 位。它所存储的正值范围大致是从 2.23E - 308 到 1.79E + 308,负值范围大致是从 - 2.23E - 308 到 -1.79E + 308,也可以为 0。)

货币 (“货币”数据类型:Microsoft Access 数据库中的一种数据类型,用于与货币有关的计算或其精确度极其重要的定点计算。)

Currency

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^38 -1 到 10^38 -1 的值。可以指定数值范围(最大总位数)和精度(小数点右边的最大位数)。) Decimal decimal (decimal 数据类型(Access 项目):精确的数值数据类型,用于存储 -10^38 -1 到 10^38 -1 的值。可以指定数值范围(最大总位数)和精度(小数点右边的最大位数)。) numeric (numeric 数据类型:在 Access 项目中,一种精确的数值数据类型,取值从 -10^38 -1 到 10^38 - 1。可以指定数值范围(最大总位数)和精度(小数点右边的最大位数)。)
日期/时间 (“日期/时间”数据类型:Access 数据库的一种数据类型,用来存放日期和时间信息。) Date/Time datetime (datetime 数据类型:在 Access 项目中,日期和时间的数据类型,范围从 1753 年 1 月 1 日到 9999 年 12 月 31 日,精确度为三百分之一秒,即 3.33 毫秒。) smalldatetime (smalldatetime 数据类型:Access 项目中的一种日期和时间数据类型,精度不如 datetime 时间数据类型。数据取值范围从 1900 年 1 月 1 日到 2079 年 6 月 6 日,精确度为一分钟。)
自动编号 (“自动编号”数据类型:Microsoft Access 数据库中的一种字段数据类型,当向表中添加一条新记录时,这种数据类型会自动为每条记录存储一个唯一的编号。可以产生三种编号:顺序号、随机号和同步复制 ID。)(递增) autoincrement int (int 数据类型:Access 项目中的一种 4 字节(32 位)数据类型,存储位于 -2^31 (-2,147,483,648) 与 2^31 - 1 (2,147,483,647) 之间的数字。)(定义了 Identity 属性)
文本 (“文本”数据类型:Microsoft Access 数据库中的一种字段数据类型。“文本”数据类型最多可以包含 255 个字符,或者是由 FieldSize 属性指定的一个小一些的字符数。) (n) Text(n)或Char varchar(n) (varchar (n) 数据类型: Access 项目中的一种可变长度的数据类型,最大长度为 8,000 个 ANSI 字符。) nvarchar(n) (nvarchar(n) 数据类型:在 Access 项目中,一种可变长度的数据类型,最多可含 4,000 个 Unicode 字符。Unicode 字符每字符占两个字节,而且支持所有国际字符。)

备注 (“备注”数据类型:在 Microsoft Access 数据库中的一种字段数据类型。“备注”字段最多可以包含 65,535 个字符。)

Memo

text (text 数据类型:Access 项目中的一种长度可变的数据类型,最多可存储 2^31 -1 (2,147,483,647) 个字符;默认长度为 16。)
OLE 对象 (“OLE 对象”数据类型:字段的数据类型之一,用于在其他应用程序中创建的、可链接或嵌入(插入)到 Access 数据库中的对象。) Long Binary image (image 数据类型:在 Access 项目中,一种长度可变的数据类型,最多可存储 2^31 -1 (2,147,483,647) 字节的二进制数据。image 数据类型用来存储 BLOB(二进制大对象),如图片、文档、声音和已编译代码。)
同步复制 ID (又名全局唯一标识符 (GUID:在 Access 数据库中,一种用于建立同步复制唯一标识符的 16 字节字段。GUID 用于标识副本、副本集、表、记录和其他对象。在 Access 数据库中,GUID 是指同步复制 ID。) (GUID)) GUID uniqueidentifier (uniqueidentifier 数据类型:在 Access 项目中,16 字节的全局唯一标识符 (GUID)。) (仅适于 SQL Server 7.0 或更高版本)

超链接 (“超链接”数据类型:存储超链接地址的 Access 数据库字段的数据类型。地址最多可以包含四部分,用以下语法格式编写:displaytext#address#subaddress#。)

Hyperlink

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所有类型为:

Big Integer、Binary、Boolean、Byte、Char、Currency、Date/Time、Decimal、Double、Float、GUID、Integer、Long、Long Binary (OLE Object)、Memo、Numeric、Single、Text、Time、TimeStamp 以及 VarBinary。 

常用的几种:
Date/Time 日期/时间
Boolean 是/否
Decimal 小数
Memo 备注
Text 文本
Integer 整数
==================================================

ALTER TABLE tb ALTER COLUMN aa Byte 数字[字节]
ALTER TABLE tb ALTER COLUMN aa Long 数字[长整型]
ALTER TABLE tb ALTER COLUMN aa Short 数字[整型]
ALTER TABLE tb ALTER COLUMN aa Single 数字[单精度]
ALTER TABLE tb ALTER COLUMN aa Double 数字[双精度]
ALTER TABLE tb ALTER COLUMN aa Currency 货币
ALTER TABLE tb ALTER COLUMN aa Char 文本
ALTER TABLE tb ALTER COLUMN aa Text(n) 文本,其中n表示字段大小
ALTER TABLE tb ALTER COLUMN aa Binary 二进制
ALTER TABLE tb ALTER COLUMN aa Counter 自动编号
ALTER TABLE tb ALTER COLUMN aa Memo 备注
ALTER TABLE tb ALTER COLUMN aa Time 日期/时间

在表的设计视图中,每一个字段都有设计类型,Access允许九种数据类型:文本、备注、数值、日期/时间、货币、自动编号、是/否、OLE对象、超级链接、查询向导。

 文本:这种类型允许最大255个字符或数字,Access默认的大小是50个字符,而且系统只保存输入到字段中的字符,而不保存文本字段中未用位置上的空字符。可以设置“字段大小”属性控制可输入的最大字符长度。
 备注:这种类型用来保存长度较长的文本及数字,它允许字段能够存储长达64000个字符的内容。但Access不能对备注字段进行排序或索引,却可以对文本字段进行排序和索引。在备注字段中虽然可以搜索文本,但却不如在有索引的文本字段中搜索得快。
 数字:这种字段类型可以用来存储进行算术计算的数字数据,用户还可以设置“字段大小”属性定义一个特定的数字类型,任何指定为数字数据类型的字型可以设置成“字节”、“整数”、“长整数”、“单精度数”、“双精度数”、“同步复制ID”、“小数”五种类型。在Access中通常默认为“双精度数”。
日期/时间:这种类型是用来存储日期、时间或日期时间一起的,每个日期/时间字段需要8个字节来存储空间。
 货币:这种类型是数字数据类型的特殊类型,等价于具有双精度属性的数字字段类型。向货币字段输入数据时,不必键入人民币符号和千位处的逗号,Access会自动显示人民币符号和逗号,并添加两位小数到货币字段。当小数部分多于两位时,Access会对数据进行四舍五入。精确度为小数点左方15位数及右方4位数。
 自动编号:这种类型较为特殊,每次向表格添加新记录时,Access会自动插入唯一顺序或者随机编号,即在自动编号字段中指定某一数值。自动编号一旦被指定,就会永久地与记录连接。如果删除了表格中含有自动编号字段的一个记录后,Access并不会为表格自动编号字段重新编号。当添加某一记录时,Access不再使用已被删除的自动编号字段的数值,而是重新按递增的规律重新赋值。
 是/否:这种字段是针对于某一字段中只包含两个不同的可选值而设立的字段,通过是/否数据类型的格式特性,用户可以对是/否字段进行选择。
 OLE对象:这个字段是指字段允许单独地“链接”或“嵌入”OLE对象。添加数据到OLE对象字段时,可以链接或嵌入Access表中的OLE对象是指在其他使用OLE协议程序创建的对象,例如WORD文档、EXCEL电子表格、图像、声音或其他二进制数据。OLE对象字段最大可为1GB,它主要受磁盘空间限制。
 超级链接:这个字段主要是用来保存超级链接的,包含作为超级链接地址的文本或以文本形式存储的字符与数字的组合。当单击一个超级链接时,WEB浏览器或Access将根据超级链接地址到达指定的目标。超级链接最多可包含三部分:一是在字段或控件中显示的文本;二是到文件或页面的路径;三是在文件或页面中的地址。在这个字段或控件中插入超级链接地址最简单的方法就是在“插入”菜单中单击“超级链接”命令。
 查阅向导:这个字段类型为用户提供了一个建立字段内容的列表,可以在列表中选择所列内容作为添入字段的内容

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭