SQL-2005系统数据类型

 

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 、近似数字类型
近似数字类型包括 Real Float 两大类。
1 Real :可以存储正的或者负的十进制数值,最大可以有 7 精确位数。它的存储范围从 -3.40E-38~3.40E+38 。每个 Real 类型 的数据占用 4 个字节的存储空间。
2 Float :可以精确到第 15 位小数,其范围从 -1.79E- 308~1.79E+308 。如果不指定 Float 数据类型的长度,它占用 8 字节的存储空间。 Float 数据类型也可以写为 Float n )的形式, n 指定 Float 数据的精度, n 1~15 之间的整数值。当 n 1~7 时, 实际上是定义了一个 Real 类型的数据,系统用 4 个字节存储它; n 8~15 时,系统认为其是 Float 类型,用 8 个字节存储它。

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

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


5. Unicode 字符数据类型
Unicode 字符数据类型包括 Nchar Nvarchar Ntext 三种:
1 Nchar :其定义形式为 Nchar n )。它与 Char 数据类型类似,不同的是 Nchar 数据类型 n 的取值为 1~4000 Nchar 数据类型采用 Unicode 标准字符 集, Unicode 标准用两个字节为一个存储单位,其一个存储单位的容纳量就大 大增加了,可以将全世界的语言文字都囊括在内,在一个数据列中就可以同时 出现中文、英文、法文等,而不会出现编码冲突。
2 Nvarchar :其定义形式 Nvarchar n )。它与 Varchchar 数据类型相 似, Nvarchar 数据类型也采用 Unicode 标准字符集, n 的取值范围为 1~4000
3 Ntext :与 Text 数据类型类似,存储在其中的数据通常是直接能输出到显 示设备上的字符,显示设备可以是显示器、窗口或者打印机。 Ntext 数据类型采 Unicode 标准字符集,因此其理论上的容量为 230-1 1 073 741 823 个字节。
6. 二进制字符数据类型
二进制数据类型包括 Binary Varbinary Image 三种:
1 Binary :其定义形式为 Binary n ),数据的存储长度是固 定的,即 n+4 个字节,当输入的二进制数据长度小于 n 时,余下部 分填充 0 。二进制数据类型的最大长度(即 n 的最大值)为 8000 常用于存储图像等数据。
2 Varbinary :其定义形式为 Varbinary n ),数据的存储长 度是变化的,它为实际所输入数据的长度加上 4 字节。其他含义同 Binary
3 Image :用于存储照片、目录图片或者图画,其理论容量为 231-1 2 147 483 647 )个字节。其存储数据的模式与 Text 数据类型相同,通常存储在 Image 字段中的数据不能直接用 Insert 语句直接输入。
7. 其它数据类型
1 Sql_variant :用于存储除文本、图形数据和 Timestamp 类型数据外的其他任何合法的 SQL Server 数据。此数据类型极大地方便了 SQL Server 的开发工作。
2 Table :用于存储对表或者视图处理后的结果集。这种新的数据类型使得变量可以存储一个 表,从而使函数或过程返回查询结果更加方便、快捷。
3 Timestamp :亦称时间戳数据类型,它提供数据库范围内的惟一值,反应数据库中数据修改 的相对顺序,相当于一个单调上升的计数器。当它所定义的列在更新或者插入数据行时,此列的值 会被自动更新,一个计数值将自动地添加到此 Timestamp 数据列中。如果建立一个名为 Timestamp 的列,则该列的类型将自动设为 Timestamp 数据类型。
4 Uniqueidentifier :用于存储一个 16 字节长的二进制数据类型,它是 SQL Server 根据计算机 网络适配器地址和 CPU 时钟产生的全局惟一标识符代码( Globally Unique Identifier ,简写为 GUID )。此数字可以通过调用 SQL Server newid ()函数获得,在全球各地的计算机经由此函 数产生的数字不会相同。
5 XML :可以存储 XML 数据的数据类型。利用它可以将 XML 实例存储在字段中或者 XML 类型 的变量中。注意存储在 XML 中的数据不能超过 2GB
6 Cursor :这是变量或存储过程 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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值