當前位置:首頁 » 服務存儲 » 資料庫存儲漢字和欄位
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫存儲漢字和欄位

發布時間: 2022-04-29 14:59:49

A. 資料庫中varchar、nvarchar、char存儲字元、數字、漢字的容量區別是什麼

char:固定長度,例如:char(6),你輸入的字元小於6時,它會在後面補空值。當你輸入的字元大於指定的數時,它會截取超出的字元。

存儲字元:ANSI

數字英文存儲:最多能存儲8000個。

漢字存儲:4000個漢字

-----------------------------分割---------------------------

varchar(n):可變長度,(n為某一整數,不同資料庫,最大長度n不同)

存儲字元:ANSI

n 必須是一個介於 1 和 8,000 之間的數值。存儲大小為輸入數據的位元組的實際長度,而不是 n 個位元組。所輸入的數據字元長度可以為零。

數字英文存儲:最多能存儲8000個。

漢字存儲:4000個漢字

-----------------------------分割-----------------------------

nvarchar:可變長度,

存儲字元:Unicode

Unicode所有的字元(漢字和英文)都用兩個位元組表示。

數字英文存儲:最多能存儲4000個。

漢字存儲:4000個漢字

一般來說如果含有中文字元,用nvarchar,如果純英文和數字,用char/varchar。

B. sqlserver資料庫varchar(40)能存放多少漢字

sqlserver資料庫varchar(40)能存放20個漢字。

sqlserver資料庫中,英文字元需佔用一個位元組存儲,漢字和其他非英文字元,需佔用兩個位元組存儲。向一個長度為40個字元的varchar型欄位中輸入漢字,最多可輸入20個漢字。當從這個欄位中取出數據時,數據其長度為20個漢字,40個字元。

(2)資料庫存儲漢字和欄位擴展閱讀:

VARCHAR(M)比CHAR更加的靈活,同樣用於表示字元數據,但是VARCHAR可以保存可變長度的字元串。其中M代表該數據類型所允許保存的字元串的最大長度,只要長度小於該最大值的字元串都可以被保存在該數據類型中。

使用VARCHAR型欄位要比CHAR型欄位方便的多。使用VARCHAR型欄位時,不需要為剪掉數據中多餘的空格而操心。它可以比CHAR型欄位佔用更少的內存和硬碟空間。當資料庫很大時,這種內存和磁碟空間的節省會變得非常重要。

參考資料來源:

網路——varchar

網路——字長

C. 漢字在資料庫中是以二進制形式儲存的嗎是如何轉換的呢

二進制乃數字也,即0、1是也~任何中文、英文、阿拉伯文、韓文……均是以字元形式存儲的!你的中文操作系統裡面有一個東東叫做字型檔,就是存儲的文字,每個中文佔2個字元,每個英文佔1個字元數字和字元是不一樣滴~你打字的時候有各種字體,每種字體都對應一個字型檔,假如漢字有2W個,宋體字型檔就有2W個漢字,楷體字型檔也有2W漢字,幼圓、黑體等等類推!

D. mysql資料庫一個漢字到底占幾個位元組

一個漢字佔多少長度與編碼有關:

若採用UTF-8編碼,則一個漢字=3個位元組。

若採用GBK編碼,則一個漢字=2個位元組。

項目中oracle10g資料庫表欄位為varchar(n)類型,存英文很簡單,只要字母個數不大於n即可。但是對於漢字,按照同樣的方法就不行了。因為對於漢字不同的字元集,在資料庫佔用的位元組是不一樣的。

比如varchar(10)類型的欄位,UTF-8的漢字,只能存3個,gbk字元集的漢字卻能存5個。所以在程序中根據表欄位varchar的大小,保存或更新時作出必要的校驗否則後台會報錯。

對於一個網站、論壇來說,如果英文字元較多,則建議使用UTF-8節省空間。不過現在很多論壇的插件一般只支持GBK。

GB2312是GBK的子集,GBK是GB18030的子集

GBK是包括中日韓字元的大字元集合

(4)資料庫存儲漢字和欄位擴展閱讀

字元最終是以二進制形式存儲在磁碟的,這也是為什麼要有字元編碼的原因,因為計算機最終都要以二進制形式存儲,那麼編碼規則就是用什麼樣的二進制來代表這個字元。

例如,ASCII碼表中,01000011這個二進制對應的十進制是67,它代表的就是英語字母C。准確概述來說,字元編碼方式是用一個或多個位元組的二進制形式表示字元集中的一個字元。

