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

SQL Server 2008 資料類型完整指南與選用建議

     編輯:關於SqlServer

精確數值類型

類型範圍儲存適用場景
bit0, 1, NULL1 bit (8欄=1 byte)布林旗標
tinyint0 ~ 2551 byte狀態碼、小範圍計數
smallint-32,768 ~ 32,7672 bytes小整數
int-2,147,483,648 ~ 2,147,483,6474 bytes標準整數、主鍵
bigint-2^63 ~ 2^63-18 bytes大範圍識別碼
decimal(p,s) / numeric(p,s)-10^38+1 ~ 10^38-15~17 bytes財務金額、精確計算
smallmoney-214,748.3648 ~ 214,748.36474 bytes小額貨幣
money-922,337,203,685,477.5808 ~ 922,337,203,685,477.58078 bytes貨幣金額

decimal 參數說明:

  • p (precision):總位數 1~38,預設 18
  • s (scale):小數位數 0~p,預設 0
  • 儲存大小隨精度變化:1-9→5B, 10-19→9B, 20-28→13B, 29-38→17B

近似數值類型

類型範圍儲存精度
float(n)-1.79E+308 ~ 1.79E+3084/8 bytesn=1~24: 7 位數 (4B), n=25~53: 15 位數 (8B)
real-3.40E+38 ~ 3.40E+384 bytes7 位數精度

⚠ 避免用於精確比較或財務計算。

日期時間類型 (SQL Server 2008 新增)

類型範圍精度儲存備註
datetime1753-01-01 ~ 9999-12-313.33 ms8 bytes舊版相容
smalldatetime1900-01-01 ~ 2079-06-061 分鐘4 bytes舊版相容
date0001-01-01 ~ 9999-12-311 天3 bytes僅日期,推薦新開發使用
time(n)00:00:00 ~ 23:59:59.9999999100ns3~5 bytes僅時間
datetime2(n)0001-01-01 ~ 9999-12-31100ns6~8 bytes高精度,推薦新開發使用
datetimeoffset(n)含時區100ns8~10 bytes跨時區應用

字串類型

類型最大長度儲存適用場景
char(n)8,000n bytes固定長度代碼 (ISO 代碼等)
varchar(n)8,000實際長度+2 bytes可變長度文字
varchar(max)2 GB行外儲存大型文本,取代 text
nchar(n)4,0002n bytes固定長度 Unicode
nvarchar(n)4,0002×實際長度+2 bytes可變長度 Unicode
nvarchar(max)2 GB行外儲存大型 Unicode 文本,取代 ntext

其他重要類型

  • uniqueidentifier:16 bytes GUID,NEWID()/NEWSEQUENTIALID()
  • xml:XML 文件,支援結構驗證、索引
  • hierarchyid:階層結構 (組織架構、目錄樹)
  • geometry / geography:空間資料
  • table:表值參數

選用原則

  1. 夠用就好:不要用 BIGINT 存狀態碼,不要用 VARCHAR(MAX) 存姓名
  2. 精確計算用 DECIMAL:財務、數量、比率
  3. 新開發優先用新類型:DATE, DATETIME2, VARCHAR(MAX)
  4. Unicode 需求評估:多語系用 NVARCHAR,單語系用 VARCHAR 節省空間
  5. 避免舊類型:TEXT, NTEXT, IMAGE 已棄用
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved