注銷

          注銷

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            112 隨筆 :: 7 文章 :: 18 評論 :: 0 Trackbacks
          ?? 數(shù)據(jù)類型是數(shù)據(jù)的一種屬性,表示數(shù)據(jù)所表示信息的類型。任何一種計算機(jī)語言都定義了自己的數(shù)據(jù)類型。當(dāng)然,不同的程序語言都具有不同的特點(diǎn),所定義的數(shù)據(jù)類型的各類和名稱都或多或少有些不同。SQLServer提供了25種數(shù)據(jù)類型:
            ·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)二進(jìn)制數(shù)據(jù)類型

            二進(jìn)制數(shù)據(jù)包括Binary、Varbinary和Image
            Binary數(shù)據(jù)類型既可以是固定長度的(Binary),也可以是變長度的。
            Binary[(n)]是n位固定的二進(jìn)制數(shù)據(jù)。其中,n的取值范圍是從1到8000。其存儲窨的大小是n+4個字節(jié)。
            Varbinary[(n)]是n位變長度的二進(jìn)制數(shù)據(jù)。其中,n的取值范圍是從1到8000。其存儲窨的大小是n+4個字節(jié),不是n個字節(jié)。
            在Image數(shù)據(jù)類型中存儲的數(shù)據(jù)是以位字符串存儲的,不是由SQLServer解釋的,必須由應(yīng)用程序來解釋。例如,應(yīng)用程序可以使用BMP、TIEF、GIF和JPEG格式把數(shù)據(jù)存儲在Image數(shù)據(jù)類型中。
          (2)字符數(shù)據(jù)類型

            字符數(shù)據(jù)的類型包括Char,Varchar和Text
            字符數(shù)據(jù)是由任何字母、符號和數(shù)字任意組合而成的數(shù)據(jù)。
            Varchar是變長字符數(shù)據(jù),其長度不超過8KB。Char是定長字符數(shù)據(jù),其長度最多為8KB。超過8KB的ASCII數(shù)據(jù)可以使用Text數(shù)據(jù)類型存儲。例如,因?yàn)镠tml文檔全部都是ASCII字符,并且在一般情況下長度超過8KB,所以這些文檔可以Text數(shù)據(jù)類型存儲在SQLServer中。
          (3)Unicode數(shù)據(jù)類型

            Unicode數(shù)據(jù)類型包括Nchar,Nvarchar和Ntext
            在MicrosoftSQLServer中,傳統(tǒng)的非Unicode數(shù)據(jù)類型允許使用由特定字符集定義的字符。在SQLServer安裝過程中,允許選擇一種字符集。使用Unicode數(shù)據(jù)類型,列中可以存儲任何由Unicode標(biāo)準(zhǔn)定義的字符。在Unicode標(biāo)準(zhǔn)中,包括了以各種字符集定義的全部字符。使用Unicode數(shù)據(jù)類型,所戰(zhàn)勝的窨是使用非Unicode數(shù)據(jù)類型所占用的窨大小的兩倍。
            在SQLServer中,Unicode數(shù)據(jù)以Nchar、Nvarchar和Ntext數(shù)據(jù)類型存儲。使用這種字符類型存儲的列可以存儲多個字符集中的字符。當(dāng)列的長度變化時,應(yīng)該使用Nvarchar字符類型,這時最多可以存儲4000個字符。當(dāng)列的長度固定不變時,應(yīng)該使用Nchar字符類型,同樣,這時最多可以存儲4000個字符。當(dāng)使用Ntext數(shù)據(jù)類型時,該列可以存儲多于4000個字符。
          (4)日期和時間數(shù)據(jù)類型

            日期和時間數(shù)據(jù)類型包括Datetime和Smalldatetime兩種類型
            日期和時間數(shù)據(jù)類型由有效的日期和時間組成。例如,有效的日期和時間數(shù)據(jù)包括“4/01/9812:15:00:00:00PM”和“1:28:29:15:01AM8/17/98”。前一個數(shù)據(jù)類型是日期在前,時間在后一個數(shù)據(jù)類型是霎時間在前,日期在后。在MicrosoftSQLServer中,日期和時間數(shù)據(jù)類型包括Datetime和Smalldatetime兩種類型時,所存儲的日期范圍是從1753年1月1日開始,到9999年12月31日結(jié)束(每一個值要求8個存儲字節(jié))。使用Smalldatetime數(shù)據(jù)類型時,所存儲的日期范圍是1900年1月1日開始,到2079年12月31日結(jié)束(每一個值要求4個存儲字節(jié))。
            日期的格式可以設(shè)定。設(shè)置日期格式的命令如下:
            SetDateFormat{format|@format_var|
            其中,format|@format_var是日期的順序。有效的參數(shù)包括MDY、DMY、YMD、YDM、MYD和DYM。在默認(rèn)情況下,日期格式為MDY。
            例如,當(dāng)執(zhí)行SetDateFormatYMD之后,日期的格式為年月日形式;當(dāng)執(zhí)行SetDateFormatDMY之后,日期的格式為日月有年形式
          (5)數(shù)字?jǐn)?shù)據(jù)類型

            數(shù)字?jǐn)?shù)據(jù)只包含數(shù)字。數(shù)字?jǐn)?shù)據(jù)類型包括正數(shù)和負(fù)數(shù)、小數(shù)(浮點(diǎn)數(shù))和整數(shù)
            整數(shù)由正整數(shù)和負(fù)整數(shù)組成,例如39、25、0-2和33967。在MicrsoftSQLServer中,整數(shù)存儲的數(shù)據(jù)類型是  Int,Smallint和Tinyint。Int數(shù)據(jù)類型存儲數(shù)據(jù)的范圍大于Smallint數(shù)據(jù)類型存儲數(shù)據(jù)的范圍,而Smallint據(jù)類型存儲數(shù)據(jù)的范圍大于Tinyint數(shù)據(jù)類型存儲數(shù)據(jù)的范圍。使用Int數(shù)據(jù)狗昔存儲數(shù)據(jù)的范圍是從-2147483648到2147483647(每一個值要求4個字節(jié)存儲空間)。使用Smallint數(shù)據(jù)類型時,存儲數(shù)據(jù)的范圍從-32768到32767(每一個值要求2個字節(jié)存儲空間)。使用Tinyint數(shù)據(jù)類型時,存儲數(shù)據(jù)的范圍是從0到255(每一個值要求1個字節(jié)存儲空間)。
            精確小婁數(shù)據(jù)在SQLServer中的數(shù)據(jù)類型是Decimal和Numeric。這種數(shù)據(jù)所占的存儲空間根據(jù)該數(shù)據(jù)的位數(shù)后的位數(shù)來確定。
            在SQLServer中,近似小數(shù)數(shù)據(jù)的數(shù)據(jù)類型是Float和Real。例如,三分之一這個分?jǐn)?shù)記作。3333333,當(dāng)使用近似數(shù)據(jù)類型時能準(zhǔn)確表示。因此,從系統(tǒng)中檢索到的數(shù)據(jù)可能與存儲在該列中數(shù)據(jù)不完全一樣。
          (6)貨幣數(shù)據(jù)表示正的或者負(fù)的貨幣數(shù)量。

            在MicrosoftSQLServer中,貨幣數(shù)據(jù)的數(shù)據(jù)類型是Money和Smallmoney
            Money數(shù)據(jù)類型要求8個存儲字節(jié),Smallmoney數(shù)據(jù)類型要求4個存儲字節(jié)。

          (7)特殊數(shù)據(jù)類型

            特殊數(shù)據(jù)類型包括前面沒有提過的數(shù)據(jù)類型。特殊的數(shù)據(jù)類型有3種,即  Timestamp、Bit和Uniqueidentifier。
            Timestamp用于表示SQLServer活動的先后順序,以二進(jìn)投影的格式表示。Timestamp數(shù)據(jù)與插入數(shù)據(jù)或者日期和時間沒有關(guān)系。
            Bit由1或者0組成。當(dāng)表示真或者假、ON或者OFF時,使用Bit數(shù)據(jù)類型。例如,詢問是否是每一次訪問的客戶機(jī)請求可以存儲在這種數(shù)據(jù)類型的列中。
            Uniqueidentifier由16字節(jié)的十六進(jìn)制數(shù)字組成,表示一個全局唯一的。當(dāng)表的記錄行要求唯一時,GUID是非常有用。例如,在客戶標(biāo)識號列使用這種數(shù)據(jù)類型可以區(qū)別不同的客戶。
          2.用戶定義的數(shù)據(jù)類型

            用戶定義的數(shù)據(jù)類型基于在MicrosoftSQLServer中提供的數(shù)據(jù)類型。當(dāng)幾個表中必須存儲同一種數(shù)據(jù)類型時,并且為保證這些列有相同的數(shù)據(jù)類型、長度和可空性時,可以使用用戶定義的數(shù)據(jù)類型。例如,可定義一種稱為  postal_code的數(shù)據(jù)類型,它基于Char數(shù)據(jù)類型。
            當(dāng)創(chuàng)建用戶定義的數(shù)據(jù)類型時,必須提供三個數(shù):數(shù)據(jù)類型的名稱、所基于的系統(tǒng)數(shù)據(jù)類型和數(shù)據(jù)類型的可空性。
          (1)創(chuàng)建用戶定義的數(shù)據(jù)類型

            創(chuàng)建用戶定義的數(shù)據(jù)類型可以使用Transact-SQL語句。系統(tǒng)存儲過程sp_addtype可以來創(chuàng)建用戶定義的數(shù)據(jù)類型。其語法形式如下:
            sp_addtype{type},[,system_data_bype][,'null_type']
            其中,type是用戶定義的數(shù)據(jù)類型的名稱。system_data_type是系統(tǒng)提供的數(shù)據(jù)類型,例如Decimal、Int、Char  等等。null_type表示該數(shù)據(jù)類型是如何處理空值的,必須使用單引號引起來,例如'NULL'、'NOTNULL'或者'NONULL'。
            例子:
            Usecust
            Execsp_addtypessn,'Varchar(11)',"NotNull'
            創(chuàng)建一個用戶定義的數(shù)據(jù)類型ssn,其基于的系統(tǒng)數(shù)據(jù)類型是變長為11的字符,不允許空。
            例子:
            Usecust
            Execsp_addtypebirthday,datetime,'Null'
            創(chuàng)建一個用戶定義的數(shù)據(jù)類型birthday,其基于的系統(tǒng)數(shù)據(jù)類型是DateTime,允許空。
            例子:
            Usemaster
            Execsp_addtypetelephone,'varchar(24),'NotNull'
            Eexcsp_addtypefax,'varchar(24)','Null'
            創(chuàng)建兩個數(shù)據(jù)類型,即telephone和fax
          (2)刪除用戶定義的數(shù)據(jù)類型

            當(dāng)用戶定義的數(shù)據(jù)類型不需要時,可刪除。刪除用戶定義的數(shù)據(jù)類型的命令是sp_droptype{'type'}。
            例子:
            Usemaster
            Execsp_droptype'ssn'
            注意:當(dāng)表中的列還正在使用用戶定義的數(shù)據(jù)類型時,或者在其上面還綁定有默認(rèn)或者規(guī)則時,這種用戶定義的數(shù)據(jù)類型不能刪除。
          SQLSERVER的字段類型說明

          以下為SQL SERVER7.0以上版本的字段類型說明。SQL SERVER6.5的字段類型說明請參考SQL SERVER提供的說明。

            

          字段類型

          描述

          bit0或1的整型數(shù)字
          int從-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型數(shù)字
          smallint從-2^15(-32,768)到2^15(32,767)的整型數(shù)字
          tinyint從0到255的整型數(shù)字
          decimal從-10^38到10^38-1的定精度與有效位數(shù)的數(shù)字
          numericdecimal的同義詞
          money從-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的貨幣數(shù)據(jù),最小貨幣單位千分之十
          smallmoney從-214,748.3648到214,748.3647的貨幣數(shù)據(jù),最小貨幣單位千分之十
          float從-1.79E+308到1.79E+308可變精度的數(shù)字
          real從-3.04E+38到3.04E+38可變精度的數(shù)字
          datetime從1753年1月1日到9999年12日31的日期和時間數(shù)據(jù),最小時間單位為百分之三秒或3.33毫秒
          smalldatetime從1900年1月1日到2079年6月6日的日期和時間數(shù)據(jù),最小時間單位為分鐘
          timestamp時間戳,一個數(shù)據(jù)庫寬度的唯一數(shù)字
          uniqueidentifier全球唯一標(biāo)識符GUID
          char定長非Unicode的字符型數(shù)據(jù),最大長度為8000
          varchar變長非Unicode的字符型數(shù)據(jù),最大長度為8000
          text變長非Unicode的字符型數(shù)據(jù),最大長度為2^31-1(2G)
          nchar定長Unicode的字符型數(shù)據(jù),最大長度為8000
          nvarchar變長Unicode的字符型數(shù)據(jù),最大長度為8000
          ntext變長Unicode的字符型數(shù)據(jù),最大長度為2^31-1(2G)
          binary定長二進(jìn)制數(shù)據(jù),最大長度為8000
          varbinary變長二進(jìn)制數(shù)據(jù),最大長度為8000
          image變長二進(jìn)制數(shù)據(jù),最大長度為2^31-1(2G)
          posted on 2006-11-04 21:33 注銷..... 閱讀(307) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫摘要

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 肥乡县| 阿瓦提县| 韩城市| 广德县| 刚察县| 澄城县| 黎城县| 阿城市| 金山区| 镇雄县| 从江县| 桂林市| 乐亭县| 怀安县| 柞水县| 思茅市| 武穴市| 阳谷县| 新化县| 灌南县| 西乌珠穆沁旗| 措美县| 凤翔县| 西峡县| 无为县| 昆明市| 诸暨市| 宜宾县| 凌源市| 稻城县| 应用必备| 阳新县| 册亨县| 河曲县| 苍南县| 赫章县| 鲁甸县| 延长县| 甘谷县| 乐东| 安吉县|