1、SQL Server 常用数据类型【摘要】数据类型是数据的一种属性,是数据所表示信息的类型。SQL Server 2000提供了比较多的数据类型供用户使用,包括字符型数据类型、数值型数据类型、货币型数据类型、日期/时间型数据类型等。 【关键词】数据类型 字符 时间 数值 货币 一、引言 数据类型是数据的一种属性,是数据所表示信息的类型。SQL Server 2000提供了比较多的数据类型供用户使用,包括字符型数据类型、数值型数据类型、货币型数据类型、日期/时间型数据类型等。 二、字符型数据类型 字符型数据类型是使用最多的数据类型。它可以用来存储各种字母、数字符号、特殊符号。在使用字符类型数据时
2、,必须为其加上单引号。若将数值数据包括在单引号中,将被视为字符类型数据。一般来说,字符型数据类型有两种基本形式: (一) CHAR 定长字符型数据类型 CHAR 数据类型的定义形式为 CHAR(n) ,n 为长度,n 的取值范围为1-8000,共占 n个字节。若存储的字符串长度小于 n,则系统自动使用空格填补剩余的位置。若存储的字符串长度大于 n,那么在执行插入记录语句时将导致执行错误。 (二)VARCHAR 变长字符型数据类型 VARCHAR 数据类型的定义形式为 VARCHAR(n),最大长度为 n, n的取值范围为 1-8000。VARCHAR 数据类型的存储长度为实际字符串的长度,若存
3、储的字符串长度小于 n,系统不会使用空格填补剩余的位置。VARCHAR数据类型通常用于存放长度变化较大的字符串,这样可以节约大量的存储空间。但是使用 varchar(n)数据类型的缺点是,这种变长的存储方法使得用户无法确切地估计存储数据所使用的空间大小。 三、数值型数据类型 数值型数据类型包括整型数据类型、数字数据类型和浮点数据类型三种。 (一) 整型数据类型 整型数据类型只存储整数。整型数据类型包括以下四种: bigint 数据类型 bigint 数据类型占 8个字节,共 64位,能够存储-263263-1 之间的所有正负整数。在 64位中,63 位用来存储数值,1 位用来存储数值的正负。
4、int 数据类型 int 数据类型占 4个字节,共 32位,能够存储-231231-1 之间的所有正负整数。在 32位中,31 位用来存储数值,1 位用来存储数值的正负。 smallint 数据类型 smallint 数据类型占 2个字节,共 16位,能够存储-215215-1 之间的所有正负整数。在 16位中,15 位用来存储数值,1 位用来存储数值的正负。 (二) 数字数据类型 数字数据类型包括 decimal数据类型和 numeric数据类型两种, numeric数据类型与 decimal数据类型完全相同。decimal 数据类型可以提供小数所需要的实际存储空间,decimal 数据类型
5、最多可存储 38位数字。 decimal 数据类型的定义形式为 decimal(p, s)。 其中: p:为指定精度或对象能够控制的数字个数。 s:为指定可放到小数点右边的小数位数或数字个数。 p 和 s必须遵守以下规则:0 = s = p = 38。 (三) 浮点数据类型 浮点数据类型包括 float数据类型和 real数据类型,这两种数据类型被称为近似数据类型。 real 数据类型 real 数据类型占 4个字节,共 32位,能够存储-3.40E+383.40E+38 之间所有的浮点数。 float 数据类型 float 数据类型占 8个字节,共 64位,能够存储-1.79E+3081.7
6、9E+308 之间所有的浮点数。float 数据类型可精确到第15 位小数。float 数据类型可以定义为 float(n) ,n 为数据的精度。若n 取 1 到 7 时,实际上是定义了一个 real类型的数据,系统将分配 4个字节的空间存储数据;若 n 取 8 到 15 时,系统认为其是 float类型,将分配 8 个字节的空间存储数据。 四、货币型数据类型 货币型数据类型用于存储货币值。在 SQL Server 2000中提供两种货币型数据类型:money 数据类型和 smallmoney 数据类型。 (一)money 数据类型 money 数据类型使用 8个字节存储数据,由两部分组成,前
7、面 4个字节表示货币值的整数部分,后面 4个字节表示货币值的小数部分。 (二)smallmoney 数据类型 smallmoney 数据类型类似于 money类型,使用 4个字节存储数据,前面 2个字节表示货币值的整数部分,后面 2个字节表示货币值的小数部分。 五、日期/时间型数据类型 日期/时间型数据类型用于存储日期和时间的结合体。 (一)datetime 数据类型 datetime 数据类型可以存储从公元 1753 年 1 月 1 日零时起到公元9999 年 12 月 31 日 23 时 59 分 59 秒之间的所有日期和时间,其精确度可达三百分之一秒。datetime 数据类型占用 8个
8、字节的存储空间。 (二)smalldatetime 数据类型 smalldatetime 数据类型与 datetime数据类型相似,但其日期时间范围较小,可以存储从 1900 年 1 月 1 日到 2079 年 6 月 6日,精度可以达到分钟。smalldatetime 数据类型占用 4个字节的存储空间。 参考文献: 1陈洛资,陈昭平.数据库系统及应用基础M.北京:清华大学出版社, 北京交通大学出版社,2005. 2李代平.SQL server 2000 实用宝典M.北京:地质出版社,2001. 3徐人风.SQL Server 2000数据库及应用M.北京:高等教育出版社,2004. 4李调阳.SQL Server 2000中文版标准教程M.北京:海洋出版社,2005.