SQL Server資料類型介紹

來源:互聯網
上載者:User

位(或位元) Bit:
  電腦記錄、儲存、表達、傳輸資訊的最小的單位。它由一個位長度的位元值“0”或“1”構成。
節字 Byte:
      位元組是電腦記錄、儲存、表達、傳輸資訊的最基本的單位。無論是在網路上,還是在電腦的CPU、記憶體、硬碟、光碟片、隨身碟等儲存媒介上,都是以多少容量的位元組做為計量單位。
  1個位元組等於8位長度的位元值。
  在ASCII碼中,一個英文字母(不分大小寫)佔一個位元組的空間,一個中文漢字佔兩個位元組的空間。
  符號:英文標點佔一個位元組,中文標點佔兩個位元組。舉例:英文句號“.”佔1個位元組的大小,中文句號“。”佔2個位元組的大小。
ASCII代碼:
      ASCII碼英文全稱America Standard Code for Information Interchange,中文意思:美國資訊交換標準碼。它已被國際標準組織(ISO)定為國際標準,稱為ISO 646標準。適用於所有拉丁文字字母,ASCII碼有7位碼和8位碼兩種形式。ASCII碼於1968年提出,用於在不同電腦硬體和軟體系統中實現資料轉送標準化,在大多數的小型機和全部的個人電腦都使用此碼。ASCII碼劃分為兩個集合:128個字元的標準ASCII碼和附加的128個字元的擴充和ASCII碼。
    因為一位位元可以表示(2^0)2種狀態:0、1;而二位位元可以表示(2^1)=4種狀態:00、01、10、11;依次類推,七位位元可以表示(2^7)128種狀態,每種狀態都唯一地編為一個7位的二進位碼,對應一個字元(或控制碼),這些碼可以排列成一個十進位序號0~127。所以,7位ASCII碼是用七位位元進行編碼的,可以表示128個字元。
    第0~32號及第127號(共34個)是控制字元或通訊專用字元,如控制符:LF(換行)、CR(斷行符號)、FF(換頁)、DEL(刪除)、BEL(響鈴)等; 通訊專用字元:SOH(文頭)、EOT(文尾)、ACK(確認)等;
    第33~126號(共94個)是字元,其中第48~57號為0~9十個阿拉伯數字;65~90號為26個大寫英文字母,97~122號為26個小寫英文字母,其餘為一些標點符號、運算子號等。 資料類型是資料的一種屬性,是資料所表示資訊的類型。任何一種語言都有它自己所固有的資料類型,SQL Server提供一下25種固有的資料類型。

SQL Server資料類型一覽表
  ·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 固定長度(最多為8K)的位元據類型。

  binary [ ( n ) ]
  固定長度的 n 個位元組位元據。N 必須從 1 到 8,000。儲存空間大小為 n+4 位元組。

·varbinary 可變長度(最多為8K)的位元據類型。

  varbinary

·image 用來儲存長度超過 8 KB 的可變長度的位元據。
      除非資料長度超過 8KB,否則一般宜用 varbinary 類型來儲存位元據。一般用來存放 Microsoft Word 文檔、Microsoft Excel 試算表、包含位元影像的映像、圖形交換格式 (GIF) 檔案和JPEG 格式 (JPEG) 檔案。
      在 Image 資料類型中儲存的資料是以位字串儲存的,不是由 SQL Server 解釋的,必須由應用程式來解釋。例如,應用程式可以使用BMP、TIEF、GIF 和 JPEG 格式把資料存放區在 Image 資料類型中。

2、字元資料類型
      字元資料由字母、符號和數字組成。使用 char、varchar 和 text 資料類型儲存。
·char 固定長度(不超過 8 KB)的字元資料類型。

      char[(n)]
      長度為 n 個位元組的固定長度且非 Unicode 的字元資料。n 必須是一個介於 1 和 8,000
      之間的數值。儲存大小為 n 個位元組。char 在 SQL-92 中的同義字為 character。

