转载:http://www.ezloo.com/2008/10/sql_server_data_type.html

   数据类型是数据的一种属性,是数据所表示信息的类型。任何一种语言都有它自己所固有的数据类型,SQL Server提供一下25种固有的数据类型。

SQL Server数据类型一览表
·Binary [(n)]
·Varbinary [(n)]
·Char [(n)]
·Varchar[(n)]
·Nchar[(n)]
·Nvarchar[(n)]
·Datetime
·Smalldatetime
·Decimal[(p[,s])]
·Numeric[(p[,s])]
·Float[(n)]
·Real
·Int
·Smallint
·Tinyint
·Money
·Smallmoney
·Bit
·Cursor
·Sysname
·Timestamp
·Uniqueidentifier
·Text
·Image
·Ntext

1、二进制数据类型:
      二进制数据由十六进制数表示,可以使用 binaryvarbinary image 数据类型存储。
·binary 固定长度(最多为8K)的二进制数据类型。

binary [ ( n ) ]
固定长度的 n 个字节二进制数据。N 必须从 1 到 8,000。存储空间大小为 n+4 字节。

·varbinary 可变长度(最多为8K)的二进制数据类型。

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

·image 用来存储长度超过 8 KB 的可变长度的二进制数据。
      除非数据长度超过 8KB,否则一般宜用 varbinary 类型来存储二进制数据。一般用来存放 Microsoft Word 文档、Microsoft Excel 电子表格、包含位图的图像、图形交换格式 (GIF) 文件和联合图像专家组 (JPEG) 文件。
      在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。

2、字符数据类型
      字符数据由字母、符号和数字组成。使用 charvarchar text 数据类型存储。
·char 固定长度(不超过 8 KB)的字符数据类型。

      char[(n)]
      长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000
      之间的数值。存储大小为 n 个字节。char 在 SQL-92 中的同义词为 character

·varchar 可变长度(不超过 8 KB)的字符数据类型。

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

·text 数据类型的列可用于存储大于 8KB 的 ASCII 字符。
      例如,由于 HTML 文档均由 ASCII 字符组成且一般长于 8KB,所以用浏览器查看之前应在 SQL Server 中存储在 text 列中。

3、Unicode数据类型
      使用 Unicode 数据类型,列可存储由 Unicode 标准定义的任何字符,包含由不同字符集定义的所有字符。Unicode 数据使用 SQL Server 中的 ncharvarchar ntext 数据类型进行存储。
·nchar 固定长度(至多为 4000 个 Unicode 字符)的Unicode数据类型。

      nchar(n)
包含n 个字符的固定长度Unicode字符数据。n的值必须介于1与4,000之间。存储大小为n
      节的两倍。nchar 在 SQL-92 中的同义词为 national char national character

·nvarchar ( varchar ) 是可变长度 Unicode 数据的数据类型。

      nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。
      字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar
在 SQL-92 中的同义词为 national char varying national character varying

·ntext 当列中任意项超过 4000 个 Unicode字符时使用。

4、日期和时间数据类型
      日期和时间数据由有效的日期或时间组成。例如,有效日期和时间数据既包括"4/01/98 12:15:00:00:00 PM",也包括"1:28:29:15:01 AM 8/17/98"。在 Microsoft® SQL Server™ 2000 中,日期和时间数据使用 datetimesmalldatetime 数据类型存储。
·datetime
数据类型存储从 1753 年 1 月 1 日至 9999 年 12 月 31 日的日期。
      每个数值要求 8 个字节的存储空间。

·smalldatetime
数据类型存储从 1900 年 1 月 1 日至 2079 年 6 月 6 日的日期。
      每个数值要求 4 个字节的存储空间。

