文档介绍:第2章 SQL Server 2005数据类型
系统数据类型
用户自定义数据类型
当定义表的字段、声明程序中的变量时,都需要为它们设置一个数据类型,目的是指定该字段或变量所存放的数据是整数、字符串、货币或是其他类型的数据。不同的数据类型直接决定着数据在物理上的存储方式、存储大小、访问速度,所以正确地选择数据类型,对表的设计至关重要。
因此,在开发一个数据库系统之前,最好能够真正理解各种数据类型的存储特征。SQL Server中的数据类型可分为系统内置数据类型和用户自定义数据类型两种。本章重点介绍各种数据类型的特点和基本用法以及创建和删除用户定义的数据类型的方法。
系统数据类型
字符串数据类型
精确数字类型
近似数字类型
日期和时间数据类型
Unicode字符串
二进制字符串
其他数据类型
字符串数据是由任意字母、符号和数字任意组合而成的数据,是现实工作中最常用的数据类型之一。字符串数据的类型包括Char、Varchar和Text。
Char是定长字符数据类型,其长度最多为8KB,默认为1KB。当表中的列定义为char(n)类型时,如果实际要存储的串长度不足n,则在串的尾部添加空格,以达到长度n,所以其数据存储长度为n字节。
字符串数据类型
Varchar是变长字符串数据类型,其长度不超过8KB。当表中的列定义为varchar(n)类型时,n表示的是字符串可达到的最大长度,varchar(n)的长度是输入的字符串实际字符个数,而不一定是n。
超过8KB的ASCII数据可以使用Text数据类型存储。
数字类型只包含数字,例如正数和负数、小数和整数,包括bigint、int、smallint、tinyint、bit、decimal、numeric和money。
精确数字类型
整数由正整数和负整数组成,例如18、25、−3和28813。在Microsoft SQL Server中,整数存储的数据类型是bigint、int、smallint和tinyint。bigint为大整数,该数据类型存储数据的范围大于int;int为整型,该数据类型存储数据的范围大于smallint 数据类型存储数据的范围;而smallint为短整型,该数据类型存储数据的范围大于tinyint数据类型存储数据的范围;tinyint为微短整型。
使用bigint数据类型存储数据的长度为8个字节,数据范围为−263~263−1,即−9223372036854775808~9223372036854775807(每一个值要求8个字节存储空间)。int数据类型存储数据的范围为−231~231−1,即−2147483648~2147483647(每一个值要求4个字节存储空间)。使用smallint数据类型时,存储数据的范围为−215~215−1,即−32768~32767(每一个值要求2个字节存储空间)。使用tinyint数据类型时,存储数据的范围是从0到255(每一个值要求1个字节存储空间)。
bit类型存储1个字节,可以取值为1、0或NULL的整数数据类型,一般用作判断。
decimal和numeric由整数部分和小数部分构成,其所有的数字都是有效位,能够以完整的精度存储十进制数,两者唯一的区别在于decimal不能用于带有identity关键字的列。这种数据类型的存储范围取决于一个确定的数字表达法,而不是一个固定的数值。