資料庫資料型別

2021-08-16 15:09:28 字數 3223 閱讀 1965

char

、varchar

、text

、ntext

、bigint

、int

、smallint

、tinyint

和bit

的區別及資料庫的資料型別

基礎:char

、varchar

、text

和nchar

、nvarchar

、ntext

的區別1

、char

。char

儲存定長資料很方便,

char

欄位上的索引效率級高,

比如定義

char(10)

,那麼不論你儲存的資料是否達到了

10個位元組,

都要占去

10個位元組的空間

,不足的自動用空格填充。2、

varchar

。儲存變長資料,但儲存效率沒有

char

高。如果乙個字

段可能的值是不固定長度的,我們只知道它不可能超過

10個字元,

把它定義為

varchar(10)

是最合算的。

varchar

型別的實際長度是它

的值的實際長度

+1。為什麼「

+1」呢?這乙個位元組用於儲存實際使用

了多大的長度。從空間上考慮,用

varchar

合適;從效率上考慮,用

char

合適,關鍵是根據實際情況找到權衡點。3、

text

。text

儲存可變長度的非

unicode

資料,最大長度為

2^31-1(2,147,483,647)

個字元。4、

nchar

、nvarchar

、ntext

。這三種從名字上看比前面三種多了個「n

」。它表示儲存的是

unicode

資料型別的字元。我們知道字元中,

英文本元只需要乙個位元組儲存就足夠了,

但漢字眾多,

需要兩個位元組

儲存,英文與漢字同時存在時容易造成混亂,

unicode

字符集就是為

了解決字符集這種不相容的問題而產生的,

它所有的字元都用兩個字

節表示,即英文本元也是用兩個位元組表示。

nchar

、nvarchar

的長度是在1到

4000

之間。和

char

、varchar

比較起來,

nchar

、nvarchar

則最多儲存

4000

個字元,不論是英文還是漢字;而

char

、varchar

最多能儲存

8000

個英文,

4000

個漢字。

可以看出使用

nchar

、nvarchar 

資料型別時不用擔心輸入的字元是英文還是漢字,

較為方便,

但在儲存英文時數量上有些損失。

進一步學習:

char

、varchar

、text

、ntext

、bigint

、int

、smallint

、tinyint

和bit

的區別及資料庫的資料型別

varchar 

對每個英文

(ascii)

字元都占用

2個位元組,對乙個漢字也只

占用兩個位元組

char 

對英文(ascii)

字元占用

1個位元組,對乙個漢字占用

2個位元組

varchar 

的型別不以空格填滿,比如

varchar(100)

,但它的值只是

"qian",

則它的值就是

"qian"

而char 

不一樣,比如

char(100),

它的值是

"qian"

,而實際上它在資料庫中是

"qian "(qian

後共有96

個空格,就是把它填滿為

100個位元組

)。由於

char

是以固定長度的,所以

它的速度會比

varchar

快得多!

但程式處理起來要麻煩一點,要用

trim

之類的函式把兩邊的空格去掉

! ntext 

可變長度

unicode 

資料的最大長度為

230 - 1 (1,073,741,823) 

個字元。

儲存大小是所輸入字元個數的兩倍

(以位元組為單位)

。ntext 

在sql-92 

中的同義詞是

national text

。text 

伺服器**頁中的可變長度非

unicode 

資料的最大長度為

231-1 

(2,147,483,647) 

個字元。

當伺服器**頁使用雙位元組字元時,

儲存量仍是

2,147,483,647 

位元組。儲存大小可能小於

2,147,483,647 

位元組(取決於字串)

。bigint:從

-2^63(-9223372036854775808)

到2^63-1(9223372036854775807)

的整型資料,儲存大小為

8 個位元組。

int:從

-2^31(-2,147,483,648)

到2^31-1(2,147,483,647)

的整型數

據,儲存大小為

4 個位元組。

smallint

:從-2^15(-32,768)

到2^15-1(32,767)

的整數資料,儲存

大小為2 

個位元組。

tinyint:從0

到255

的整數資料,儲存大小為

1 位元組。

bit:1或

0的整數資料,儲存大小為

1 位元組。

資料庫資料型別

一 string型別 1 char n 固定長度,最多8000字元 2 varchar n 可變長度,最多8000字元 3 varchar max 可變長度,最多1073741824字元 4 text 可變長度,最多2gb文字資料 5 nchar 固定長度的unicode,最多4000字元 6 nv...

資料庫資料型別

bigint int smallint tinyint decimal,numeric 高精度的小數型別 money,smallmoney 貨幣的資料型別 float,real資料型別 浮點 bit 只能表示0和1 char 後面跟上長度,占用固定位元組,適用範圍更大 varchar 後面也需要跟長...

資料庫 資料型別

一 整數型別 tinyint smallint mediumint intbigint 二 浮點數型別和定點數型別 float 單精度 double 雙精度 decimal m,d 三 日期與時間型別 year 格式 yyyy date 格式 yyyy mm dd time 格式 hh mm ss ...