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 ...