資料庫中char和varchar的區別

2023-02-15 21:10:06 字數 4643 閱讀 5690

1樓:雯兒心

char的長度是不可變的,而varchar的長度是可變的,也就是說,定義一個char[10]和varchar[10],如果存進去的是『csdn』,那麼char所佔的長度依然為10,除了字元『csdn』外,後面跟六個空格,而varchar就立馬把長度變為4了,取資料的時候,char型別的要用trim()去掉多餘的空格,而varchar是不需要的,儘管如此,char的存取數度還是要比varchar要快得多,因為其長度固定,方便程式的儲存與查詢;但是char也為此付出的是空間的代價,因為其長度固定,所以難免會有多餘的空格佔位符佔據空間,可謂是以空間換取時間效率,而varchar是以空間效率為首位的。再者,char的儲存方式是,對英文字元(ascii)佔用1個位元組,對一個漢字佔用兩個位元組;而varchar的儲存方式是,對每個英文字元佔用2個位元組,漢字也佔用2個位元組,兩者的儲存資料都非unicode的字元資料。

資料庫:char和varchar資料型別的區別

2樓:千鋒教育

資料型別區別如下:

char表示的是固定長度,varchar表示的是實際長度的資料型別。

比如:如果是char型別,當你輸入字元小於長度時,後補空格;而是varchar型別時,則表示你輸入字元的實際長度。

3樓:匿名使用者

非常直觀的區別:char是固定長度,不足會自動補足字元位數(以佔位符補足);

而varchar是可變長度的資料型別,其值的長度以實際為準,varchar(20)是表示最大的長度為20,實際長度可以是1、5、10等等。

4樓:匿名使用者

varchar也就是 variable char,即可變的char。

比如:char(4)表示該欄位將佔用4個位元組。

varchar(20)表示該欄位最多可接受20個字元,但該欄位的佔用空間為欄位值的實際大小。如你的一條記錄的該欄位值為"good",則該記錄裡該欄位的佔用空間為4個位元組,而非20。

5樓:匿名使用者

char和varchar都是字串型別的。

char固定長度的非 unicode 字元資料,最大長度為 8,000 個字元。

所佔儲存空間為你定義時的大小。

資料量較大時以char欄位為查詢條件時查詢得快一些。

varchar可變長度的非 unicode 資料,最長為 8,000 個字元。

所佔儲存空間為實際大小(在不超過你定義長度時)如果要儲存的欄位不是定長的。用varchar較好一些。

所以,對經常修改(或插入)的欄位選用char,而不常修改的建議用varchar

postgresql資料庫中char,varchar和text的區別是什麼?

6樓:網友

一般來說,sql類資料庫都會有三種字串型別:固定長度的char,限定最大長度的varchar,可變長度的text。

在使用mysql的時候,我們通常會被告知,使用有最大長度的char或者varchar會在效能方面有好處,而在postgresql中,卻不一定是這樣。

在postgresql中,這三種型別的字串資料並沒有明顯的效能差別,而且character(n)型別的資料一般是最慢的,因為固定長度導致更多的儲存空間。所以,一般來說,text或者character varying就行了。

7樓:教育仁昌

資料庫中char和varchar的區別為:長度不同、效率不同、儲存不同。

一、長度不同。

1、char型別:char型別的長度是固定的。

2、varchar型別:varchar型別的長度是可變的。

二、效率不同。

1、char型別:char型別每次修改的資料長度相同,效率更高。

2、varchar型別:varchar型別每次修改的資料長度不同,效率更低。

三、儲存不同。

8樓:憨憨

在建立資料庫表結構的時候,為了給一個string型別的資料定義一個資料庫的資料庫型別,一般參考的都是char或者varchar,這兩種選擇有時候讓人很糾結,今天想總結一下它們兩者的區別,明確一下選擇塔門的理由。

首先明確的是,char的長度是不可變的,而varchar的長度是可變的,也就是說,定義一個char[10]和varchar[10],如果存進去的。

是『csdn』,那麼char所佔的長度依然為10,除了字元『csdn』外,後面跟六個空格,而varchar就立馬把長度變為4了,取資料的時。

候,char型別的要用trim()去掉多餘的空格,而varchar是不需要的,儘管如此,char的存取數度還是要比varchar要快得多,因為其。

長度固定,方便程式的儲存與查詢;但是char也為此付出的是空間的代價,因為其長度固定,所以難免會有多餘的空格佔位符佔據空間,可謂是以空間換取時間。

效率,而varchar是以空間效率為首位的。再者,char的儲存方式是,對英文字元(ascii)佔用1個位元組,對一個漢字佔用兩個位元組;而。

varchar的儲存方式是,對每個英文字元佔用2個位元組,漢字也佔用2個位元組,兩者的儲存資料都非unicode的字元資料。

9樓:匿名使用者

char是一種固定長度的型別,varchar則是一種可變長度的型別,它們的區別是:

char(m)型別的資料列裡,每個值都佔用m個位元組,如果某個長度小於m,mysql就會在它的右邊用空格字元補足.(在檢索操作中那些填補出來的空格字元將被去掉)在varchar(m)型別的資料列裡,每個值只佔用剛好夠用的位元組再加上一個用來記錄其長度的位元組(即總長度為l+1位元組).

