SQL-2005系统数据类型

来源:互联网 发布:淘宝uv是什么 编辑:程序博客网 时间:2024/05/17 08:54

 

1、精确数字类型
(1)精确数字类型包括:
整数类型;
Bit(位类型);
DecimalNumeric(数值类型);
MoneySmallMoney(货币类型)。
1、精确数字类型
(2)整数类型
整数类型是最常用的数据类型之一,它主要用来存储数值,可以直接进行数据运算,而不必使用函数转换。整数类型包括以下四类:
1BigintBigint数据类型可以存储从 (-9223372036854775808) (9223372036854775807) 范围之间的所有整型数据。每个Bigint数据类型值存储在8个字节中。
2IntInteger):Int(或integer)数据类型可以存储从(-2147483648到(2147483647)范围之间的所有正负整数。每个Int数据类型值存储在4个字节中。
3Smallint:可以存储从(-32768)到32767范围之间的所有正负整数。每smallint类型的数据占用2个字节的存储空间。
4Tinyint:可以存储从0~255范围之间的所有正整数。每个tinyint类型的数据占用1个字节的存储空间。
1、精确数字类型
(3)位数据类型
Bit称为位数据类型,其数据有两种取值:01,长度为1字节。在输入0以外的其他值时,系统均把它们当1看待。这种数据类型常作为逻辑变量使用,用来表示真、假或是、否等二值选择。
(4)Decimal数据类型和Numeric数据类型
Decimal数据类型和Numeric数据类型完全相同,它们可以提供小数所需要的实际存储空间,但也有一定的限制,可以用2~17个字节来存储-1038+11038-1之间的固定精度和小数位的数字。也可以将其写为Decimalps)的形式,ps确定了精确的总位数和小数位。其中p表示可供存储的值的总位数,默认设置为18s表示小数点后的位数,默认设置为0。例如:decimal105),表示共有10位数,其中整数5位,小数5位。
1、精确数字类型
(5)货币数据类型
货币数据类型包括MoneySmallMoney两种:
1Money:用于存储货币值,存储在money数据类型中的数值以一个正数部分和一个小数部分存储在两个4字节的整型值中,存储范围为(-9223372136854775808)到9223372136854775807),精确到货币单位的千分之十。
2Smallmoney:与money数据类型类似,但范围比money据类型小,其存储范围为-21474834682147483467之间,精确到货币单位的千分之十。
     当为moneysmallmoney的表输入数据时,必须在有效位置前面加一个货币单位符号。
2、近似数字类型
近似数字类型包括RealFloat两大类。
1Real:可以存储正的或者负的十进制数值,最大可以有7精确位数。它的存储范围从-3.40E-38~3.40E+38。每个Real 类型的数据占用4个字节的存储空间。
2Float:可以精确到第15位小数,其范围从-1.79E-308~1.79E+308。如果不指定Float 数据类型的长度,它占用8字节的存储空间。Float数据类型也可以写为Floatn)的形式,n指定Float数据的精度,n1~15之间的整数值。当n1~7时,实际上是定义了一个Real 类型的数据,系统用4个字节存储它;n8~15时,系统认为其是Float类型,用8个字节存储它。

3. 日期和时间数据类型
1Datetime:用于存储日期和时间的结合体,它可以存储从公元175311日零时起~公元99991231235959秒之间的所有日期和时间,其精确度可达三百分之一秒,即3.33毫秒。Datetime数据类型所占用的存储空间8个字节,其中前4个字节用于存储基于190011日之前或者之后日期数,数值分正负,负数存储的数值代表在基数日期之前的日期,正数表示基数日期之后的日期,时间以子夜后的毫秒存储在后面的4个字节中。当存储Datetime数据类型时,默认的格式是MM DD YYYY hh:mm A.M./P.M,当插入数据或者在其他地方使用Datetime类型时,需要用单引号把它括起来。默认的时间日期January 1,1900 12:00 A.M。可以接受的输入格式如下:Jan 4 1999JAN 4 1999January 4 1999Jan 1999 41999 4 Jan1999 Jan 4
2Smalldatetime:与Datetime数据类型类似,但其日期时间范围较小,它存储从190011~207966日内的日期。SmallDatetime数据类型使用4个字节存储数据,SQL Server 20002个字节存储日期190011日以后的天数,时间以子夜后的分钟数形式存储在另外两个字节中,SmallDatetime精度为1分钟。

4. 字符数据类型
字符数据类型也是SQL Server中最常用的数据类型之一,它可以用来存储各种字母、数字符号和特殊符号。在使用字符数据类型时,需要在其前后加上英文单引号或者双引号。
1Char:其定义形式为Charn),当用Char数据类型存储数据时,每个字符和符号占用一个字节的存储空间。n表示所有字符所占的存储空间,n的取值为1~8000。若不指定n值,系统默认n的值为1。若输入数据的字符串长度小于n,则系统自动在其后添加空格来填满设定好的空间;若输入的数据过长,将会截掉其超出部分。如果定义了一Char数据类型,而且允许该列为空,则该字段被当作Varchar来处理。
2Varchar:其定义形式为Varcharn)。用Char数据类型可以存储长达255个字符的可变长度字符串,和Char类型不同的是Varchar类型的存储空间是根据存储在表的每一列值的字符数变化的。例如定义Varchar20),则它对应的字段最多可以存储20个字符,但是在每一列的长度达到20字节之前系统不会在其后添加空格来填满设定好的空间,因此使用Varchar类型可以节省空间。
3Text:用于存储文本数据,其容量理论上为1~231-12147483647)个字节,但实际应用时要根据硬盘的存储空间而定。


5. Unicode 字符数据类型
Unicode 字符数据类型包括NcharNvarcharNtext三种:
1Nchar:其定义形式为Ncharn)。它与Char数据类型类似,不同的是Nchar数据类型n的取值为1~4000Nchar数据类型采用Unicode标准字符集,Unicode标准用两个字节为一个存储单位,其一个存储单位的容纳量就大大增加了,可以将全世界的语言文字都囊括在内,在一个数据列中就可以同时出现中文、英文、法文等,而不会出现编码冲突。
2Nvarchar:其定义形式Nvarcharn)。它与Varchchar数据类型相似,Nvarchar数据类型也采用Unicode标准字符集,n的取值范围为1~4000
3Ntext:与Text数据类型类似,存储在其中的数据通常是直接能输出到显示设备上的字符,显示设备可以是显示器、窗口或者打印机。Ntext数据类型采Unicode标准字符集,因此其理论上的容量为230-11073741823个字节。
6. 二进制字符数据类型
二进制数据类型包括BinaryVarbinaryImage三种:
1Binary:其定义形式为Binaryn),数据的存储长度是固定的,即n+4个字节,当输入的二进制数据长度小于n时,余下部分填充0。二进制数据类型的最大长度(即n的最大值)为8000常用于存储图像等数据。
2Varbinary:其定义形式为Varbinaryn),数据的存储长度是变化的,它为实际所输入数据的长度加上4字节。其他含义同Binary
3Image:用于存储照片、目录图片或者图画,其理论容量为231-12147483647)个字节。其存储数据的模式与Text数据类型相同,通常存储在Image字段中的数据不能直接用Insert语句直接输入。
7. 其它数据类型
1Sql_variant:用于存储除文本、图形数据和Timestamp类型数据外的其他任何合法的SQL Server数据。此数据类型极大地方便了SQL Server的开发工作。
2Table:用于存储对表或者视图处理后的结果集。这种新的数据类型使得变量可以存储一个表,从而使函数或过程返回查询结果更加方便、快捷。
3Timestamp:亦称时间戳数据类型,它提供数据库范围内的惟一值,反应数据库中数据修改的相对顺序,相当于一个单调上升的计数器。当它所定义的列在更新或者插入数据行时,此列的值会被自动更新,一个计数值将自动地添加到此Timestamp数据列中。如果建立一个名为Timestamp的列,则该列的类型将自动设为Timestamp数据类型。
4Uniqueidentifier:用于存储一个16字节长的二进制数据类型,它是SQL Server根据计算机网络适配器地址和CPU时钟产生的全局惟一标识符代码(Globally Unique Identifier,简写为GUID)。此数字可以通过调用SQL Server newid()函数获得,在全球各地的计算机经由此函数产生的数字不会相同。
5XML :可以存储XML数据的数据类型。利用它可以将XML实例存储在字段中或者XML类型的变量中。注意存储在XML中的数据不能超过2GB
6Cursor:这是变量或存储过程OUTPUT 参数的一种数据类型,这些参数包含对游标的引用。使用 Cursor 数据类型创建的变量可以为空。注意:对于 CREATE TABLE 语句中的列,不能使用Cursor 数据类型。
用户自定义数据类型  
SQL Server允许用户自定义数据类型,用户自定义数据类型是建立在SQL Server系统数据类型基础上的,当用户定义一种数据类型时,需要指定该类型的名称、建立在其上的系统数据类型以及是否允许为空等。
SQL Server为用户提供了两种方法来创建自定义数据类型:
1使用SQL Server管理平台创建用户自定义数据类型;
2)利用系统存储过程创建用户自定义数据类型  
1使用SQL Server管理平台创建用户自定义数据类型
2利用系统存储过程创建用户自定义数据类型
系统存储过程sp_addtype为用户提供了用T_SQL语句创建自定义数据类型的途径,其语法形式如下:
 sp_addtype [@typename=] type,
 [@phystype=] system_data_type
 [, [@nulltype=] null_type]
 [, [@owner=] ‘owner_name’]
2利用系统存储过程创建用户自定义数据类型
5-1 自定义一个地址(address)数据类型。
程序清单如下:
exec sp_addtype address, varchar80’, ‘not null

 

原创粉丝点击