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

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

     編輯:關於SqlServer

SQL Server 提供多組外觀相似但行為不同的資料類型,選錯會導致儲存空間浪費、資料截斷或效能問題。本文將五大類易混淆類型逐一拆解,附上長度、範圍、儲存特性對照表與選擇建議。

1. 字串類型:char/varchar/text vs nchar/nvarchar/ntext

類型長度儲存特性適用場景
char1-8000定長,不足以空白填充固定長度代碼(如身分證字號)
varchar1-8000變長,不填充一般可變長度字串
text最大 2^31-1 字元非 Unicode 大物件,已淘汰建議用 varchar(max)大量文字(舊版相容)
nchar1-4000定長 Unicode(雙位元組)固定長度多國語言
nvarchar1-4000變長 Unicode一般多國語言字串(推薦)
ntext最大 2^30-1 字元Unicode 大物件,已淘汰建議用 nvarchar(max)大量多國語言文字

關鍵差異:n 系列支援 Unicode(中英同為 2 位元組),最多 4000 字元;非 n 系列英文 1 位元組、中文 2 位元組,最多 8000 位元組。

2. 日期時間:datetime vs smalldatetime

  • datetime:1753-01-01 至 9999-12-31,精度 3.33 毫秒,8 位元組。
  • smalldatetime:1900-01-01 至 2079-06-06,精度 1 分鐘,4 位元組。

3. 整數:bigint / int / smallint / tinyint / bit

類型範圍位元組
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 vs numeric

兩者完全等效。參數 (p, s):p=精度(1-38,所有位數總和),s=小數位數(0-p,預設 0)。

5. 近似數值:float vs real

  • float:-1.79E308 ~ 1.79E308,8 位元組(預設 float(53))。
  • real:-3.40E38 ~ 3.40E38,4 位元組(等同 float(24))。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved