3.2 数据类型
第2章在创建数据库表的字段时,已经简单列出了SQL Server 2008常用的数据类型,这里再次讲解SQL Server 2008的数据类型,以便更详细地理解。
T-SQL中的数据类型可分为系统数据类型和用户自定义数据类型两种。
3.2.1 整数
整数数据类型用于定义存储整数(如12345、-678等)的字段和变量,包括bigint、int、smallint、tinyint、bit 5种类型,如表3.1所示。
表3.1 整数数据类型
注:Microsoft SQL Server 2008 DataBase Engine优化了bit列的存储。如果表中的列为8 bit或更少,则这些列作为1个字节存储;如果列为9~16 bit,则这些列作为2个字节存储。
3.2.2 精确小数
精确小数是指精度和数点位置固定的数,如1.2345、-22.332等,包括decimal和numeric类型,如表3.2所示。
表3.2 精确小数数据类型
3.2.3 货币数据
货币数据是指以货币符号“$”开头的数据,如$123.45、$10.432等,包括money和smallmoney类型,其精度都精确到小数点后4位,如表3.3所示。
表3.3 货币数据类型
3.2.4 近似数字
近似数字是指小数位置不固定的数据,如1.234E+12等,包括float和real两种类型,如表3.4所示。
表3.4 近似数字数据类型
注:float [(n)]中n 为用于存储float 数值尾数的位数,以科学计数法表示,因此可以确定精度和存储大小。如果指定了n,则它必须是1~53中的某个值,默认值为53,如表3.5所示。
表3.5 float [(n)]情况
3.2.5 日期时间数据
日期时间数据是指表示日期和时间的数据,如2007-07-16 13:23:34,包括datetime和smalldatetime两种类型,如表3.6所示。
表3.6 日期时间数据类型
3.2.6 字符串
字符串是指文本数据,如"abcde"、"张三",如表3.7所示。
表3.7 字符数据类型
3.2.7 Unicode字符串
Unicode是双字符字符编码标准。Unicode字符串字符使用两个字节存储,而普通字符采用一个字节存储,包括nchar、nvarchar、ntext类型,如表3.8所示。
表3.8 Unicode字符串数据类型
注:在Microsoft SQL Server的未来版本中将删除ntext、text和image数据类型,应避免在新开发工作中使用这些数据类型,并考虑修改当前使用这些数据类型的应用程序,改用nvarchar(max)、varchar(max)和varbinary(max)。
3.2.8 二进制数据
二进制数据是指Word文档、Excel电子表格及bmp、gif和jpeg等图像文件,具有binary、varbinary、image类型,如表3.9所示。
表3.9 二进制数据类型
3.2.9 其他数据类型
其他数据类型是指一些具有特殊作用的数据类型,如表3.10所示。
表3.10 其他数据类型