二进制类型
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 数据类型。