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

SQL Server 易混淆資料型別完整對照與選型指南

     編輯:關於SqlServer

1. 字串型別

型別最大長度儲存特性適用場景
char(n)8,000定長,空格補齊固定長度代碼 (如身分證字號、ISO 代碼)
varchar(n)8,000變長,實際長度+2位元組一般可變字串
text2^31-1 (2GB)大物件 (LOB),舊版相容大量文字 (建議改用 varchar(max))
nchar(n)4,000Unicode 定長,雙位元組固定長度多國語言
nvarchar(n)4,000Unicode 變長含中日韓文字的可變字串
ntext2^30-1 (1GB)Unicode LOB大量 Unicode 文字 (建議改用 nvarchar(max))

關鍵差異:n* 型別統一用 2 位元組儲存每個字元 (含英文),char/varchar 英文 1 位元組、中文 2 位元組 (視定序)。nvarchar(4000) 可存 4000 個中文或英文;varchar(8000) 可存 8000 英文或 4000 中文。

2. 日期時間型別

型別範圍精度儲存大小
datetime1753-01-01 ~ 9999-12-313.33 毫秒8 位元組
smalldatetime1900-01-01 ~ 2079-06-061 分鐘4 位元組

SQL Server 2008+ 新增 date, time, datetime2, datetimeoffset,精度更高、範圍更大、符合 ANSI 標準。

3. 整數型別

型別範圍大小
bigint-2^63 ~ 2^63-18 位元組
int-2^31 ~ 2^31-14 位元組
smallint-32,768 ~ 32,7672 位元組
tinyint0 ~ 2551 位元組
bit0 或 11 位元 (8欄位壓縮1位元組)

4. 精確數值

  • decimal(p,s) / numeric(p,s) 完全等效。
    p (精度) 1~38,s (小數位) 0~p。
    金額、會計、科學計算必用。

5. 近似數值

  • float(n):n=1~24 為 4 位元組 (同 real),25~53 為 8 位元組。範圍 ±1.79E308。
  • real = float(24),範圍 ±3.40E38。
  • 科學計算、繪圖座標適用;財務計算嚴禁使用。

選型口訣

  • 有中文/多語系 → nvarchar / nchar。
  • 固定長度代碼 → char / nchar。
  • 金額/精確數值 → decimal(18,2) 等。
  • 大量文字 → varchar(max) / nvarchar(max) (2005+)。
  • 自動編號鍵值 → int / bigint + IDENTITY。

精準選型能節省儲存空間、提升索引效能、避免隱含轉換錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved