电脑安全

您当前的位置:主页 > 电脑安全 >

MSSQL SERVER中易混淆的数据类型-网络编程

来源:[db:来源]标题:   数据类型    编辑:电脑技术全能网 时间:2019-09-18 12:28

原标题:MSSQL SERVER中易混淆的数据类型-网络编程
   中心提醒:数据类弄是数据的一种属性,表现数据所表现信息的范例  数据类弄是数据的一种属性,表现数据所表现信息的范例。任何一种盘算机言语都界说了本人的数据范例。固然,差别的顺序言语都存在差别的特色,所界说的数据范例的各种和称号都或多或少有些差别。SQLServer 供给了 25 种数据范例:   ・Binary [(n)]   ・Varbinary [(n)]   ・Char [(n)]   ・Varchar[(n)]   ・Nchar[(n)]   ・Nvarchar[(n)]   ・Datetime   ・Smalldatetime   ・Decimal[(p[,s])]   ・Numeric[(p[,s])]   ・Float[(n)]   ・Real   ・Int   ・Smallint   ・Tinyint   ・Money   ・Smallmoney   ・Bit   ・Cursor   ・Sysname   ・Timestamp   ・Uniqueidentifier   ・Text   ・Image   ・Ntext   1.二进制数据范例   二进制数据包含 Binary、Varbinary 和 Image   Binary 数据范例既能够是牢固长度的(Binary),也能够是变长度的。   Binary[(n)] 是 n 位牢固的二进制数据。此中,n 的取值范畴是从 1 到 8000。其存储窨的巨细是 n + 4 个字节。   Varbinary[(n)] 是 n 位变长度的二进制数据。此中,n 的取值范畴是从 1 到 8000。其存储窨的巨细是 n + 4个字节,不是n 个字节。   在 Image 数据范例中存储的数据是以位字符串存储的,不是由 SQL Server 说明的,必需由利用顺序来说明。比方,利用顺序能够应用BMP、TIEF、GIF 和 JPEG 格局把数据存储在 Image 数据范例中。   (2)字符数据范例  字符数据的范例包含 Char,Varchar 和 Text   字符数据是由任何字母、标记和数字恣意组合而成的数据。   Varchar 是变长字符数据,其长度不超越 8KB。Char 是定长字符数据,其长度最多为 8KB。超越 8KB 的ASCII 数据能够应用Text数据范例存储。比方,由于 Html 文档全体都是 ASCII 字符,而且在个别情形下长度超越 8KB,以是这些文档能够 Text 数据范例存储在SQL Server 中。   (3)Unicode 数据范例  Unicode 数据范例包含 Nchar,Nvarchar 和Ntext   在 Microsoft SQL Server 中,传统的非 Unicode 数据范例同意应用由特定字符集界说的字符。在 SQL Server装置进程中,同意抉择一种字符集。应用 Unicode 数据范例,列中能够存储任何由Unicode 尺度界说的字符。在 Unicode 尺度中,包含了以种种字符集界说的全体字符。应用Unicode数据范例,所克服的窨是应用非 Unicode 数据范例所占用的窨巨细的两倍。   在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据范例存储。应用这类字符范例存储的列能够存储多个字符会合的字符。当列的长度变更时,应当应用Nvarchar 字符范例,这时最多能够存储 4000 个字符。当列的长度牢固稳定时,应当应用 Nchar 字符范例,一样,这时最多能够存储4000 个字符。当应用 Ntext 数据范例时,该列能够存储多于 4000 个字符。   (4)日期和时光数据范例  日期和时光数据范例包含 Datetime 和 Smalldatetime两品种型   日期和时光数据范例由无效的日期和时光构成。比方,无效的日期和时光数据包含“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。前一个数据范例是日期在前,时光在后一个数据范例是刹那间在前,日期在后。在 Microsoft SQL Server中,日期和时光数据范例包含Datetime 和 Smalldatetime 两品种型时,所存储的日期范畴是从 1753 年 1 月 1 日开端,到9999 年12 月 31 日停止(每一个值请求 8 个存储字节)。应用 Smalldatetime 数据范例时,所存储的日期范畴是 1900年 1 月 1日 开端,到 2079 年 12 月 31 日停止(每一个值请求 4 个存储字节)。   日期的格局能够设定。设置日期格局的下令以下:   Set DateFormat {format | @format _var|   此中,format | @format_var 是日期的次序。无效的参数包含 MDY、DMY、YMD、YDM、MYD 和 DYM。在默许情形下,日期格局为MDY。   比方,当履行 Set DateFormat YMD 以后,日期的格局为年 月 日 情势;当履行 Set DateFormat DMY 以后,日期的格局为日 月丰年 情势   (5)数字数据范例  数字数据只包括数字。数字数据范例包含负数和正数、小数(浮点数)和整数   整数由正整数和负整数构成,比方 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整数存储的数据范例是    Int,Smallint和 Tinyint。Int 数据范例存储数据的范畴大于 Smallint 数据范例存储数据的范畴,而 Smallint 据范例存储数据的范畴大于Tinyint 数据范例存储数据的范畴。应用 Int 数据狗昔存储数据的范畴是从 -2 147 483 648 到 2 147 483 647(每一个值请求4个字节存储空间)。应用 Smallint 数据范例时,存储数据的范畴从 -32 768 到 32 767(每一个值请求2个字节存储空间)。应用Tinyint 数据范例时,存储数据的范畴是从0 到255(每一个值请求1个字节存储空间)。   准确小娄数据在 SQL Server 中的数据范例是 Decimal 和 Numeric。这类数据所占的存储空间依据该数据的位数后的位数来断定。   在SQL Server 中,近似小数数据的数据范例是 Float 和 Real。比方,三分之一这个分数记作。3333333,当应用近似数据范例时能正确表现。因而,从体系中检索到的数据能够与存储在该列中数据不完整一样。   (6)货泉数据表现正的或许负的货泉数目 。  在 Microsoft SQL Server 中,货泉数据的数据范例是Money 和 Smallmoney   Money数据范例请求 8 个存储字节,Smallmoney 数据范例请求 4 个存储字节。  (7)特别数据范例  特别数据范例包含后面没有提过的数据范例。特别的数据范例有3种,即    Timestamp、Bit 和 Uniqueidentifier。   Timestamp 用于表现SQL Server 运动的前后次序,以二进投影的格局表现。Timestamp 数据与拔出数据或许日期和时光没无关系。   Bit 由 1 或许 0 构成。当表现真或许假、ON 或许 OFF 时,应用 Bit 数据范例。比方,讯问能否是每一次拜访的客户机恳求能够存储在这类数据范例的列中。   Uniqueidentifier 由 16 字节的十六进制数字构成,表现一个全局独一的。当表的记载行请求独一时,GUID长短常有效。比方,在客户标识号列应用这类数据范例能够差别差别的客户。  2.用户界说的数据范例   用户界说的数据范例基于在 Microsoft SQL Server 中供给的数据范例。当几个表中必需存储统一种数据范例时,而且为保障这些列有雷同的数据范例、长度和可空性时,能够应用用户界说的数据范例。比方,可界说一种称为   postal_code 的数据范例,它基于 Char 数据范例。   当创立用户界说的数据范例时,必需供给三个数:数据范例的称号、所基于的体系数据范例和数据范例的可空性。   (1)创立用户界说的数据范例  创立用户界说的数据范例能够应用 Transact-SQL 语句。体系存储进程 sp_addtype 能够来创立用户界说的数据范例。其语法情势以下:   sp_addtype {type},[,system_data_bype][,'null_type']   此中,type 是用户界说的数据范例的称号。system_data_type 是体系供给的数据范例,比方 Decimal、Int、Char   等等。 null_type 表现该数据范例是怎样处置空值的,必需应用单引号惹起来,比方'NULL'、'NOT NULL'或许'NONULL'。   例子:   Use cust   Exec sp_addtype ssn,'Varchar(11)',"Not Null'   创立一个用户界说的数据范例 ssn,其基于的体系数据范例是变长为11 的字符,不同意空。   例子:   Use cust   Exec sp_addtype birthday,datetime,'Null'   创立一个用户界说的数据范例 birthday,其基于的体系数据范例是 DateTime,同意空。   例子:   Use master   Exec sp_addtype telephone,'varchar(24),'Not Null'   Eexc sp_addtype fax,'varchar(24)','Null'   创立两个数据范例,即 telephone 和 fax   (2)删除用户界说的数据范例  当用户界说的数据范例不须要时,可删除。删除用户界说的数据范例的下令是 sp_droptype {'type'}。   例子:   Use master   Exec sp_droptype 'ssn'   留神:当表中的列还正在应用用户界说的数据范例时,或许在其下面还绑定有默许或许规矩时,这类用户界说的数据范例不能删除。    SQLServer中易混杂的数据范例  SQL Server 中易混杂的数据范例 >迩来在做数据库计划,偶然候真弄不清SQL2000里的数据范例,以是摘了这篇文章。  (1)char、varchar、text和nchar、nvarchar、ntext char和varchar的长度都在1到8000 之间,它们的差别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度牢固的,当输出的数据长度没有到达指定的长度时将主动以英文空格在厥后面添补,使长度到达响应的长度;而变长字符数据则不会以空格添补。text存储可变长度的非Unicode数据,最大长度为2^31-1 (2,147,483,647)个字符。  前面三种数据范例和后面的比拟,从称号上看只是多了个字母"n",它表现存储的是Unicode数据范例的字符。写进程序的友人对Unicode应当很懂得。字符中,英笔墨符只要要一个字节存储就充足了,但汉字浩繁,须要两个字节存储,英文与汉字同时存在时轻易形成凌乱,Unicode字符集就是为懂得决字符集这类不兼容的成绩而发生的,它全部的字符都用两个字节表现,即英笔墨符也是用两个字节表现。nchar、nvarchar的长度是在1到 4000之间。和char、varchar比拟:nchar、nvarchar则最多存储4000个字符,不管是英文仍是汉字;而char、 varchar最多能存储8000个英文,4000个汉字。能够看出应用nchar、nvarchar数据范例时不必担忧输出的字符是英文仍是汉字,较为便利,但在存储英文时数目上有些丧失。  (2)datetime和smalldatetime datetime:从1753年1月1日到9999年12月31日的日期和时光数据,准确到百分之三秒。 smalldatetime:从1900年1月1日到2079年6月6日的日期和时光数据,准确到分钟。  (3)bitint、int、smallint、tinyint和bit bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据。 int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据。 smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据。 tinyint:从0到255的整数数据。 bit:1或0的整数数据。  (4)decimal和numeric 这两种数据范例是等效的。都有两个参数:p(精度)和s(小数位数)。p指定小数点右边和左边能够存储的十进制数字的最大个数,p必需是从 1到38之间的值。s指定小数点左边能够存储的十进制数字的最大个数,s必需是从0到p之间的值,默许小数位数是0。  (5)float和real float:从-1.79^308到1.79^308之间的浮点数字数据。 real:从-3.40^38到3.40^38之间的浮点数字数据。在SQL Server中,real的同义词为float(24)。