您的位置:首页 > 数据库

T-SQL语句之SQLSERVER中的系统数据类型

2008-08-07 19:26 399 查看
1>二进制数据类型
二进制数据类型使一些用十六进制表示的数据。二进制数据类型包括三种:binary,varbinary和image。
binary[(n)]:固定长度的n个字节二进制数据,最大长度可达8KB。
Varbinary[(n)]:n个字节可变长二进制数据,其最大长度不得超过8KB。
Image:可用于存储字节数超过8KB的数据,如Microsoft Word文档、Microsoft Excel图表以及图像数据等,其最大长度为231-1个字节。
2>整数数据类型
整数数据类型有五种:bit,int,bigint,smallint,tinyint。
bit:bit型数据的值只能为0或1.通常使用bit类型的数据表示真假逻辑关系,如on/off、yes/no、ture/false等。不能对bit类型的列使用索引。
Int:可以存储从-231到-231-1范围内的全部正负数。int型数据占用的存储空间大小为4KB个字节。
bigint:可以存储-263到263-1范围内的全部负数,所占存储空间大小为8个字节。
smallint:存储从-215到-215-1范围内的全部正负数,所占存储空间大小为2个字节。
tinyint:可以存储0~255之间的所有整数,所占存储空间大小为1个字节。
3>浮点数据类型
浮点数据类型包括float和real两种类型,用于存储范围非常大的数字。
float:该类型数据范围是-1.79E+308~1.79E+308.
real:该类型数据范围是-3.40E+38~3.40E+38.
浮点数据类型容易发生舍入误差,因此一般在货币运算上不使用它但是在科学运算或统计运算计算等不要求绝对精确的运算场合使用浮点数据类型非常方便。
4>精确的小树数据类型
精确小数数据类型包括decimal和numeric两种,可以精确指定小数点两边的总位数和小数点右面的位数。这两种数据的去值范围都是从-1038-1到1038-1.
decimal和numeric的区别在于:numeric类型的列可以带有IDENTITY关键字。
5>货币数据类型
货币数据类型专门用于货币数据处理,包括money和smallmoney。
money:以money数据类型存储的货币值的范围从-263到263-1,精确到货币单位的10‰。money数据类型要求有两个2字节整数构成,前面的一个4字节表示货币值的整数部分,后面的一个4字节表示货币值的小数部分。
smallmoney:以smallmoney数据类型存储的货币值介于-214748.3648与214748.3647之间,精确到货币单位的10‰。smallmoney数据类型要求有两个2字节整数构成,前面的一个2字节表示货币值的整数部分,后面的一个2字节表示货币值的小数部分。
6>日期/时间数据类型
日期/时间数据类型可以存储日期和时间的组合数据,包括datetime和smalldatetime两种数据类型。
datetime:存储从1753年1月1日到9999年12月31日的日期和时间数据,精确到0.00333s或是3.33s。每个datetime类型的数据占用8个字节的存储空间。
smalldatetime:存储从1900年1月1日到2079年12月31日的日期和时间数据可以精确到分钟。每个smalldatetime类型的数据占用4个字节的存储空间。
7>字符数据类型
字符数据类型是由字母、数字和符号组合而成,如‘beijing’、‘zyf123@126.com’等都是合法的字符型数据。字符数据类型可以分为3种:
char[(n)]:使用固定长度来存储字符,每个字符占用一个字节的存储空间,其最大长度为8000个字符。利用char数据类型来定义表列或变量时,应该给定数据的最大长度,例如有这样的定义:declare @name char(10)。
定义变量name为char类型,最长可容纳10个字符。如果实际赋给变量的字符长度短于给定的最大长度,则多余的字符会以空格填充;如果实际赋给变量的字符长度超过了给定的最大长度,则超过的字符将会被截断。字符型常量必须使用单引号括起来。
varchar[(n)]:用于存储最长可达8000字符的变长字符型数据。varchar数据类型的存储空间虽存储的每一个数据的字符数的不同而变化。
text:专门用于存储数量庞大的变长字符数据。最大长度可达231-1个。
8>Unicode数据类型
Unicode数据类型用于存储要用两个字符才能存储的双字节字符,例如汉子、日文或韩文等Unicode数据类型包括nchar、nvarchar和ntext。
nchar(n):固定长度的Unicode数据,括号中的n用来定义字符数据的最大长度。n的取值范围是1~4000.由于存储的都是双字节字符,因此Unicode数据的存储空间都是:Unicode数据的存储空间=字符数*2(字节)。
nvarchar(n):用于存储可变长度的Unicode数据,括号汇总的n用来定义字符数据的最大长度。n的取值范围是1~4000。
ntext:用于存储可变长度的Unicode数据,其最大长度突破了前两种数据的规定,最多可以存储230-1个Unicode数据。
9>sql_variant数据类型
sql_variant数据类型可以应用在列,参数,变量和函数返回值中,以sql_variant为数据类型的数据可以存储除text、ntext、image和sql_variant数据类型以外的各种数据。

10>[/b]用户自定义数据类型[/b][/b]
1.创建用户自定义数据类型
例[/b]1[/b]
创建两个自定义数据类型。第一个自定义的数据类型telephone_code,数据长度为15,可变长字符型,允许为空;第二个自定义数据类型zip,定长字符型长度为6,不允许为空。
USE sales
GO
EXEC sp_addtype telephone_code,’varchar(15)’,’NULL’
EXEC sp_addtype zip,’char(6)’,’NOT NULL’
2.查看用户自定义数据类型
使用存储过程sp_help可以查看用户自定义数据类型的特征。
例[/b]2[/b]
查看telephone_code的特征。
EXEC sp_help telephone_code
3.删除用户自定义数据类型
使用存储过程sp_droptype删除用户自定义数据类型。
例[/b]3[/b]
删除前例中定义的数据类型telephone_code。
EXEC sp_droptype telephone_code
注意:只能删除已经定义但未被使用的用户自定义数据类型,正在被表或其他数据库对象使用的用户自定义数据类型不能删除。本文出自 “gc319的世界~” 博客,请务必保留此出处http://gc319.blog.51cto.com/445035/91646
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: