sql2000数据类型大全(转)

来源:互联网 发布:书画家印鉴落款数据库 编辑:程序博客网 时间:2024/06/05 16:40

 sql2000数据类型大全(转)

 
  数据
  在 Microsoft® SQL Server™ 中,个列、局部量、表达式和参数都有一个相的数据型,是指定象可持有的数据型(整型、字符、money 等等)的特性。SQL Server 提供系数据型集,定了可与 SQL Server 一起使用的所有数据型。下面列出系提供的数据型集。
可以定的数据型,其是系提供的数据型的名。有的数据型的更多信息, sp_addtype 建用的数据型。
  当两个具有不同数据型、排序规则、精度、小数位数或度的表达式通运算符
将数据型的规则应用到入表达式的数据型来确定所得的数据型。有更多信息,数据型的序。
如果果数据 charvarchartextncharnvarchar ntext则结的排序规则由排序规则规则决定。有更多信息,排序规则序。
果的精度、小数位数及度取决于入表达式的精度、小数位数及度。有更多信息,精度、小数位数和度。
  SQL Server SQL-92 兼容性提供了数据型同义词。有更多信息,数据型同义词FcPw~ O ^
G?[1$nwww.tzsy.cn
  精确数字
  整数
  intbigintsmallint tinyint
  使用整数数据的精确数字数据型。
  bigint
    从 -2^63 (-9223372036854775808) 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存大小 8 个字
  int
    从 -2^31 (-2,147,483,648) 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存大小 4 个字int SQL-92 integer
  smallint
    从 -2^15 (-32,768) 2^15 - 1 (32,767) 的整型数据。存大小 2 个字
  tinyint
    从 0 255 的整型数据。存大小 1
  注
  在支持整数的地方支持 bigint 数据型。但是,bigint 用于某些特殊的情况,当整数 int 数据型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据型是主要的整数数据型。
  在数据先次序表中,bigint 位于 smallmoney int
  只有当参数表达式是 bigint 数据,函数才返回 bigintSQL Server 不会自将其它整数数据型(tinyintsmallint int)提升 bigint
  bit
    整型数据 10 NULL
  注
  不能 bit 型的列使用索引。
  Microsoft® SQL Server™ 化用于 bit 列的存。如果一个表中有不多于 8 个的 bit 列,些列将作一个字。如果表中有 9 16 bit 列,些列将作两个字。更多列的情况依此推。
  decimal numeric
    定点精度和小数位数的 numeric 数据型。
  decimal[(p[, s])] numeric[(p[, s])]
    定点精度和小数位数。使用最大精度,有效 - 10^38 +1 10^38 - 1decimal SQL-92 义词 dec dec(p, s)
  p(精度)
    指定小数点左和右可以存的十制数字的最大个数。精度必是从 1 到最大精度之。最大精度 38
  s(小数位数)
    指定小数点右可以存的十制数字的最大个数。小数位数必是从 0 p 。默小数位数是 0,因而 0 <= s <= p。最大存大小基于精度而化。
精度存
1 - 9 5
10-19 9
20-28 13
29-38 17
  money smallmoney
  代表货币货币数据型。
  money
    货币数据介于 -2^63 (-922,337,203,685,477.5808) 2^63 - 1 (+922,337,203,685,477.5807) ,精确到货币单位的千分之十。存大小 8 个字
  smallmoney
    货币数据介于 -214,748.3648 +214.748,3647 ,精确到货币单位的千分之十。存大小 4 个字

  近似数字
  float real
  用于表示浮点数字数据的近似数字数据型。浮点数据近似;并非数据型范内的所有数据都能精确地表示。

  
  float [ ( n ) ]
    从 - 1.79E + 308 1.79E + 308 的浮点数字数据。n 用于存科学数法 float 数尾数的位数,同指示其精度和存大小。n 须为 1 53

n
所在范 精度 存大小
1-24 7
位数 4
25-53 15
位数 8

  Microsoft® SQL Server™ float[(n)] 数据于从 1 53 的所有 n 均符合 SQL-92 准。double precision 的同义词为 float(53)

  real
    从 ?3.40E + 38 3.40E + 38 的浮点数字数据。存大小 4 。在 SQL Server 中,real 的同义词为 float(24)

  datetime smalldatetime
  代表日期和一天内的时间的日期和时间数据型。

  datetime
    从 1753 1 1 日到 9999 12 31 日的日期和时间数据,精确度百分之三秒(等于 3.33 毫秒或 0.00333 秒)。如下表所示,把值调整到 .000.003、或 .007 秒的增量。
示例 整后的示例
01/01/98 23:59:59.999 1998-01-02 00:00:00.000
01/01/98 23:59:59.995,
01/01/98 23:59:59.996,
01/01/98 23:59:59.997,

01/01/98 23:59:59.998 1998-01-01 23:59:59.997
01/01/98 23:59:59.992,
01/01/98 23:59:59.993,
01/01/98 23:59:59.994 1998-01-01 23:59:59.993
01/01/98 23:59:59.990

01/01/98 23:59:59.991 1998-01-01 23:59:59.990

  Microsoft® SQL Server™ 所有其不能识别为 1753 年到 9999 的日期的


  smalldatetime
    从 1900 1 1 日到 2079 6 6 日的日期和时间数据精确到分29.998 秒或更低的 smalldatetime 向下舍入最接近的分29.999 秒或更高的 smalldatetime 向上舍入最接近的分


--returns time as 12:35
SELECT CAST('2000-05-08 12:35:29.998' AS smalldatetime)
GO
--returns time as 12:36
SELECT CAST('2000-05-08 12:35:29.999' AS smalldatetime)
GO


  注
  Microsoft SQL Server 用两个 4 字的整数内部存 datetime 数据型的。第一个 4 字 base date(即 1900 年 1 月 1 日)之前或之后的天数。基日期是系参考日期。不允早于 1753 年 1 月 1 日的 datetime 另外一个 4 以午夜后毫秒数所代表的天的时间
  smalldatetime 数据型存日期和天的时间,但精确度低于 datetimeSQL Server smalldatetime 储为两个 2 的整数。第一个 2 1900 1 1 日后的天数。另外一个 2 午夜后的分数。日期范1900 1 1 日到 2079 6 6 日,精确到分


  字符串


  char varchar
  固定 (char) 或可变长 (varchar) 字符数据型。


  char[(n)]
     n 个字的固定度且非 Unicode 的字符数据。n 是一个介于 1 8,000 的数。存大小 n 个字char SQL-92 中的同义词为 character

  varchar[(n)]
     n 个字的可变长度且非 Unicode 的字符数据。n 是一个介于 1 8,000 的数。存大小为输入数据的字实际长度,而不是 n 个字。所入的数据字符度可以零。varchar SQL-92 中的同义词为 char varying character varying

  注
  如果没有在数据定量声明句中指定 n认长 1。如果没有使用 CAST 函数指定 n认长 30
  将使用 char varchar 象被指派数据的默排序规则,除非用 COLLATE 子句另外指派了特定的排序规则排序规则控制用于存字符数据的代码页
  支持多言的站点使用 Unicode nchar nvarchar 数据型以尽量减少字符转换问题。如果使用 char varchar
如果希望列中的数据大小接近一致,使用 char
如果希望列中的数据大小著不同,使用 varchar
  如果 CREATE TABLE ALTER TABLE SET ANSI_PADDING OFF一个定义为 NULL char 列将被作 varchar 理。
  当排序规则码页使用双字字符,存大小仍然 n 个字。根据字符串的不同,n 个字的存大小可能小于 n 个字符。

  ntext
    可变长 Unicode 数据,其最大 2^30 - 1 (1,073,741,823) 个字符。( ntexttext image。)


  ntexttext image
  用于存大型非 Unicode 字符、Unicode 字符及二制数据的固定度和可变长度数据型。Unicode 数据使用 UNICODE UCS-2 字符集。

  ntext
    可变长 Unicode 数据的最大 230 - 1 (1,073,741,823) 个字符。存大小是所入字符个数的两倍(以字节为单位)。ntext SQL-92 中的同义词 national text

  text
    服器代码页中的可变长度非 Unicode 数据的最大 231-1 (2,147,483,647) 个字符。当服器代码页使用双字字符,存量仍是 2,147,483,647 。存大小可能小于 2,147,483,647 (取决于字符串)。

  image
    可变长度二制数据介于 0 231-1 (2,147,483,647)



  二制字符串

  binary varbinary
  固定 (binary) 的或可变长 (varbinary) binary 数据型。

  binary [ ( n ) ]
    固定度的 n 个字制数据。N 1 8,000。存大小 n+4

  varbinary [ ( n ) ]
    n 个字节变长制数据。n 1 8,000。存大小为实际输入数据 +4 个字,而不是 n 个字入的数据度可能 0 。在 SQL-92 varbinary 的同义词为 binary varying

  image
    可变长度的二制数据,其最大 2^31 - 1 (2,147,483,647) 个字。( ntexttext image。)


  注
  如果在数据定量声明句中没有指定 n,默认长 1。如果没有用 CAST 函数指定 n,默认长 30
  当列数据大小一致时应使用 binary
  当列数据大小不一致时应使用 varbinary

  其它数据

  cursor
    量或存储过 OUTPUT 参数的一数据型,些参数包含的引用。使用 cursor 数据建的量可以空。
    有些操作可以引用那些 cursor 数据型的量和参数,些操作包括:
DECLARE @local_variable
SET @local_variable 句。
OPEN
FETCHCLOSE DEALLOCATE 标语句。
储过出参数。
CURSOR_STATUS 函数。
sp_cursor_list、sp_describe_cursor、sp_describe_cursor_tables 以及 sp_describe_cursor_columns 系
储过程。
  #重要  
于 CREATE TABLE 句中的列,不能使用 cursor 数据型。

  sql_variant
  一
SQL Server 支持的各数据型(text、ntext、image、timestamp 和 sql_variant 除外)的数据型。
  sql_variant 可以用在列、参数和
量中并返回用函数的。sql_variant 允许这些数据库对象支持其它数据型的

  

  sql_variant

  注

  sql_variant 型的列可以包含不同数据型的行。例如,定义为 sql_variant 的列可以存 int、binary 和 char 。不能使用 sql_variant 存值类型只有 text、ntext、image、timestamp 和 sql_variant。

  sql_variant 的最大
度可达 8016 字

  必
先将 sql_variant 数据型投影其基本数据,才能使其参与加和减这类运算。

  可以
sql_variant 一个默认值数据可以将 NULL 其基础值,但是 NULL 没有关联的基本型。另外,sql_variant 可以不将其它 sql_variant 其基本型。

  UNIQUE、主或外可以包含 sql_variant 型列,但是包含定行的数据值总长度不大于索引的最大度(目前是 900 )。

  表可以有任意多个 sql_variant 列。

  sql_variant 不能在 CONTAINSTABLE FREETEXTTABLE 中使用。

  ODBC 不完全支持 sql_variant。因此,当使用用于 ODBC Microsoft OLE DB 提供程序 (MSDASQL) sql_variant 列的查询制数据返回。例如,包含字符串数据 'PS2091' sql_variant 列作 0x505332303931 返回。

  table
  一特殊的数据型,用于存储结果集以供后续处理。数据型主要用于临时行,些行将作函数的果集返回。

  注
  可将函数和量声明 table 型。table 量可用于函数、存储过程和批理中。
  尽可能使用表量而不使用临时表。table 量有以下点:
  table 量的行为类似于局部量,有明确定的作用域。作用域声明该变量的函数、存储过程或批理。
  在其作用域内,table 量可像常表那使用。该变量可用于 SELECTINSERTUPDATE DELETE 句中用到表或表的表达式的地方。但是,table 不能用在下列句中:
  INSERT INTO table_variable EXEC 储过程。
  SELECT select_list INTO table_variable 句。
  在定 table 量的函数、存储过程或批,自清除 table 量。
  在存储过程中使用表量与使用临时表相比,减少了存储过程的重新编译量。

  及表量的事只在表量更新期存在。这样就减少了表对锁定和记录资源的需求。
  不支持在表量之间进赋值操作。另外,由于表量作用域有限,并且不是持久数据的一部分,因而不受事的影响。

  timestamp
  timestamp 这种数据型表生成的二制数,确保些数在数据中是唯一的。timestamp 一般用作表行加版本戳的机制。存大小 8

  注
  Transact-SQL timestamp 数据型与在 SQL-92 准中定 timestamp 数据型不同。SQL-92 timestamp 数据型等价于 Transact-SQL datetime 数据型。
  Microsoft® SQL Server™ 将来的版本可能会修改 Transact-SQL timestamp 数据型的行,使它与在准中定的行一致。到那,当前的 timestamp 数据型将用 rowversion 数据型替
  Microsoft® SQL Server™ 2000 引入了 timestamp 数据型的 rowversion 义词。在 DDL 句中尽可能使用 rowversion 而不使用 timestamprowversion 受数据型同义词的制。有更多信息,数据型同义词

  在 CREATE TABLE ALTER TABLE 句中,不必 timestamp 数据型提供列名:
  CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, timestamp)
  如果没有提供列名,SQL Server 将生成 timestamp 的列名。rowversion 数据型同义词不具有这样的行。指定 rowversion 提供列名。
  一个表只能有一个 timestamp 列。次插入或更新包含 timestamp 列的行timestamp 列中的均会更新。一属性使 timestamp 列不适合作为键使用,尤其是不能作使用。行的任何更新都会更改 timestamp ,从而更改键值。如果列属于主,那旧的键值将无效,而引用的外也将不再有效。如果表在动态中引用,所有更新均会更改游中行的位置。如果列属于索引则对数据行的所有更新致索引更新。
  不可空的 timestamp 列在语义上等价于 binary(8) 列。可空的 timestamp 列在语义上等价于 varbinary(8) 列。


  uniqueidentifier
  全局唯一标识 (GUID)

  
  uniqueidentifier 数据型的列或局部量可用两方法初始化一个
  使用 NEWID 函数。

  将字符串常量
转换为如下形式(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中个 x 是 0-9 或 a-f 范内的一个十六制的数字)。例如,6F9619FF-8B86-D011-B42D-00C04FC964FF 即有效的 uniqueidentifier
  比
运算符可与 uniqueidentifier 一起使用。然而,排列并非通两个的位模式来实现。允许对 uniqueidentifier 值执行的操作只有比 (=, <>, <, >, <=, >=) 检查 NULLIS NULL IS NOT NULL)。不允使用其它算运算符。所有的列束及属性(IDENTITY 除外)均允用于 uniqueidentifier 数据型。