當前位置:首頁 » 編程語言 » sqlvarchar

sqlvarchar

發布時間: 2022-07-03 08:42:52

A. sql中varchar和nvarchar有什麼區別

SQL中varchar和nvarchar區別:輸入不同,含義不同。

一、輸入不同:

varchar(4)可以輸入4個字線,也可以輸入兩個漢字。

nvarchar(4)可以輸四個漢字,也可以輸4個字母,但最多四個。

二、含義不同:

varchar(n)長度為n個位元組的可變長度且非Unicode的字元數據。n必須是一個介於1和8,000之間的數值。存儲大小為輸入數據的位元組的實際長度,而不是n個位元組。

nvarchar(n)包含n個字元的可變長度Unicode字元數據。n的值必須介於1與4,000之間。位元組的存儲大小是所輸入字元個數的兩倍。

字元數據類型

Varchar是變長字元數據,其長度不超過8KB。Char是定長字元數據,其長度最多為8KB。超過8KB的ASCII數據可以使用Text數據類型存儲。例如,因為Html文檔全部都是ASCII字元,並且在一般情況下長度超過8KB,所以這些文檔可以Text數據類型存儲在SQLServer中。

在SQLServer中,Unicode數據以Nchar、Nvarchar和Ntext數據類型存儲。使用這種字元類型存儲的列可以存儲多個字元集中的字元。當列的長度變化時,應該使用Nvarchar字元類型,這時最多可以存儲4000個字元。

以上內容參考:網路-SQL數據類型

B. sql char 和 varchar 的區別

char會自動填充空格,varchar不會。所以varchar比較節省空間,但是檢索效率char高一點。用法不存在什麼區別。
舉個例子吧
欄位a為char(5)類型
欄位b為varchar(5)類型
向a,b中賦值'123'
a的結果是'123'(123+兩個空格)
b的結果是'123'

C. sql server中的varchar和Nvarchar有什麼區別

sqlserver中的varchar和Nvarchar有什麼區別?
很多開發者進行資料庫設計的時候往往並沒有太多的考慮char,varchar類型,有的是根本就沒注意,因為存儲價格變得越來越便宜了,忘記了最開始的一些基本設計理論和原則,這點讓我想到了現在的年輕人,大手一揮一把人民幣就從他手裡溜走了,其實我想不管是做人也好,做開發也好,細節的把握直接決定很多東西。當然還有一部分人是根本就沒弄清楚他們的區別,也就隨便選一個。在這里我想對他們做個簡單的分析,當然如果有不對的地方希望大家指教。
1、CHAR。CHAR存儲定長數據很方便,CHAR欄位上的索引效率級高,比如定義char(10),那麼不論你存儲的數據是否達到了10個位元組,都要佔去10個位元組的空間,不足的自動用空格填充,所以在讀取的時候可能要多次用到trim()。
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

它們的區別概括成:
CHAR,NCHAR定長,速度快,占空間大,需處理
VARCHAR,NVARCHAR,TEXT不定長,空間小,速度慢,無需處理
NCHAR、NVARCHAR、NTEXT處理Unicode碼

下面找到一段資料,來源http://wenku..com/view/eee97bf5f61fb7360b4c652b.html

varchar在SQLServer中是採用單位元組來存儲數據的,nvarchar是使用Unicode來存儲數據的.中文字元存儲到SQLServer中會保存為兩個位元組(一般採用Unico編碼),英文字元保存到資料庫中,如果欄位的類型為varchar,則只會佔用一個位元組,而如果欄位的類型為nvarchar,則會佔用兩個位元組.
正常情況下,我們使用varchar也可以存儲中文字元,但是如果遇到操作系統是英文操作系統並且對中文字體的支持不全面時,在SQLServer存儲中文字元為varchar就會出現亂碼(顯示為??).而且正常情況下,主機都會支持中文的環境,所以如果使用varchar來存儲數據,在開發階段是發現不了的.多數情況下,在布署
當然,使用nvarchar存儲英文字元會增大一倍的存儲空間.但是在存儲代價已經很低廉的情況下,優先考慮兼容性會給你帶來更多好處的.
所以在Design的時候應該盡量使用nvarchar來存儲數據.只有在你確保該欄位不會保存中文的時候,才採用varchar來存儲.的時候也不會有問題.
但是!如果布署的主機是英文操作系統,並且不支持中文環境,那問題就出來了.所有的varchar欄位在存儲中文的時候都會變成亂碼(顯示為??).而且一般情況下你不會知道這是因為你採用了錯誤的數據類型來存儲所造成的,你會試著去裝中文字體,試著去設置操作系統的語言環境...這些都不能解決問題,唯一能解決問題的是把資料庫欄位的類型個性為nvarchar(或者nchar).對項目管理比較熟悉的朋友應該都知道,到布署階段再來修改資料庫是一個很恐怖的事情.
使用nvarchar的另一個非常好處就是在判斷字元串的時候可以不需要考慮中英文兩種字元的差別.

D. SQL中varchar和nvarchar有什麼區別

varchar(n)
長度為 n 個位元組的可變長度且非 Unicode 的字元數據。n 必須是一個介於 1 和 8,000 之間的數值。存儲大小為輸入數據的位元組的實際長度,而不是 n 個位元組。

nvarchar(n)
包含 n 個字元的可變長度 Unicode 字元數據。n 的值必須介於 1 與 4,000 之間。位元組的存儲大小是所輸入字元個數的兩倍。

兩欄位分別有欄位值:我和coffee
那麼varchar欄位佔2×2+6=10個位元組的存儲空間,而nvarchar欄位佔8×2=16個位元組的存儲空間。

如欄位值只是英文可選擇varchar,而欄位值存在較多的雙位元組(中文、韓文等)字元時用nvarchar

上面是一個總結介紹,通過上面的介紹,可以知道。

varchar(4) 可以輸入4個字母,也可以輸入兩個漢字

nvarchar(4) 可以輸四個漢字,也可以輸4個字母,但最多四個
 
char、varchar、nchar、nvarchar的區別
 
對於程序中的string型欄位,SQLServer中有char、varchar、nchar、nvarchar四種類型來對應(暫時不考慮text和ntext),開建立資料庫中,對這四種類型往往比較模糊,這里做一下對比。
定長或變長
所謂定長就是長度固定的,當輸入的數據長度沒有達到指定的長度時將自動以英文空格在其後面填充,使長度達到相應的長度;有var前綴的,表示是實際存儲空間是變長的,比如varchar,nvarchar變長字元數據則不會以空格填充,比較例外的是,text存儲的也是可變長。
Unicode或非Unicode
資料庫中,英文字元只需要一個位元組存儲就足夠了,但漢字和其他眾多非英文字元,則需要兩個位元組存儲。如果英文與漢字同時存在,由於佔用空間數不同,容易造成混亂,導致讀取出來的字元串是亂碼。Unicode字元集就是為了解決字元集這種不兼容的問題而產生的,它所有的字元都用兩個位元組表示,即英文字元也是用兩個位元組表示。而前綴n就表示Unicode字元,比如nchar,nvarchar,這兩種類型使用了Unicode字元集。
基於以上兩點來看看欄位容量
char,varchar    最多8000個英文,4000個漢字
nchar,nvarchar    可存儲4000個字元,無論英文還是漢字
使用(個人偏好)
如果數據量非常大,又能100%確定長度且保存只是ansi字元,那麼char
能確定長度又不一定是ansi字元或者,那麼用nchar;
對於超大數據,如文章內容,使用nText
其他的通用nvarchar
char、varchar、nchar、nvarchar特點比較
CHAR
CHAR存儲定長數據很方便,CHAR欄位上的索引效率級高,比如定義char(10),那麼不論你存儲的數據是否達到了10個位元組,都要佔去10個位元組的空間。
VARCHAR
存儲變長數據,但存儲效率沒有CHAR高,如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什麼"+1"呢?這一個位元組用於保存實際使用了多大的長度。
從空間上考慮,用varchar合適;從效率上考慮,用char合適,關鍵是根據實際情況找到權衡點。
TEXT
text存儲可變長度的非Unicode數據,最大長度為2^31-1(2,147,483,647)個字元。
NCHAR、NVARCHAR、NTEXT
這三種從名字上看比前面三種多了個"N"。和char、varchar比較起來,nchar、nvarchar最多存儲4000個字元,不論是英文還是漢字;而char、varchar最多能存儲8000個英文,4000個漢字。可以看出使用nchar、nvarchar數據類型時不用擔心輸入的字元是英文還是漢字,較為方便,但在

