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.整数型

  分类: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)缺省情况下,标识符内不允许有空格,也不允许使用关键字等作为标识符,但可以使用引号来定义特殊标识符.