在mysql中用來判斷是否需要進行對據列型別轉換的規則。

1、在一個資料表裡,如果每一個資料列的長度都是固定的,那麼每一個資料行的長度也將是固定的.

2、只要資料表裡有一個資料列的長度的可變的,那麼各資料行的長度都是可變的.

3、如果某個資料表裡的資料行的長度是可變的,那麼,為了節約儲存空間,mysql會把這個資料表裡的固定長度型別的資料列轉換為相應的可變長度型別.

例外:長度小於4個字元的char資料列不會被轉換為varchar型別。

mysql中char和varchar有什麼區別?

10樓:椰子糖

varchar通常用於儲存可變長字串。在磁碟儲存資料時,它只會佔用實際使用到的空間,因此對效能有提升。vachar在儲存資料時會額外使用1個或者2個字元,用於記錄列的長度,如果列內位元組長度小於等於255就使用1個位元組記錄,如果是大於255則使用2個位元組記錄。

因為varchar是變長的,所以update操作可能會產生碎片,從而使列的長度變長,mysql還需要做額外的工作處理。其實varchar(5)和varchar(255)儲存'hello'所用的空間是一樣的,但是我們在實際使用的時候,列的長度還是越短越好,原因是更長的列會佔用更多的記憶體,mysql通常會分配固定大小的記憶體塊儲存內部值。這個在記憶體臨時表做排序和操作的時候會變得很糟糕,在磁碟臨時表進行排序時也會特別的糟糕。

再說一下char,對比下你就會明白。

char型別適用於儲存固定長度的資料。比如說md5後的密碼,這個長度就是固定的32位,很適合使用char型別。因為char型別是固定長度,因此在修改資料時也不容易產生碎片。

他在磁碟上的儲存空間是固定的,如果儲存的資料長度不夠,會在右側以空格的方式補充,方便進行比較。對於非常短的列(單位元組字符集),char的效率比varchar要高,因為char不需要使用額外的位元組去記錄長度。

使用什麼樣的型別儲存資料,要根據實際情況而定,最好是對各種儲存型別都有一定的瞭解。

純手打,希望可以幫到你,共同進步。:)

11樓:我**很紅

在varchar(m)型別的資料列裡,每個值只佔用剛好夠用的位元組再加上一個用來記錄其長度的位元組,這個說法是錯的。當 m <=255 的時候是用一個位元組即可記錄其長度,當 m>255 的時候則需要2個位元組。因為 1 個位元組只能記錄變長長度為 0~255,而如果變長長度為 32767 這種大於 255 的值的時候,是沒有辦法單單用1個位元組記錄下來的。

12樓:網友

char固定長度,是說佔用空間的長度一定,而不是必須有那麼多值。你輸入兩個字元,第三個字元空著,但是必須不能被其它字元佔用。

varchar就可以啊!沒有佔用到那麼長,就可以少給她分配空間,從而達到介紹資源的目的!

13樓:小湯圓

一個定長。

一個不定長。

a char(10)

b varchar(10)

都存入'abc'

a10位元組。

b3位元組。

資料庫中char型別和varchar型別的區別

14樓:網友

char是定長的,比如你定義char(30),就總是佔用30位元組,如果你輸入1個位元組,也會補齊長度。

varchar是變長的,定義varchar(30),如果你1位元組,就只佔1位元組(實際會多佔一點,用於記錄長度等資訊)。

應該根據實際資料的特點來選擇欄位型別。

15樓:匿名使用者

char有固定的長度,而varchar屬於可變長的字元型別。

16樓:匿名使用者

固定長度 (char) 或可變長度 (varchar) 字元資料型別。

解釋資訊 資料 資料庫 資料庫管理系統

一 資料 data 資料實際上就是描述事物的符號記錄。二 資訊 information 資訊就是有意義的資料表示。三 資料庫 database,簡稱db 資料庫是長期儲存在計算機內有結構的大量的共享的資料集合。四 資料庫管理系統 database management system,簡稱dbms 資...

資料庫模型和模式的區別,資料庫 資料模型和模式的聯絡與區別

資料 data 是描述事物的符號記錄。模型 model 是現實世界的抽象。資料模型 data model 是資料特徵的抽象,是資料庫管理的教學形式框架。資料模型所描述的內容包括三個部分 資料結構 資料操作 資料約束。1 資料結構 資料模型中的資料結構主要描述資料的型別 內容 性質以及資料間的聯絡等。...

資料庫中關係的性質是什麼,簡述資料庫關係的性質?

1.資料庫的基本概念 資料庫,資料庫管理系統,資料庫系統。2.資料模型,實體聯絡模型及e r圖,從e r圖匯出關係資料模型。3.關係代數運算,包括集合運算及選擇 投影 連線運算,資料庫規範化理 論。4.資料庫設計方法和步驟 需求分析 概念設計 邏輯設計和物理設計的相關策略。你說指的關係性質是什麼?麻...