·varchar 可變長度(不超過 8 KB)的字元資料類型。

      varchar[(n)]
      長度為 n 個位元組的可變長度且非 Unicode 的字元資料。n 必須是一個介於 1 和 8,000
      之間的數值。儲存大小為輸入資料的位元組的實際長度,而不是 n 個位元組。所輸入的資料字
      符長度可以為零。varchar 在SQL-92 中的同義字為char varying 或character varying。

·text 資料類型的列可用於儲存大於 8KB 的 ASCII 字元。
      例如,由於 HTML 文檔均由 ASCII 字元組成且一般長於 8KB,所以用瀏覽器查看之前應在 SQL Server 中儲存在 text 列中。

3、Unicode資料類型
      使用 Unicode 資料類型,列可儲存由 Unicode 標準定義的任何字元,包含由不同字元集定義的所有字元。Unicode 資料使用 SQL Server 中的 nchar、varchar 和 ntext 資料類型進行儲存。
·nchar 固定長度(至多為 4000 個 Unicode 字元)的Unicode資料類型。

      nchar(n)
      包含n 個字元的固定長度Unicode字元資料。n的值必須介於1與4,000之間。儲存大小為n字
      節的兩倍。nchar 在 SQL-92 中的同義字為 national char 和 national character。

·nvarchar ( varchar ) 是可變長度 Unicode 資料的資料類型。

      nvarchar(n)
      包含 n 個字元的可變長度 Unicode 字元資料。n 的值必須介於 1 與 4,000 之間。
      位元組的儲存大小是所輸入字元個數的兩倍。所輸入的資料字元長度可以為零。nvarchar
      在 SQL-92 中的同義字為 national char varying 和 national character varying。

·ntext 當列中任意項超過 4000 個 Unicode字元時使用。

4、日期和時間資料類型
      日期和時間資料由有效日期或時間組成。例如,有效日期和時間資料既包括"4/01/98 12:15:00:00:00 PM",也包括"1:28:29:15:01 AM 8/17/98"。在 Microsoft SQL Server 2000 中,日期和時間資料使用 datetime 和 smalldatetime 資料類型儲存。
·datetime
      資料類型儲存從 1753 年 1 月 1 日至 9999 年 12 月 31 日的日期。
      每個數值要求 8 個位元組的儲存空間。

·smalldatetime
      資料類型儲存從 1900 年 1 月 1 日至 2079 年 6 月 6 日的日期。
      每個數值要求 4 個位元組的儲存空間。

