Transact-SQL資料類型(文本/圖形/日期和時間/貨幣/特定類型)

來源:互聯網
上載者:User
4.2.6 文本和圖形資料類型

文本和圖形資料類型是用於儲存大量的非Unicode和Unicode字元以及位元據的固定長度和可變長度資料類型,包括text型、ntext型和image型。

l          text型是用於儲存大量非Unicode文本資料的可變長度資料類型,其容量理論上為231-1(2 147 483 647)個位元組。在實際應用時需要視硬碟的儲存空間而定。

在SQL Server 2000以前的版本中,資料庫中一個textObject Storage Service的實際上是一個指標,它指向一個以8KB為單位的資料頁。這些資料頁是動態增加並被邏輯串連起來的。在SQL Server 2000中,則將text和image型的資料直接存放到表的資料行中,而不是存放到不同的資料頁中。這樣就減少了用於儲存text和image類型的空間,並相應減少了磁碟處理這類資料的I/O數量。

l          ntext型是用於儲存大量Unicode文本資料的可變長度資料類型,其理論容量為230-1(1 073 741 823)個位元組。ntext型的其他用法與text型基本一樣。

l          image型是用於儲存大量位元據的可變長度資料類型,其理論容量為231-1 (2 147 483 647)個位元組。Image型資料的儲存模式與text型資料相同,通常用來儲存圖形等OLE對象。在輸入資料時,與輸入位元據一樣,必須在資料前加上起始符號“0X”作為二進位標識。


4.2.7 日期和時間資料類型

日期和時間資料類型代表日期和一天內的時間,包括datetime型和smalldatetime型。

l          datetime型是用於儲存日期和時間的結合體的資料類型。它可以儲存從公元1753年1月1日零時起到公元9999年12月31日23時59分59秒之間的所有日期和時間,其精確度可達3%秒。

datetime型資料所佔用的儲存空間為8個位元組,其中前4個位元組用於儲存1900年1月1日以前或以後的天數,數值分正負,正數表示在此日期之後的日期,負數表示在此日期之前的日期;後4個位元組用於儲存從此日零時起所指定的時間經過的毫秒數。如果在輸入時省略了時間部分,則系統將預設為12:00:00:000AM;如果省略了日期部分,系統將預設為1900年1月1日。

l          smalldatetime型與datetime型相似,但其儲存的日期時間範圍較小,從1900年1月1日到2079年6月6日。它的精度也較低,只能精確到分鐘級,其分鐘個位上的值是根據秒數並以30秒為界四捨五入得到的。

Smalldatetime型資料所佔用的儲存空間為4個位元組,其中前兩個位元組儲存從基礎日期1900年1月1日以來的天數,後兩個位元組儲存此日零時起所指定的時間經過的分鐘數。

4.2.8 貨幣資料類型

貨幣資料類型用於儲存貨幣或現金值,包括money型和smallmoney型。在使用貨幣資料類型時,應在資料前加上貨幣符號,以便系統辨識其為哪國的貨幣,如果不加貨幣符號,則系統預設為“¥”。

l          money型是一個有4位小數的decimal值,其取值從-263(-9 223 372 036 854 775 808) ~263-1(+9 223 372 036 854 775 807),精確到貨幣單位的千分之十。儲存大小為8個位元組。

l          smallmoney型貨幣資料值介於-2 147 483 648~+2 147 483 647之間,精確到貨幣單位的千分之十。儲存大小為 4 個位元組。

4.2.9 特定資料類型

SQL Server 2000中包含了一些用於資料存放區的特殊資料類型,包括timestamp型和 uniqueidentifier型。

l          timestamp資料類型提供資料庫範圍內的惟一值,它相當於binary(8)或varbinary(8),但當它所定義的列在進行更新或插入資料行操作時,此列的值會自動更新。每個資料庫表中只能有一個timestamp型資料列。如果表中的列名為“timestamp”,則該列的類型將被自動定義為timestamp型。

l          uniqueidentifier資料類型用於儲存一個16位的位元據,此資料稱為全域惟一標識符(Globally Unique Identifier,GUID)。此資料由SQL Server 2000的NEWID()函數產生,在全球各地的電腦經由此函數產生的數字不會相同。

4.2.10 使用者自訂資料類型

sysname資料類型是系統提供給使用者的,便於使用者自訂的資料類型。該資料類型被定義為NVARCHAR(128),即它可以儲存128個Unicode字元或256個一般字元。

4.2.11 新增資料類型

前面講到過SQL Server 2000新增了3種資料類型:bigint型、sql_variant型和table型。其中bigint型已經在整數類型中介紹過了。

l          sql_variant型是一種儲存SQL Server支援的各種資料類型(text、ntext、timestamp 和sql_variant除外)值的資料類型。此資料類型大大方便了SQL Server的開發工作。

l          table型用於儲存對錶或視圖處理後的結果集。table資料類型不適用於表中的列,而只能用於Transact-SQL變數和使用者定義函數的傳回值。這一類型使得變數可以儲存一個表,從而使函數或過程返回查詢結果更加方便快捷。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.