数据类型是指列、存储过程参数和局部变量数据特征,它决定了数据的存储格式,代表着不同的信息类型。
数据类型可分为系统数据类型(如下表)和用户定义数据类型两种:
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.整数型
分类:int、smallint、tinyint.int长度为4个字节,smallint长度为2个字节,tinyint长度为1字节.
5.精确数值型
分类:decimal[(p[,s])]和numer[(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)缺省情况下,标识符内不允许有空格,也不允许使用关键字等作为标识符,但可以使用引号来定义特殊标识符.