SQL--基本数据类型

数据类型(常用数据类型,以红名标注):
在Microsoft  SQL Server中,整数数据类型包括:

tinyint型:使用此数据类型时,存储数据的范围是从0到255,每个tinyint类型的数据占用1个字节的储存空间。

smallint型:使用此数据类型时,存储数据的范围是从-2的15次方(-32768)到2的15次方-1(32767),占用2个字节的储存空间。

int型:使用此数据类型时,存储数据的范围是-2的31次方到2的31次方-1,占用4个字节的储存空间。

bigint型:使用此数据类型时,存储数据的范围的是从-2的63次方到2的63次方-1,占用8个自己的储存空间。

浮点型数据类型:

real型:real数据类型可精确到第7位小数,其范围为-3.40E-38到3.40E+38,每个real类型占用4个字节的储存空间。

float型:精确到15位小数,范围为-1.79E-308到1.79E+308,占用8个字节的储存空间。float数据类型可写为float[N]的形式。N制定float数据的精度,N为1到15的整数值。当N取值为1到7时,实际上是定义了一个real的数据,系统用4个字节来储存它。当N取值为8到15时,系统认为其实float数据类型,用8个字节来储存它。

decimal型:decimal数据类型可以提供小数所需要的实际存储空间,但也有一个限定。我们可以用2到17个字节来储存从-10的38次方-1到10的38次方-1之间的数据,可以将其写为decimal(p,[s])的形式,p和s确定了精度的比列和数位,其中p表示可供储存的值的总位数(不包括小数点),缺省值为18;s表示小数点后的位数,缺省值为0,如:decimal(15,5),表示共有15位数,其中整数10位,小数5位。

numeric型:numeric数据类型与decimal数据类型完全相同。

字符串类型:

char:char是定长字符数据,其长度最多为8KB。如果将一个列的数据类型定义为char,那么我们就可以使用
char(x)指定该列所能存储的字符的数目,其中x是字符数目。

varchar:varchar是变长字符数据,起长度不超过8KB。varchar(x)

text:超过8KB的ASCⅡ数据可以用text数据类型存储。如:HTML文档全部都是ASCⅡ字符,并且在一般情况下长度超过8KB,所以这些文档可以用text数据类型存储在 SQL server中。

Unicode数据类型nchar、nvarchar和ntext:在Microsoft  SQL server中,传统的非Unicode数据类型允许使用由特定字符集定义的字符。在Unicode标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所占空间是使用非Unicode数据类型所占空间的两倍。 SQL Server中,Unicode数据以nchar、nvarchar和ntext数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用nvarchar字符类型,这时最多可以存储4000个字符。当列的长度固定不时,应该使用nchar字符类型,同样,这时最多可以存储4000个字符。当使用ntext数据类型时,该列可以存储多于4000字符。

在Microsoft  SQL Server中,二进制数据类型包括:

binary:binary数据类型用于存储二进制数据。其定义形式为binary(n),n表示为数据的长度,取值为1到8000。在使用时必须指定binary类型数据的大小,至少应为1字节。binary数据类型占用n+4字节的存储空间。在输入数据时必须在数据前加上字符“0x”作为二进制标识,如:要输入“abc”则应输入“0xabc”。若输入的数据过长将会截掉其超出部分。若输入的数据位数为奇数,则会在起始符号“0x”后面添加一个0,如上述的“0xabc”会被系统自动变为“0x0abc”。

varbinary:varbinary数据类型的定义为varbinary(n)。他与binary类型相似,n的取值也为1到8000,若输入的数据过长,将会截掉其他超出部分。不同的是varbinary数据类型具有变动长度的特性,因为varbinary数据类型的存储长度为实际数值长度+4个字节。当binary数据类型允许NULL值时,将被视为varbinary数据类型。

注:一般情况下,由于binary数据类型长度固定,因此它比varbinary类型的处理速度快。
逻辑数据类型:

bit:bit数据类型存储逻辑真与假数据,占用1个字节的存储空间,其值为0或1,若输入0与1外的数,将被视为1。bit类型不能定义为NULL值(所谓NULL值是指空值或无意义的值)。

图形数据类型:

SQL Server中的image数据类型用于存储大量的二进制数据,其理论容量为2的31次方-1(2,147,483,647)个字节。通常来存储图形等OLE(Object Linking adn Embedding,对象连接和嵌入)对象。在输入数据时同binary数据类型一样,必须在数据前面加上字符"0x"作为二进制标识。在Image数据类型中存储的数据是以位字串符存储的,不是由 SQL Server解释的,必须由应用程序来解释。如:应用程序可以使用BMP、TIEF、GIF、和JPEG格式把数据存储在Image数据类型中。

日期和时间数据类型:

datetime:用于存储日期和时间的结合体 范围1753-1-1是9999-12-31

smalldatetime:与datetime数据类型相似,但其日期范围较小,只能表示1900-1-1到2079-6-6

货币数据类型:

money:此数据类型的数据是一个有4位小数的decimal值,其取值从-2的63次方(-922,337,203,685,477,5808)到2的63次方-1(922,337,203,685,477,5807),数据精度为万分之一货币单位。money数据类型使用8个字节存储。

smallmoney:smallmoney数据类型类似于money类型,但其存储的货币值范围比money数据类型小,取值从-214,748,3648到+214,748,3647,存储空间为4个字节。

特殊数据类型:

SQL Server中包含了一些用于数据存储的特殊数据类型。

timestamp:此数据类型提供数据库范围内的唯一值。此类型相当于binary(8)或varchar(8),但当它所定义的列在更新或插入数据行时,此列的值会被自动更新,一个计数值将自动地添加到此timestamp数据列中。每个数据库表中只能有一个timestamp数据列。如果建立一个名为timestamp的列,则该列的类型降被自动设为timestamp数据类型。

uniqueidentifier:此数据类型储存一个16位的二进制数字。此数字成为GUID(Globally Unique Identifier,即全球唯一识别号)。此数字是由 SQL Server的NEWID函数产生的全球唯一编码,在全球各地的计算机经由此函数产生的数字不会相同。


基础的数据类型就这些,常用的已经用红色字体标注出来!本人小菜,大牛绕路勿喷!

你可能感兴趣的:(数据库)