sql 数据类型

 

数据类型是指列、存储过程参数和局部变量数据特征,它决定了数据的存储格式,代表着不同的信息类型。
数据类型可分为系统数据类型(如下表)和用户定义数据类型两种:

 

1.二进制型
二进制数据类型代表二进制数,其最大长度为255字节,二进制数可以是0~9和A~F或a~f的字符组成,二进制数以0x标识开头,其中每两个字符为一组,构成一个字节,如0xf5。
分类:
定长二进制数据类型(用binary[(n)]声明);
变长二进制数据类型(用varbinary[(n)]声明)。
例:
Delare @varl binary(10)
Select @varl '0x10 ff aa'
Declare @var2 varbinary(64)
注意:在数据类型定义语句或变量声明时,如果不指定n值,则其长度为1,然而在Convert转换函数中如果不指定n值时,其缺省长度则为30。
定长和变长的区别:对于定长的数据类型,不管其输入值的实际长度是多少,它都点用n字节。如果所赋数据度度超过n时,超出部分将被截断。而变长二进制列的存储长度是可变的,它为字符串的实际长度,但最大不得超过n所规定的值。当输入数据长度超过n时,余下部分将被截断。

2.字符类型
在输入字符数据时应将数据引在单引号内。字符类型也有定长(char[(n)])和变长(varchar[(n)])二种。
3.日期时间类型
分类:datetime和smalldatetime
datetime类型的数据长度为8字节,smalldatetime类型的数据长度为4字节。
4.整数型
分类: bigint 、int、smallint、tinyint。bigint长度为8个字节i,nt长度为4个字节,smallint长度为2个字节,tinyint长度为1字节。长整数用number(n)。
5.精确数值型
分类:decimal[(p[,s])]和numeric[(p[,s])]{p指精度,s指小数位}
6.近似数值型
分类:float[(n)]、real。float数据类型可以存储正、负浮点数,n确定二进制数精度,它可以为1到15。当其精度为1到7之间时,等同于real数据类型。
7.货币型
分类:money(占8个字节)、smallmoney(占4个字节)
8.位数据类型
位数据类型用bit关键字声明,其数据有两种取值:0和1。在输入0以外的其他值时系统均将它们当作1看待。
9.时间戳数据类型
用timestamp声明
10.文本和图象类型
文本(text)和图象(image)类型是两种可变长度的数据类型。向text列中插入数据时,应将数据引在单引号内。向image列中插入数据时,应在数据前加0x引导符。
标识符:
标识符的命名规则如下:
(1)标识符长度为1到30字符。
(2)标识符的第一个字符必须为字母或_、@、#符号。其中@和#符号具有特殊的意义:当标识符开头为@时,表示它是一局部变量;标识符首字符为#时,表示是一临时数据库对象,对于表或存储过程,名称开头含一个#号时表示为局部临时对象,含两个##时表示为全局临时对象。
(3)标识符中第一个字符后面的字符可以为字母、数字或#、$、_符号。
(4)缺省情况下,标识符内不允许有空格,也不允许使用关键字等作为标识符,但可以使用引号来定义特殊标识符。 

 

字段类型

描述

bit

01的整型数字

int

-2^31(-2,147,483,648)2^31(2,147,483,647)的整型数字

smallint

-2^15(-32,768)2^15(32,767)的整型数字

tinyint

0255的整型数字

decimal

-10^3810^38-1的定精度与有效位数的数字

numeric

decimal的同义词

money

-2^63(-922,337,203,685,477.5808)2^63-1(922,337,203,685,477.5807)的货币数据,最小货币单位千分之十

smallmoney

-214,748.3648214,748.3647的货币数据,最小货币单位千分之十

float

-1.79E+3081.79E+308可变精度的数字

real

-3.04E+383.04E+38可变精度的数字

 

 

datetime

17531199991231的日期和时间数据,最小时间单位为百分之三秒或3.33毫秒

smalldatetime

190011207966的日期和时间数据,最小时间单位为分钟

timestamp

时间戳,一个数据库宽度的唯一数字

uniqueidentifier

全球唯一标识符GUID

char

定长非Unicode的字符型数据,最大长度为8000

varchar

变长非Unicode的字符型数据,最大长度为8000

text

变长非Unicode的字符型数据,最大长度为2^31-1(2G)

nchar

定长Unicode的字符型数据,最大长度为8000

nvarchar

变长Unicode的字符型数据,最大长度为8000

ntext

变长Unicode的字符型数据,最大长度为2^31-1(2G)

binary

定长二进制数据,最大长度为8000

varbinary

变长二进制数据,最大长度为8000

image

变长二进制数据,最大长度为2^31-1(2G)

 

posted @ 2012-12-17 22:32  北极星 - North Star  阅读(264)  评论(0编辑  收藏  举报