首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 資料類型完整圖譜:十大分類與 3 種 2000 新增類型(BIGINT/SQL_VARIANT/TABLE)深度解析

     編輯:關於SqlServer

電腦中資料有型別與長度兩特徵。資料類型即以資料表現與儲存方式劃分的種類。SQL Server 中每個變數、參數、運算式皆有資料類型。系統類型分幾大類:

圖示

BIGINT、SQL_VARIANT、TABLE 為 SQL Server 2000 新增 3 種類型。 下面分類詳細說明。

4.3.1 整數資料類型

  • INT (INTEGER):-2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)。4 位元組,1 位符號位,31 位數值
  • SMALLINT:-2^15 (-32,768) 到 2^15-1 (32,767)。2 位元組,1 位符號,15 位數值
  • TINYINT:0 到 255。1 位元組
  • BIGINT:-2^63 (-9,223,372,036,854,775,808) 到 2^63-1。8 位元組

4.3.2 浮點資料類型:上捨入儲存機制

SQL Server 採用上捨入:捨入數非零時,保留部分最低有效位加 1 並進位。絕對值不減少。例:3.14159265358979 取 2 位→3.15,12 位→3.141592653590。

  • REAL:精確到小數第 7 位,範圍 -3.40E-38 到 3.40E+38。4 位元組
  • FLOAT:精確到第 15 位,範圍 -1.79E-308 到 1.79E+308。8 位元組。可寫 FLOAT[n],n=1-7 為 REAL,n=8-15 為 FLOAT
  • DECIMAL:提供小數實際儲存空間。2-17 位元組儲存 -10^38+1 到 10^38-1。DECIMAL[p[,s]]:p 總位數(預設 18),s 小數位數(預設 0)。例:decimal(15,5) 共 15 位,整數 10 位、小數 5 位
  • NUMERIC:與 DECIMAL 完全相同

注意: SQL Server 為配合前端工具,預設最大精度 28 位。可用 sqlservr /p38 啟動變更預設精度。

4.3.3 二進制資料類型

  • BINARY(n):n=1-8000,固定長度。輸入前加 0x 標識。奇數位數自動在 0x 後加 0。佔 n+4 位元組
  • VARBINARY(n):n=1-8000,變動長度。佔實際長度+4 位元組。**允許 NULL 時 BINARY 視為 VARBINARY**。固定長度 BINARY 處理較快

4.3.4 邏輯資料類型

  • BIT:1 位元組,值 0 或 1。輸入非 0/1 視為 1。**不可定義為 NULL**

4.3.5 字元資料類型

  • CHAR[(n)]:n=1-8000,每字元 1 位元組。不指定 n 預設 1。不足補空格,超長截斷
  • NCHAR[(n)]:n=1-4000,UNICODE,每字元 2 位元組。佔用空間加倍,但可容納全球語言無編碼衝突
  • VARCHAR[(n)]:n=1-8000,變動長度,佔實際長度。不足不補空格。CHAR 處理較快
  • NVARCHAR[(n)]:n=1-4000,UNICODE 變動長度

4.3.6 文字與圖形資料類型:大量資料儲存

  • TEXT:理論容量 2^31-1 位元組。SQL Server 2000 直接儲存於表資料行,減少空間與 I/O
  • NTEXT:UNICODE,理論容量 2^30-1 位元組
  • IMAGE:大量二進制資料,理論容量 2^31-1 位元組。常儲存 OLE 物件。輸入加 0x 標識

4.3.7 日期時間資料類型

  • DATETIME:1753/1/1 到 9999/12/31 23:59:59.997,精確 3.33ms。8 位元組:前 4 位儲存相對 1900/1/1 天數(正負),後 4 位儲存午夜起毫秒數。省略時間→12:00:00.000AM;省略日期→1900/1/1
  • SMALLDATETIME:1900/1/1 到 2079/6/6,精確到分(30秒四捨五入)。4 位元組:前 2 位天數,後 2 位分鐘數

日期輸入格式三大類:英文+數字(月份全名/縮寫)、數字+分隔符(/,-,.)、純數字(4/6/8位)。時間格式:時:分:秒.毫秒,可用 AM/PM。

4.3.8 貨幣資料類型

  • MONEY:4 位小數 DECIMAL,-2^63 到 2^63-1,精確萬分之一。8 位元組
  • SMALLMONEY:-214,748.3648 到 +214,748.3647。4 位元組

4.3.9 特定資料類型

  • TIMESTAMP:資料庫範圍內唯一值,相當 BINARY(8) 或 VARBINARY(8)。欄位更新/插入時自動更新計數值。每表僅一 TIMESTAMP 欄位。命名為 TIMESTAMP 的欄位自動設為此類型
  • UNIQUEIDENTIFIER:16 位元組二進制數(GUID)。NEWID() 函數產生全球唯一編碼

4.3.10 使用者自訂資料類型

SYSNAME:系統提供便於自訂類型,定義為 NVARCHAR(128),可儲存 128 UNICODE 字元或 256 一般字元。用法參見第 7 章「自訂資料類型」。

4.3.11 SQL Server 2000 新增類型

  • SQL_VARIANT:可儲存除 TEXT/NTEXT/IMAGE/TIMESTAMP 外任何合法 SQL Server 資料,極大方便開發
  • TABLE:儲存表/視圖處理後結果集。使變數可儲存表,函數/程序返回查詢結果更便捷。用法參見第 13 章「游標、視圖與自訂函數」
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved