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

SQL Server 易混淆資料類型完整辨析:char/varchar/text、日期時間、整數、精確數值與近似數值

     編輯:關於SqlServer

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

類型長度範圍特性儲存內容
char1-8000定長,不足右補空格非 Unicode
varchar1-8000變長,不補空格非 Unicode
text≤ 2^31-1 字元大型變長非 Unicode非 Unicode
nchar1-4000定長,雙位元組Unicode
nvarchar1-4000變長,雙位元組Unicode
ntext≤ 2^30-1 字元大型變長 UnicodeUnicode

關鍵差異:n 開頭為 Unicode(雙位元組),英文漢字均佔 2 位元組;無 n 者英文 1 位元組、漢字 2 位元組。nvarchar(4000) 可存 4000 中英字元,varchar(8000) 可存 8000 英文或 4000 漢字。Unicode 免去字元集轉換煩惱,但純英文儲存空間加倍。

(2) 日期時間:datetime vs smalldatetime

  • datetime:1753-01-01 ~ 9999-12-31,精度 3.33 毫秒。
  • smalldatetime:1900-01-01 ~ 2079-06-06,精度 1 分鐘。

(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 (位)

(4) 精確數值:decimal / numeric

  • 兩者等效,參數 p(精度, 1-38)、s(小數位, 0-p),預設 s=0。
  • p 含小數點左右總位數,s 為小數點右邊位數。

(5) 近似數值:float / real

  • float:-1.79E+308 ~ 1.79E+308(雙精度)。
  • real:-3.40E+38 ~ 3.40E+38(單精度),等同 float(24)。

選型原則:定長用 char、變長用 varchar、大文本用 text/ntext;跨語系必用 nchar/nvarchar;金額計算必用 decimal;科學計算用 float;依範圍選最小整數型節省空間。

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