sql2005数据类型

       SQL Server提供两种数据类型:系统数据类型和用户定义数据类型。

1、SQL SERVER2005中的系统数据类型   

       SQL Server引入几个新的数据类型varchar(max), nvarchar(max), varbinary(max)和xml。(max)数据类型是大值数据类型,可以存储多大2GB的数据,用于替代以前的text, ntext 和image。这些新的大值数据类型的优点是可以对其使用transact-SQL函数,可以将他用作变量,也可以将他用作过程和函数的参数。

       另外一种新的数据类型XML。该数据类型可以按照原样存储XML文档和XML文档片段,

字段类型

描述

字符串(非UNICODE

char[(n)]

固定长度字符数据,长度为n 个字符,1n8000

varchar[(n)]

varchar(max)

可变长字符数据,1n8000maxmax 指示最大存储2^31-1 字节。存储大小为实际字符数+2

UNICODE 字符串

nchar[(n)]

固定长度字符数据,长度为n 个字符,1n8000

nvarchar[(n)]

nvarchar(max)

可变长字符数据,1n8000maxmax 指示最大存储2^31-1 字节 。存储大小为实际字符数*2+2

精确数字

bit

列为8Bit 或更少,则作为1 字节存储;以此类推

可以取01NULL注意 bit 列上不允许创建索引

tinyint

0255 的整型数字;1 字节

smallint

-2^152^15-1 的整数;2 字节

int

-2^312^31-1 的整数;4 字节

bigint

-2^63 2^63-1 的整数;8 字节

Decimal[(p,[s])]

numeric[(p,[s])]

(p) 表示最多可以存储的十进制数字总位数,1p38 ,默认18(s) 为小数位数。

精度

存储

1~9

5 字节

10~19

9 字节

20~28

13 字节

29~38

17 字节

smallmoney

-214748.3648214748.3647 的货币数据;4 字节

money

-922,337,203,685,477.5808 922,337,203,685,477.5807 ,精确到货币单位的万分之一;8 字节

近似数字

Float[(n)]

-1.79E+308~-2.23E-308 02.23E-308~1.79E+308 浮点数;1n53 ,默认53

n

精度

存储

1~24

7 位数

4 字节

25~35

15 位数

8 字节

real

-3.04E+38~-1.18E-38 01.18E-38~3.04E+38 的浮点数;

4 字节

日期时间

smalldatetime

190011 日到207966 日,精确到分。4 字节

datetime

175311 日到99991231 ,精确到3.33 毫秒。

8 字节

二进制字符串

binary[(n)]

固定长度二进制数据,1n8000

varbinary[(n)]

varbinary(max)

可变长字符数据,1n8000maxmax 指示最大存储2^31-1 字节。存储大小为实际长度+2

其他数据类型

timestamp

每当插入或更新一行数据时,数据库会使用一个唯一的二进制数字自动更新timestamp 列。每个表只能有一个timestamp 列。8 字节

unique identifier

存储16 字节二进制值的全局唯一标识符(GUID

Cursor

对游标的引用,只能用作变量或存储过程参数

sql_variant

支持各种数据类型,该列中存储数据值或描述该值的数据。不能存储(timestampxmlvarchr(max)nvarchar(max)varbinary(max)sql_variant 和用户定义数据类型);最大长度为8016 字节

Table

类似于使用临时表——声明中包括列的列表和数据类型。可用于定义局部变量或用户定义函数的返回值

Xml

存储XML 数据。最大2G

 

2.用户定义的数据类型

       用户定义数据类型分为两类——别名类型和公共语言运行时(CLR)用户定义类型。

(1)创建别名数据类型

       别名数据类型是自定义的系统数据类型。别名数据类型基于单一的系统数据类型,但他提供了一种对数据类型应用更具描述性名称的机制。别名数据类型可以进一步优化系统数据类型,以确保不同表使用公共数据元素时的一致性。

       在创建别名时,必须提供别名名称、所基于的系统数据类型,以及为空性(是否允许为NULL)      

Create TYPE [schema_name, ] type_name

{

From base_type

[ (precision [ ,scale ])]

[ NULL | NOT NULL ]

| EXTERNAL NAME assembly_name [.class_name]

}

 

       如创建一个photo_number别名数据类型:

       Create TYPE photo_number FROM varchar(12) NULL

(2)创建CLR用户定义数据类型

       a、使用Microsoft.NET Framwork支持的编程语言将用户定义类型编码成类或结构体

       b、使用合适的编译器编译,构建一个程序集

       c、使用create assembly语句在SQL Server2005中注册程序集

       d、使用Create Type语句创建医用该该程序集的数据类型。

       SQL 2005默认不能执行CLR代码,要启用CLR代码执行,需要启用:

       sp_configure 'clr enabled', 1

       reconfiger ;

 

 (3)删除用户定义数据类型

       Drop TYPE [ schema_name. ] type_name

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值