每種字元集都有自己特有的編碼方式,因此同一個字元,在不同字元集的編碼方式下,可能會產生不同的二進制形式。

另外,字元集合只是指定了一個集合中有哪些字元,而字元編碼,是為這個集合中所有字元定義相關編號,而字元集(注意與字元集合的區別)是字元和集合與編碼規則的混合體,這也是有時候編碼方案代表字元集的原因。

E. 漢字片語怎麼在資料庫中進行存儲又怎麼進行各種操作

漢字在存入資料庫之前一定要確認編碼是正確的,我常用的方法是
1、提交之前對漢字做個URLencode,
2、$_POST到漢字時,再做個URLDecode
3、轉為相應的編碼(我資料庫用的是UTF8),比如從GBK轉為UTF8
有人告訴我第三步不用執行,但我沒驗證過。

F. 資料庫中對於存儲漢字和各種符號的欄位應該定義為什麼類型

需要定義成字元型,一般可用char、varchar、nchar、nvarchar等,具體需要看實際需求。
這幾種類型的比較:
CHAR
CHAR存儲定長數據很方便,CHAR欄位上的索引效率級高,比如定義char(10),那麼不論你存儲的數據是否達到了10個位元組,都要佔去10個位元組的空間。
VARCHAR
存儲變長數據,但存儲效率沒有CHAR高,如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什麼"+1"呢?這一個位元組用於保存實際使用了多大的長度。
從空間上考慮,用varchar合適;從效率上考慮,用char合適,關鍵是根據實際情況找到權衡點。
NCHAR、NVARCHAR
這兩種從名字上看比前面三種多了個"N"。和char、varchar比較起來,nchar、nvarchar最多存儲4000個字元,不論是英文還是漢字;而char、varchar最多能存儲8000個英文,4000個漢字。可以看出使用nchar、nvarchar數據類型時不用擔心輸入的字元是英文還是漢字,較為方便,但在存儲英文時數量上有些損失。
所以一般來說,如果含有中文字元,用nchar/nvarchar,如果純英文和數字,用char/varchar

G. 資料庫欄位類型VARCHAR可以存放漢字不

可以啊,長度夠就行。要設置好資料庫字元編碼之類的東西,SqlServer簡單一點,不用怎麼設置,其他的都比較麻煩

H. mysql 資料庫varchar可以存儲多少個漢字和多少個數字

首先要確定mysql版本,一般一個漢字2個位元組,50即可存25個漢字。

4.0版本以下,varchar(100),指的是100位元組,如果存放UTF8漢字時,只能存33個(每個漢字3位元組)

5.0版本以上,varchar(100),指的是100字元,無論存放的是數字、字母還是UTF8漢字(每個漢字3位元組),都可以存放100個。

varchar特點

1、使用比固定長度類型(char)佔用更少存儲空間(除了使用ROW_FORMAT=FIXED創建的MyISAM表)。

2、使用額外的1-2位元組來存儲值長度,列長度<=255使用1位元組保存,其它情況使用2位元組保存。例如varchar(10)會佔用11位元組存儲空間,varchar(500)會佔用502位元組存儲空間。

3、節約空間,所以性能會有幫助。在更新的時候會產生額外的工作。

以上內容參考:網路-varchar

I. access資料庫數據表欄位最多能儲存多少個漢字

文本類型最多是能儲存255個字元!
備注類型最多是能儲存64000個字元!

J. 資料庫中varchar、nvarchar、char存儲字元、數字、漢字的容量區別

char:固定長度,例如:char(6),你輸入的字元小於6時,它會在後面補空值。當你輸入的字元大於指定的數時,它會截取超出的字元。

存儲字元:ANSI

數字英文存儲:最多能存儲8000個。

漢字存儲4000個漢字

-----------------------------分割---------------------------

varchar(n):可變長度,(n為某一整數,不同資料庫,最大長度n不同)

存儲字元:ANSI

n 必須是一個介於 1 和 8,000 之間的數值。存儲大小為輸入數據的位元組的實際長度,而不是 n 個位元組。所輸入的數據字元長度可以為零。

數字英文存儲:最多能存儲8000個。

漢字存儲4000個漢字

-----------------------------分割-----------------------------

nvarchar:可變長度,

存儲字元:Unicode

Unicode所有的字元(漢字和英文)都用兩個位元組表示。

數字英文存儲:最多能存儲4000個

漢字存儲4000個漢字


一般來說如果含有中文字元,用nvarchar,如果純英文和數字,用char/varchar。