SQL Server中的数据类型详解
最近在工作中需要建数据库,把小编经常用到的收集整理了一下,方便以后查询学习。
哪些对象需要数据类型?
(1)、表和视图的列:
在定义表或视图时,其列需要定义数据类型。
(2)、存储过程的参数:
在定义存储过程的T-SQL代码中定义参数的数据类型。
(3)、变量:
如果在T-SQL中使用变量,需要定义数据类型。
(4)、带返回值的函数:
返回一个或多个特定类型数据值的T-SQL函数中的返回值需要定义数据类型。
(5)、带返回代码的存储过程:
具有返回代码的存储过程。
int (integer)
int (或 integer)数据类型存储从-2的31次方 (-2147483648) 到2的31次方-1 (2147483647) 之间的所有正负整数。
每个INT 类型的数据按4个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。
float[(n)]:近似数值型
float数据类型可精确到第15 位小数,其范围为从-1.79E -308 到1.79E +308。 每个FLOAT 类型的数据占用8 个字节的存储空间。
float数据类型可写为FLOAT[ n ]的形式。n 指定float数据的精度。n 为1到15 之间的整数值。当n 取1 到7 时,实际上是定义了一个real类型的数据,系统用4 个字节存储它;
当n 取8 到15 时,系统认为其是float类型,用8 个字节存储它。
numeric
numeric数据类型与decimal 数据类型完全相同。
注意:SQL Server 为了和前端的开发工具配合,其所支持的数据精度默认最大为28位。但可以通过使用命令来执行sqlserver.exe程序以启动SQL Server,可改变默认精度。
money货币型
money数据类型用来表示钱和货币值。这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的万分之一。money数据类型要求 8 个存储字节。
varchar
varchar数据类型的定义形式为varchar[(n| max )]。 它与char类型相似,n 的取值也为1 到8000,若输入的数据过长,将会截掉其超出部分。
不同的是,varchar数据类型具有变动长度的特性,因为varchar数据类型的存储长度为实际数值长度,若输入数据的字符数小于n ,则系统不会在其后添加空格来填满设定好的空间。
一般情况下,由于char数据类型长度固定,因此它比varchar类型的处理速度快。
nvarchar
nvarchar数据类型的定义形式为nvarchar [ ( n | max ) ]。它与varchar类型相似。不同的是,nvarchar数据类型采用UNICODE 标准字符集(Character Set), n 的取值为1 到4000。
text
text数据类型用于存储大量文本数据,其容量理论上为1 到2的31次方-1 (2147483647)个字节,在实际应用时需要视硬盘的存储空间而定。
SQL Server 中,将text和image 类型的数据直接存放到表的数据行中。
datetime
datetime 数据类型用于存储日期和时间的结合体。它可以存储从公元1753 年1 月1 日零时起到公元9999 年12 月31 日23 时59 分59 秒之间。精确到三百分之一秒或3.33毫秒