sql2000数据类型大全(转)

 sql2000数据类型大全(转)

 
  数据
  在 Microsoft® SQL Server™ 中, 个列、局部 量、表达式和参数都有一个相 的数据 型, 是指定 象可持有的数据 型(整型、字符、 money 等等)的特性。 SQL Server 提供系 数据 型集,定 了可与 SQL Server 一起使用的所有数据 型。下面列出系 提供的数据 型集。
可以定 的数据 型,其是系 提供的数据 型的 名。有 的数据 型的更多信息, sp_addtype 建用 的数据 型。
  当两个具有不同数据 型、排序 规则 、精度、小数位数或 度的表达式通 运算符
将数据 型的 规则应 用到 入表达式的数据 型来确定所得 的数据 型。有 更多信息, 数据 型的 序。
如果 果数据 char varchar text nchar nvarchar ntext 则结 的排序 规则 由排序 规则 规则 决定。有 更多信息, 排序 规则 序。
果的精度、小数位数及 度取决于 入表达式的精度、小数位数及 度。有 更多信息, 精度、小数位数和 度。
   SQL Server SQL-92 兼容性提供了数据 型同 义词 。有 更多信息, 数据 型同 义词 FcPw~ O ^
G?[1$nwww.tzsy.cn
  精确数字
  整数
   int bigint smallint 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 数据 ,函数才返回 bigint SQL Server 不会自 将其它整数数据 型( tinyint smallint int )提升 bigint
   bit
    整型数据 1 0 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 - 1 decimal 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 数据 型存 日期和 天的 时间 ,但精确度低于 datetime SQL 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) 个字符。( ntext text image 。)


   ntext text 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) 个字 。( ntext text image 。)


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

  其它数据

   cursor
     量或存 储过 OUTPUT 参数的一 数据 型, 些参数包含 的引用。使用 cursor 数据 建的 量可以 空。
    有些操作可以引用那些 cursor 数据 型的 量和参数, 些操作包括:
DECLARE @local_variable
SET @local_variable 句。
OPEN
FETCH CLOSE 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 量可像常 表那 使用。 该变 量可 用于 SELECT INSERT UPDATE 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 而不使用 timestamp rowversion 受数据 型同 义词 的制 。有 更多信息, 数据 型同 义词

  在 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 值执 行的操作只有比 (=, <>, <, >, <=, >=) 检查 NULL IS NULL IS NOT NULL )。不允 使用其它算 运算符。所有的列 束及属性( IDENTITY 除外)均允 用于 uniqueidentifier 数据 型。
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值