数据类型(Data Type)
数据类型
整数类型
Tinyint 8位无符号整数
Smallint 16位带符号整数‘
Int 32位带符号整数
Bigint 64位带符号整数
实数类型
Decimal或Numerice 38位带符号十进制浮点数
例:decimal(p, s)
//p是忽略小数点后整个数字的总位数,s是需要保留的小数点后的位数,如果不指定该数据的精度与小数位数,那么小数位数将不被截断,如果小数位数>s,s后的位数将被截断并自动四舍五入。
Real 32位带符号浮点数
Float 64位带符号浮点数
货币类型
Money 64位带符号货币数
Smallmoney 32位带符号货币数
字符类型
Char (n) n×8位字符 n<=8 n指定字符存储的字节数,如果插入表格中的字符长度<n,则系统自动使用空格填补剩余的位置。若>n,会抛出异常。若不提供n则只能插入一个英文字符。 Varchar (n) n个长度字符 n<=8000 n指定英文字符存储的长度而不是字节数,如果插入表格中的英文字符长度<n,则系统不会使用空格补位,如果你指定只能存储10个英文字符,就定义为Varchar(10)。 Text 最大长度为2^31-1(2,147,483,647)个字符。
超过8KB的英文字符数据(ASCⅡ)数据可以考虑用此类型存储。 以上几种字符类型前缀+n表示存储的是中文字符(Unicode),Unicode数据类型所占的空间是非Unicode的两倍,
比如Nchar(1)表示最多插入一个中文字符。
时间类型
DateTime
可存从公元1753年1月1日零时起~公元9999年12月31日23时59分59秒之间的所有日期时间,其精确度可达三百分之一秒即3.33毫秒。
smalldateTime
存储从1900年1月1日~2079年6月6日内的日期。
位数据类型
bit 结果只能是布尔值 用0或者1表示
二进制数据类型
Binary(n) n<=8000 n是二进制数据的位数
如果插入的二进制数据的长度<n,则系统自动使用0填补剩余的位置。
Varbinary(n)n<=8000 n是二进制数据的位数
如果插入的二进制数据的长度<n,则系统不会使用0填补剩余的位置。
Image
存储在Image字段中的数据不能Insert直接插入。
其他数据类型
Sql variant 存储除图像 文本 Timestamp(时间戳)类型数据外的其他任何合法的SQL Server数据 Table 用于存储对表或者视图的处理后的结果集 这种数据类型使得变量可以存储一个Table(表)从而使函数或过程返回查询结果更加方便 Uniqueidentifier 它是SQL Server根据计算机网络适配器地址和CPU时钟产生的全局惟一标识符代码(Globally Unique Identifier,简写为GUID)
此数字可以通过调用SQL Server的 newid()函数获得 在全球各地的计算机经由此函数产生的数字不会相同 XML 专门存储XML类型的数据 Timestamp 时间戳 当以它所定义的列被修改后 此列的值会自动更新到被修改的时间
自定义数据类型
使用图形界面定义:
单击数据库-可编程性-类型-用户自定义数据类型,
使用脚本定义:
exec sp_addtype 数据类型名,'基于的系统数据类型','空或不允许空'
exec sp_addtype IC,'varchar(10)','not null'
删除自定的类型
单击数据库-可编程性-类型-用户定义数据类型-找到刚定义的数据类型-右键删除,一般不推荐使用自定义数据类型。