E. sql 中 varchar(50)代表什麼它能存儲幾個字母

此處例子----sql server
對於字元類型的有:
char:固定長度,存儲ANSI字元,不足的補英文半形空格。
nchar:固定長度,存儲Unicode字元,不足的補英文半形空格
varchar:可變長度,存儲ANSI字元,根據數據長度自動變化。
nvarchar:可變長度,存儲Unicode字元,根據數據長度自動變化。

也就是說:varchar 可變長度,
varchar(50)即長度為:50個字元
當有存入值時,就跟據實際的值的大小(長度)存入數據。

F. sqlserver中 varchar 最大長度是多少

最大長度8000,用max可以存儲達到2G。

例如:

varchar [ ( n | max) ]

可變長度,非 Unicode 字元數據。n 的取值范圍為 1 至 8,000。max 指示最大存儲大小是 2^31-1 個位元組。

在某些情況下,前台應用對過長的字串是無法正確處理的,比如一些表格控制,比如C++定義的字元串變數。

(6)sqlvarchar擴展閱讀:

注意事項

存儲限制

varchar 欄位是將實際內容單獨存儲在聚簇索引之外,內容開頭用1到2個位元組表示實際長度(長度超過255時需要2個位元組),因此最大長度不能超過65535。

1、編碼長度限制

字元類型若為gbk,每個字元最多佔2個位元組,最大長度不能超過32766;

字元類型若為utf8,每個字元最多佔3個位元組,最大長度不能超過21845。

若定義的時候超過上述限制,則varchar欄位會被強行轉為text類型,並產生warning。

2、行長度限制

導致實際應用中varchar長度限制的是一個行定義的長度。 MySQL要求一個行的定義長度不能超過65535。若定義的表長度超過這個值,則提示

ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。

G. 在sql中,varchar是英文字元的定義

Numeric(10,2) 指欄位是數字型,長度為18 小數為兩位的

varchar是字元串長度的定義
不一定是英文字元如
"123445"
"dfsgsdg"
"這些都可以的"

H. 關於sql中varchar的長度不正確的問題

我覺得您應該首先確認一下存儲在資料庫中的張三,123的長度,很可能是你出入的時候就已經發生了錯誤。varchar類型,如果資料庫中數據沒有空格,取值到變數中,是絕對不可能出現空格的。所以問題很可能在你插入數據的時候就有了。這種按照長度補空格,只有char行才會有。
所以先確定一下資料庫表中數據的長度到底是多少?使用len函數查詢一下。
select
len(用戶名),
len(密碼)
from
表名字
看看長度是不是有問題。
另外,如果有空格,可以使用rtrim函數把右邊的空格去掉,這樣也可以保證數據的准確。
select
rtrim(用戶名),
rtrim(密碼)
from
表名
ltrim是去左側空格的函數,rtrim是去右側空格的函數。
因為SQLSERVER中沒有trim函數同時去掉左側右側的空格,所以要分別使用ltrim和rtrim來去掉左邊和右邊的空格。你這個只是在右側補了空格,使用rtrim就夠用了。

I. sql中varchar(50)代表什麼

1、varchar(50)表示的是設置可以存儲的最大字元串長度為50個位元組,並且字元是變長的,如果不滿50個就是根據實際存儲的位元組來確定的。

2、varchar:可變長度,存儲ANSI字元,根據數據長度自動變化。


3、varchar是數據類型為字元型,50表示的是最大字元長度。

熱點內容
副編譯 發布:2025-02-04 02:05:25 瀏覽:613
解壓按摩師 發布:2025-02-04 01:21:31 瀏覽:424
linuxssh限制 發布:2025-02-04 01:20:40 瀏覽:697
腳本式是什麼 發布:2025-02-04 01:06:24 瀏覽:248
手機wps密碼怎麼取消密碼 發布:2025-02-04 00:51:44 瀏覽:596
演算法邏輯表 發布:2025-02-04 00:51:44 瀏覽:241
零售股票如何配置主線 發布:2025-02-04 00:51:07 瀏覽:948
預演算法施行時間是 發布:2025-02-04 00:50:30 瀏覽:342
世界ol上傳照片 發布:2025-02-04 00:34:13 瀏覽:63
有初始化的數組編譯提示重復定義 發布:2025-02-04 00:33:21 瀏覽:584