SQL Server 中的25种数据类型

二进制类型

1、Binary[(n)]

为固定的二进制,n的取值范围为1-8000

2、Varbinary

为可变长度的二进制,n的取值范围为1-8000

3、Image
可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节

字符数据类型

4、Char

定长字符数据,最大不超过8KB

5、Varchar

可变长字符数据,最大不超过8KB

6、Text

text最多为2^31减去1个符号
Unicode数据类型

Unicode数据1个字符占2个字节空间,比较占空间,

非Unicode数据据1个字符占1个字节空间

Unicode标准是国际通用的

7、Nchar

长度固定不变,最大为4000字符

8、Nvarchar

长度可变,最大为4000字符

9、Ntext

长度固定不变,最大长度为 230 - 1 (1,073,741,823) 个字符 

日期和时间数据类型

10、DateTime

set DateFormat|日期顺序,可为DMY,DYM,MDY,MYD,YDM,YMD

默认为MDY

11、Smalldatetime

短时间类型,只显示年月日

数字数据类型

12、Int

范围为 -2 147 483 648 到 2 147 483 647(每一个值要求4个字节存储空间)

13、Tinyint

存储数据的范围是从0 到255(每一个值要求1个字节存储空间)

14、Smallint

存储数据的范围从 -32 768 到 32 767(每一个值要求2个字节存储空间)

15、Decimal

精确小数数据,数据所占的存储空间根据该数据的位数后的位数来确定

16、Numeric

精确小数数据,数据所占的存储空间根据该数据的位数后的位数来确定

17、Float

当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样

18、Real

当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样、

19、Money

Money数据类型要求 8 个存储字节

20、Smallmoney

Smallmoney 数据类型要求 4 个存储字节

特殊数据类型

21、Timestamp

 用于表示SQL Server 活动的先后顺序,以二进投影的格式表示。Timestamp 数据与插入数据或者日期和时间没有关系

22、Bit

 由 1 或者 0 组成。当表示真或者假、ON 或者 OFF 时,使用 Bit 数据类型。

23、Uniqueidentifier

由 16 字节的十六进制数字组成,表示一个全局唯一的。当表的记录行要求唯一时,GUID是非常有用

24、用户定义的数据类型

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

25、sysname 数据类型用于表列、变量以及用于存储对象名的存储过程参数。sysname 的精确定义与标识符规则有关。因此,它可能会因 SQL
Server 实例的不同而有所不同。除了 sysname 在默认情况下为 NOT NULL 之外,sysname 的功能与
nvarchar(128) 相同。在早期版本的 SQL Server 中,sysname 被定义为 varchar(30)
这个可
以在一些系统表中看到(如sysobjects表的name字段就是sysname类型的)的,因此sysname类型直接决定了tablename的字
符空间,如6.5之前的表名不支持中文,而2000以后的表名就支持中文,就是因为sysname再两个版本中的含义不一样
table_name、
column_name等可以是由用户自己输入的符合sysname类型的的数据,说明这些名称是sysname类型的,因此,这些名称你可以使用
nvarchar(128)的任意字符串;而数据类型(如column1_datatype)、主键标示(如columns_in_primary_key)等就不是sysname类型的,区别就在这里

25、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 数据类型。

原文地址:https://www.cnblogs.com/liangyours/p/1821990.html