代码改变世界

MS_SQL学习 系统数据类型

2010-12-09 09:31  bingcaihuang  阅读(386)  评论(0编辑  收藏  举报

SQL Sever数据类型SQL Sever数据类型可以分为系统内置数据类型和用户自定义数据类型两种。
系统数据类型数据类型由系统定义,这类数据类型通常称之为系统数据类型。
(1)字数数据类型:Char,Varchar,TextChar是定长字符数据类型,其长度最多为8K,默认为1K。当表中的列定义为char(n)类型时,如果实际要存储的串长度不足 n,则在串的尾部添加空格,以达到长度n,所以其数据长度为n。
Varchar是变长字符数据类型,其长度不超过8KB。当表中的列定义为 varchar(n)类型时,n表示的是字符串可达到的最大长度,varchar(n)的长度是输入的字符串实际字符个数,而不一定是 n。
Text,超过8KB的ASCII数据可以使用Text数据类型存储。
(2)数值型数据类型在 MicrsoftSQL Server中,整数存储的数据类型是bigint,int,smallint和tinyint。bigint 8字节长int 4字节长smallint 2字节长tinyint 1字节长
在SQL Server中精确数值型是decimal和numeric,两者惟一的区别在于decinal不能用于带有identity关键字的列。decimal(p,s) 其中p:指定精度或对象能够控制的数字个;s:指定可放到小数点右边的小数位数或数字个数,指定的范围最少为0,最多不可超过p例如,如果定义decimal(8,6),那么该类型的取值范围是-99.999 999~99.999 999。
在 SQL Server 中,近似小数数据的数据类型是float和real。
(3)货币型数据类型在Microsoft SQL Server中,货币数据的数据类型是Money和Smallmoney,Money数据类型要求8个存储字节,Smallmoney数据类型要求4个存储字节。
(4)时间/日期数据类型日期/时间数据类型用于存储日期和时间信息,包括Datetime和Smalldatetime两种类型。在 Microsoft SQL Server中,Datetime数据类型所存储的日期范围是从1753年1月1日到9999年12月31日(每一个值要求8个存储字节)Smalldatetime 数据类型所存储的日期范围是1900年1月1日到2079年12月31日(每一个值要求 4个存储字节)
日期格式设置命令:Set DateFormat {format | @format_var} 有效的参数包括 MDY、DMY、YMD、YDM、MYD和DYMSet DateFormat YMDSQL Server中常用的日期和时间表示格式如下: ·分隔符可用'/ '、'-'或'.',例如:'4/15/2005'、'4-15-05'或'4.15.2005'; ·字母日期格式:'April 15,2005'; ·不用分隔符:'20050501'; ·时:分:秒:毫秒:08:05:25:28; ·时:分 AM|PM:05:08AM、08:05PM
(5)二进制数据类型二进制数据类型表示的是位数据流,包括Binary(固定长度)和Varbinary(可变长度)两种,可用来输入和显示前缀为0x的十六进制值·Binary(n)是n位固定的二进制数据。其中,n的取值范围是从1到8000。其存储的大小是n+4个字节,即需另外增加4个字节,未填满数据的部分会自动补上0x00。·Varbinary(n)是n位变长度的二进制数据。其中,n的取值范围是从1到8000。其存储的大小是n+4个字节,不是n个字节。
(6)其他数据类型·Image数据类型中存储的数据是以位字符串存储的,不是由SQL Server解释的,必须由应用程序来解释。 例如,应用程序可以使用BMP,TIEF,GIF和JPEG格式把数据存储在Image数据类型中。 ·Timestamp是时间戳数据类型,若创建表时定义一个列的数据类型为时间戳型,当某条记录有变动时,该条记录的Timestamp字段便会自动产生新值,此值会是整个数据库的惟一值。·Uniqueidentifier由16字节的十六进制数字组成,表示一个全局惟一的标识符。当表的记录行要求惟一时,GUID(全局惟一标识符)是非常有用的,GUID为了实际需要,在不相关的计算机之间,通过某种方式产生128位(16 字节)值,保证该值全局惟一。·Bit数据类型由1或者0组成。这种数据类型用于存储只有两种可能值的数据,如Yes或No、True或False、On或Off。
Unicode数据类型包括Nchar,Nvarchar和Ntext。Unicode是“统一字符编码标准”,用于支持国际上非英语种的字符数据的存储和处理。Nchar,nvarchar 和ntext与char,varchar和text的使用非常相似,只是字符集不同(前者使用Unicode字符集,后者使用 ASCII字符集)。使用Unicode数据类型,所占用的存储大小是使用非 Unicode 数据类型所占用的存储大小的两倍。