ps:本人親測,阿里雲2核4g5m的伺服器價效比很高,新使用者一塊多一天,老使用者三塊多一天,最高可以買三年,感興趣的可以戳一下:阿里雲折扣伺服器
sql中char、varchar、nvarchar的區別
char:
char是定長的,也就是當你輸入的字元小於你指定的數目時,char(8),你輸入的字元小於8時,它會再後面補空值。當你輸入的字元大於指定的數時,它會擷取超出的字元。
nvarchar(n)
包含 n 個字元的可變長度 unicode 字元資料。n 的值必須介於 1 與 4,000 之間。位元組的儲存大小是所輸入字元個數的兩倍。所輸入的資料字元長度可以為零。
varchar[(n)]
長度為 n 個位元組的可變長度且非 unicode 的字元資料。n 必須是乙個介於 1 和 8,000 之間的數值。儲存大小為輸入資料的位元組的實際長度,而不是 n 個位元組。所輸入的資料字元長度可以為零。
**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資料型別時不用擔心輸入的字元是英文還是漢字,較為方便,但在儲存英文時數量上有些損失。
所以一般來說,如果含有中文字元,用nchar/nvarchar,如果純英文和數字,用char/varchar。
資料庫中資料型別
1.整型 整型選取原則 第一 要滿足欄位的表示範圍 第二 盡量選擇占用空間小的資料型別 第三 如果不儲存負數,盡量新增unsigned屬性 2.浮點型 整型選取原則 第一 要滿足欄位的表示範圍 第二 盡量選擇占用空間小的資料型別 第三 能選取整型的不選取float型。3.字元型 char和varch...
資料庫中的資料型別
資料庫中的資料型別通常有很多種,也有不同的分類方法。例如最常見的數值型 字元型 日期時間型,也有不太常見的布林型 列舉型 集合型等。要在dbms中實現某種具體資料型別 例如最簡單的integer 的支援,我們可以從以下幾個方面來考慮。1.資料型別的名稱 資料型別名稱可以出現在ddl語句中,也可以出現...
資料庫中的資料型別
1.數值型別 整型int 大整型 4個位元組 取值範圍 0 2 32 1 tinyint 微小整型 1個位元組 有符號 signed預設 128 127 無符號 unsigned 0 255 smallint 小整型 2個位元組 bigint 極大整型 8個位元組 浮點型float 4個位元組,最多...