·設定日期
      格式的命令如下:
      Set DateFormat {format | @format _var|
      其中,format | @format_var 是日期的順序。有效參數包括 MDY、DMY、YMD、
      YDM、MYD 和 DYM。在預設情況下,日期格式為MDY。

5、數字資料類型
      數字資料只包含數字。數字資料包括正數、負數、小數、分數和整數。
·整型資料
      整型資料由負整數或正整數組成,如 -15、0、5 和 2509。在 Microsoft SQL Server
      2000 中,整型資料使用 bigint、int、smallint 和 tinyint 資料類型儲存。bigint 資料類
      型可儲存的數字範圍比 int 資料類型廣。int 資料類型比 smallint 資料類型的儲存範圍
      大,而 smallint 的數值範圍又比 tinyint 類型大。

      bigint 儲存從-2^63 (-9223372036854775808)到2^63-1(9223372036854775807) 範圍內的
        數字。儲存大小為 8 個位元組。

      int 儲存範圍是-2,147,483,648至2,147,483,647(每個值需4個位元組的儲存空間)。

      smallint 儲存範圍只有 -32,768 至 32,767(每個值需 2 個位元組的儲存空間)。

      tinyint 只能儲存 0 至 255 範圍內的數字(每個值需 1 個位元組的儲存空間)。

·小數資料
      Decimal 資料包含儲存在最小有效數上的資料。在 SQL Server中,小數資料使用 decimal 或 numeric 資料類型儲存。儲存 decimal 或 numeric 數值所需的位元組數取決於該資料的數字總數和小數點右邊的小數位元。例如,儲存數值 19283.29383 比儲存 1.1 需要更多的位元組。在 SQL Server中,numeric 資料類型等價於 decimal 資料類型。

·近似數字資料
      近似數字(浮點)資料包括按二進位計數系統所能提供的最大精度保留的資料。在 SQL Server 中,近似數字資料以 float 和 real 資料類型儲存。例如,分數 1/3 表示成小數形式為 0.333333(迴圈小數),該數字不能以近似小數資料精確表示。因此,從 SQL Server 擷取的值可能並不準確代表格儲存體在列中的未經處理資料。又如以 .3, .6, .7 結尾的浮點數均為數字近似值。

6、貨幣資料類型
      貨幣資料表示正的或負的貨幣值。在 Microsoft SQL Server 2000 中使用 money 和 smallmoney 資料類型儲存貨幣資料。貨幣資料存放區的精確度為四位小數。
·money 儲存範圍是 -922,337,203,685,477.5808 至 +922,337,203,685,477.5807
      (需 8 個位元組的儲存空間)。

·smallmoney 儲存範圍是 -214,748.3648 至 214,748.3647(需 4 個位元組的儲存空間)。

·如果數值超過了上述範圍,則可使用 decimal 資料類型代替。

7、特殊資料類型
      特殊資料包括不能用前面所述的二進位、字元、Unicode、日期和時間、數字和貨幣資料類型表示的資料。

Microsoft SQL Server 2000 包含四種特殊資料類型:
·timestamp
      用於表示 SQL Server 在一行上的活動順序,按二進位格式以遞增的數字來表示。當表中的行發生變動時,用從 @@DBTS 函數獲得的當前資料庫的時間戮值來更新時間戮。timestamp 資料與插入或修改資料的日期和時間無關。若要自動記錄表中資料更改的時間,使用 datetime 或 smalldatetime 資料類型記錄事件或觸發器。SQL Serve 中 rowversion 是 timestamp 的同義字。

·bit
      bit 資料類型只能包括 0 或 1。可以用 bit 資料類型代表 TRUE 或 FALSE、YES 或 NO。例如,詢問客戶是否為初次訪問的問題可儲存在 bit 列中。

·uniqueidentifier
      以一個 16 位的十六進位數表示通用唯一識別碼 (GUID)。當需要在多行中唯一標識某一行時可使用 GUID。例如,可使用 unique_ identifier 資料類型定義一個客戶標識代碼列,以編輯公司來自多個省/地區的總的客戶名錄。

·sql_variant
      一種儲存 SQL Server 所支援的各種資料類型(text、ntext、timestamp 和 sql_variant 除外)值的資料類型。

·table
      一種特殊的資料類型,儲存供以後處理的結果集。table 資料類型只能用於定義 table 類型的局部變數或使用者定義函數的傳回值。

·使用者定義
      允許使用使用者定義資料類型,例如,product_code 可設計為基於 char 資料類型的兩個大寫字母後跟 5 位供應商號碼的格式。

--------------------------------------------------------------------------------

使用者定義的資料類型

  使用者定義的資料類型基於在 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'
  注意:當表中的列還正在使用使用者定義的資料類型時,或者在其上面還綁定有預設或者規則時,這種使用者定義的資料類型不能刪除。

[ ( n ) ]
      n 個位元組變長位元據。n 必須從 1 到 8,000。儲存空間大小為實際輸入資料長度 +4
      個位元組,而不是 n 個位元組。輸入的資料長度可能為 0 位元組。在 SQL-92 中 varbinary 的
      同義字為 binary varying。

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/baoxuetianxia/archive/2009/11/22/4851072.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.