·设置日期
格式的命令如下:
      Set DateFormat {format | @format _var|
      其中,format | @format_var 是日期的顺序。有效的参数包括 MDY、DMY、YMD、
      YDM、MYD 和 DYM。在默认情况下,日期格式为MDY。

5、数字数据类型
      数字数据只包含数字。数字数据包括正数、负数、小数、分数和整数。
·整型数据
整型数据由负整数或正整数组成,如 -15、0、5 和 2509。在 Microsoft® SQL Server™
      2000 中,整型数据使用 bigintintsmallint tinyint 数据类型存储。bigint 数据类
      型可存储的数字范围比 int 数据类型广。int 数据类型比 smallint 数据类型的存储范围
      大,而 smallint 的数值范围又比 tinyint 类型大。

      bigint 存储从-2^63 (-9223372036854775808)到2^63-1(9223372036854775807) 范围内的
        数字。存储大小为 8 个字节。

int 存储范围是-2,147,483,648至2,147,483,647(每个值需4个字节的存储空间)。

smallint 存储范围只有 -32,768 至 32,767(每个值需 2 个字节的存储空间)。

      tinyint 只能存储 0 至 255 范围内的数字(每个值需 1 个字节的存储空间)。

·小数数据
Decimal 数据包含存储在最小有效数上的数据。在 SQL Server中,小数数据使用 decimalnumeric 数据类型存储。存储 decimal numeric 数值所需的字节数取决于该数据的数字总数和小数点右边的小数位数。例如,存储数值 19283.29383 比存储 1.1 需要更多的字节。在 SQL Server中,numeric 数据类型等价于 decimal 数据类型。

·近似数字数据
近似数字(浮点)数据包括按二进制计数系统所能提供的最大精度保留的数据。在 SQL Server 中,近似数字数据以 floatreal 数据类型存储。例如,分数 1/3 表示成小数形式为 0.333333(循环小数),该数字不能以近似小数数据精确表示。因此,从 SQL Server 获取的值可能并不准确代表存储在列中的原始数据。又如以 .3, .6, .7 结尾的浮点数均为数字近似值。

6、货币数据类型
      货币数据表示正的或负的货币值。在 Microsoft® SQL Server™ 2000 中使用 moneysmallmoney 数据类型存储货币数据。货币数据存储的精确度为四位小数。
·money 存储范围是 -922,337,203,685,477.5808 至 +922,337,203,685,477.5807
      (需 8 个字节的存储空间)。

·smallmoney 存储范围是 -214,748.3648 至 214,748.3647(需 4 个字节的存储空间)。

·如果数值超过了上述范围,则可使用 decimal 数据类型代替。

7、特殊数据类型
      特殊数据包括不能用前面所述的二进制、字符、Unicode、日期和时间、数字和货币数据类型表示的数据。

Microsoft® SQL Server™ 2000 包含四种特殊数据类型:
·timestamp
      用于表示 SQL Server 在一行上的活动顺序,按二进制格式以递增的数字来表示。当表中的行发生变动时,用从 @@DBTS 函数获得的当前数据库的时间戮值来更新时间戮。timestamp数据与插入或修改数据的日期和时间无关。若要自动记录表中数据更改的时间,使用 datetimesmalldatetime 数据类型记录事件或触发器。SQL Serve 中 rowversiontimestamp 的同义词。

·bit
bit 数据类型只能包括 0 或 1。可以用 bit 数据类型代表 TRUE 或 FALSE、YES 或 NO。例如,询问客户是否为初次访问的问题可存储在 bit 列中。

·uniqueidentifier
      以一个 16 位的十六进制数表示全局唯一标识符 (GUID)。当需要在多行中唯一标识某一行时可使用 GUID。例如,可使用 unique_ identifier 数据类型定义一个客户标识代码列,以编辑公司来自多个国家/地区的总的客户名录。

·sql_variant
      一种存储 SQL Server 所支持的各种数据类型(textntexttimestampsql_variant除外)值的数据类型。

·table
      一种特殊的数据类型,存储供以后处理的结果集。table 数据类型只能用于定义 table 类型的局部变量或用户定义函数的返回值。

·用户定义
      允许使用用户定义数据类型,例如,product_code 可设计为基于 char 数据类型的两个大写字母后跟 5 位供应商号码的格式。

--------------------------------------------------------------------------------

  • 用户定义的数据类型

用户定义的数据类型基于在 Microsoft SQL Server 中提供的数据类型。当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。例如,可定义一种称为 postal_code 的数据类型,它基于 Char 数据类型。
当创建用户定义的数据类型时,必须提供三个数:数据类型的名称、所基于的系统数据类型和数据类型的可空性。

1、创建用户定义的数据类型

创建用户定义的数据类型可以使用 Transact-SQL 语句。系统存储过程 sp_addtype 可以来创建用户定义的数据类型。其语法形式如下:
sp_addtype {type},[,system_data_bype][,'null_type']
其中,type 是用户定义的数据类型的名称。system_data_type 是系统提供的数据类型,例如 Decimal、Int、Char 等等。 null_type 表示该数据类型是如何处理空值的,必须使用单引号引起来,例如'NULL'、'NOT NULL'或者'NONULL'。
例子:
Use cust
Exec sp_addtype ssn,'Varchar(11)',"Not Null'
创建一个用户定义的数据类型 ssn,其基于的系统数据类型是变长为11 的字符,不允许空。
例子:
Use cust
Exec sp_addtype birthday,datetime,'Null'
创建一个用户定义的数据类型 birthday,其基于的系统数据类型是 DateTime,允许空。
例子:
Use master
Exec sp_addtype telephone,'varchar(24),'Not Null'
Eexc sp_addtype fax,'varchar(24)','Null'
创建两个数据类型,即 telephone 和 fax

2、删除用户定义的数据类型

当用户定义的数据类型不需要时,可删除。删除用户定义的数据类型的命令是 sp_droptype {'type'}。
例子:
Use master
Exec sp_droptype 'ssn'
注意:当表中的列还正在使用用户定义的数据类型时,或者在其上面还绑定有默认或者规则时,这种用户定义的数据类型不能删除。

SQL Server数据类型的更多相关文章

  1. 为更好地设计数据库,重新整理sql server数据类型

    我们在平常开发过程中,在设计数据的时候,经常碰到数据类型选择的问题,为了更快,更合适地选择正确的数据类型,所以在这里做个总结. 分类 sql server 数据类型 c# 数据类型 描述 应用场景 字 ...

  2. SQL Server 数据类型映射

    SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 SQL Server 的 decima ...

  3. MySql和SQL Server数据类型 对比

    My Sql 数据类型 SQL Server 数据类型 Yes/No bit Smallint(字节型) tinyint Integer(长整型) int Real(单精度浮点型)    real F ...

  4. SQL Server数据类型与SDE库表sde_type对照表

    SDE_column_registry 表管理所有注册列. 警告:如果使用 SQL 界面更改列定义,SDE_column_registry 表中的记录将不会更新.这可能导致之后的任何数据导出失败. S ...

  5. SQL Server 数据类型映射 (ADO.NET)

    SQL Server 数据类型映射 (ADO.NET) .NET Framework 3.5 更新:November 2007 SQL Server 和 .NET Framework 基于不同的类型系 ...

  6. SQL Server 数据类型 Decimal介绍

    为SQL Server 数据类型,属于浮点数类型.存储数据范围是: -1038~1038-1 的固定精度和小数位的数字.一个decimal类型的数据占用了2~17个字节.decimal数据类型在SQL ...

  7. SQL Server数据类型int、bigint、smallint、tinyint对比表

    SQL Server数据类型int.bigint.smallint.tinyint对比表 数据类型 范围 存储 bigint -2^63 (-9,223,372,036,854,775,808) 到 ...

  8. SQL Server 数据类型映射(转载)

    SQL Server 数据类型映射 SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decimal 结构的最大小数位数为 28,而 S ...

  9. Sql Server 数据类型与 C# 数据类型对照

    Sql Server 数据类型与 C# 数据类型对照 已验证类型(Sql Server 2012 & Visual Studio 2013) Sql Server C# 简写 bigint S ...

随机推荐

  1. Learning WCF Chapter2 WCF Contracts and Serialization

    So far I’ve talked about the standards behind it all,but in fact WCF hides most of this from the dev ...

  2. ASP.Net4.0中新增23项功能

    这篇文章介绍Visual Studio 2010 (ASP.Net 4.0)的新功能. 1.代码片段(Code Snippets): 代码段是预先开发的代码模板,可以节省我们对有关语法思考的时间.在V ...

  3. BZOJ_1798_&_Codevs_2216_[AHOI_2009]_行星序列_(线段树)

    描述 BZOJ: http://www.lydsy.com/JudgeOnline/problem.php?id=1798 Codevs: http://codevs.cn/problem/2216/ ...

  4. ☀【单位】REM

    CSS3的REM设置字体大小 支持的浏览器还是蛮多的,比如:Mozilla Firefox 3.6+.Apple Safari 5+.Google Chrome.IE9+和Opera11+.只是可怜的 ...

  5. Cocos2d-x 坑之一:Xcode文件真实目录与工程视图目录

    Cocos2d-x一定要保证 Xcode文件真实目录与工程视图目录 的一致性,不然,会出现文件读取不了,或include不了的情况. 如果出现此类情况,优先查看真实目录的结构.

  6. 【转】iOS开发者申请发布证书及真机调试图文详解

    原文网址:http://www.tqcto.com/article/mobile/57822.html 打开iOS Dev Center,选择Sign in,登陆(至少99美元账号),登陆之后在网页右 ...

  7. android学习——android架构

    android架构:在了解全局的情况下进行细致化的分析才能更有效的学习android的运行原理,才能更深刻的理解android开发: 1.架构图直观 2.架构详解 2.1.Linux Kernel 2 ...

  8. UART(串口)

    (1)串行通信线路三种工作方式:单工通信.半双工通信.全双工通信 单工:单工就是指A只能发信号,而B只能接收信号,通信是单向的. 半双工:半双工就是指A能发信号给B,B也能发信号给A,但这两个过程不能 ...

  9. Performance Counter的使用

    原文地址:http://blog.csdn.net/jiangxinyu/article/details/5480401 PerformanceCounter 基本介绍以及示例方法 一 Perform ...

  10. Bzoj 1609: [Usaco2008 Feb]Eating Together麻烦的聚餐 二分

    1609: [Usaco2008 Feb]Eating Together麻烦的聚餐 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1272  Solve ...