char varchar nchar nvarchar四者的區別是什麼,菜鳥問

2022-03-13 03:01:29 字數 4771 閱讀 3805

1樓:匿名使用者

1、char[(n)]

長度為 n 個位元組的固定長度且非 unicode 的字元資料。n 必須是一個介於 1 和 8,000 之間的數值。儲存大小為 n 個位元組。

char 在 sql-92 中的同義詞為 character。

2、varchar[(n)]

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

所輸入的資料字元長度可以為零。varchar 在 sql-92 中的同義詞為 char varying 或 character varying。

如果沒有在資料定義或變數宣告語句中指定 n,則預設長度為 1。如果沒有使用 cast 函式指定 n,則預設長度為 30。

將為使用 char 或 varchar 的物件被指派資料庫的預設排序規則,除非用 collate 子句另外指派了特定的排序規則。該排序規則控制用於儲存字元資料的**頁。

支援多語言的站點應考慮使用 unicode nchar 或 nvarchar 資料型別以儘量減少字元轉換問題。如果使用 char 或 varchar:

如果希望列中的資料值大小接近一致,請使用 char。

如果希望列中的資料值大小顯著不同,請使用 varchar。

如果執行 create table 或 alter table 時 set ansi_padding 為 off,則一個定義為 null 的 char 列將被作為 varchar 處理。

當排序規則**頁使用雙位元組字元時,儲存大小仍然為 n 個位元組。根據字串的不同,n 個位元組的儲存大小可能小於 n 個字元。

nchar 是固定長度 unicode 資料的資料型別,nvarchar 是可變長度 unicode 資料的資料型別,二者均使用 unicode ucs-2 字符集。

3、nchar(n)

包含 n 個字元的固定長度 unicode 字元資料。n 的值必須介於 1 與 4,000 之間。儲存大小為 n 位元組的兩倍。

nchar 在 sql-92 中的同義詞為 national char 和 national character。

3、nvarchar(n)

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

所輸入的資料字元長度可以為零。nvarchar 在 sql-92 中的同義詞為 national char varying 和 national character varying。

如果沒有在資料定義或變數宣告語句中指定 n,則預設長度為 1。如果沒有使用 cast 函式指定 n,則預設長度為 30。

如果希望列中所有資料項的大小接近一致,則使用 nchar。

如果希望列中資料項的大小差異很大,則使用 nvarchar。

使用 nchar 或 nvarchar 的物件被賦予資料庫的預設排序規則,除非使用 collate 子句賦予特定的排序規則。

set ansi_padding off 不適用於 nchar 或 nvarchar。set ansi_padding on 永遠適用於 nchar 和 nvarchar。

2樓:阡陌半緣君

nchar(n)

包含 n 個字元的固定長度 unicode 字元資料。n 的值必須介於 1 與 4,000 之間。儲存大小為 n 位元組的兩倍。

nchar 在 sql-92 中的同義詞為 national char 和 national character。

nvarchar(n)

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

所輸入的資料字元長度可以為零。nvarchar 在 sql-92 中的同義詞為 national char varying 和 national character varying。

註釋如果沒有在資料定義或變數宣告語句中指定 n,則預設長度為 1。如果沒有使用 cast 函式指定 n,則預設長度為 30。

如果希望列中所有資料項的大小接近一致,則使用 nchar。

如果希望列中資料項的大小差異很大,則使用 nvarchar。

使用 nchar 或 nvarchar 的物件被賦予資料庫的預設排序規則,除非使用 collate 子句賦予特定的排序規則。

set ansi_padding off 不適用於 nchar 或 nvarchar。set ansi_padding on 永遠適用於 nchar 和 nvarchar。

二、char 和 varchar

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

char[(n)]

長度為 n 個位元組的固定長度且非 unicode 的字元資料。n 必須是一個介於 1 和 8,000 之間的數值。儲存大小為 n 個位元組。

char 在 sql-92 中的同義詞為 character。

varchar[(n)]

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

所輸入的資料字元長度可以為零。varchar 在 sql-92 中的同義詞為 char varying 或 character varying。

註釋如果沒有在資料定義或變數宣告語句中指定 n,則預設長度為 1。如果沒有使用 cast 函式指定 n,則預設長度為 30。

將為使用 char 或 varchar 的物件被指派資料庫的預設排序規則,除非用 collate 子句另外指派了特定的排序規則。該排序規則控制用於儲存字元資料的**頁。

支援多語言的站點應考慮使用 unicode nchar 或 nvarchar 資料型別以儘量減少字元轉換問題。如果使用 char 或 varchar:

如果希望列中的資料值大小接近一致,請使用 char。

如果希望列中的資料值大小顯著不同,請使用 varchar。

如果執行 create table 或 alter table 時 set ansi_padding 為 off,則一個定義為 null 的 char 列將被作為 varchar 處理。

當排序規則**頁使用雙位元組字元時,儲存大小仍然為 n 個位元組。根據字串的不同,n 個位元組的儲存大小可能小於 n 個字元。

總結:1、 varchar:

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

2、nvarchar:

可變長度 unicode 資料,其最大長度為 4,000 字元。

3、char:

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

4、nchar

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

5、 char和varchar都是字串型別的

用unicode編碼的字串,結果是字元的整數值

3樓:

我也有同樣的問題 嘿嘿 既然你提了 我就不問了 大蝦趕緊來給解答一下哦

資料庫char,varchar,nchar,nvarchar型別分別有什麼區別。

4樓:教育仁昌

資料庫char,varchar,nchar,nvarchar型別區別為:長度不同、位元組不同、空格不同。

一、長度不同

2、varchar型別:varchar型別的長度不固定,佔用更少的儲存空間。

4、nvarchar型別:nvarchar型別的長度不固定,佔用更少的儲存空間。

二、位元組不同

1、char型別:char型別所有的字元使用一個位元組表示。

2、varchar型別:varchar型別所有的字元使用一個位元組表示。

3、nchar型別:nchar型別所有的字元使用兩個位元組表示。

4、nvarchar型別:nvarchar型別所有的字元使用兩個位元組表示。

三、空格不同

1、char型別:char型別儲存的時候會去掉字串末尾的空格。

2、varchar型別:varchar型別儲存的時候不會去掉字串末尾的空格。

3、nchar型別:nchar型別儲存的時候會去掉字串末尾的空格。

4、nvarchar型別:nvarchar型別儲存的時候不會去掉字串末尾的空格。

智者和愚者區別是什麼

愚者與智者的48個差距 1 智者善於傾聽,愚者沒有耐心 2 智者瞭解別人的心思,愚者表示自己的需要 e5a48de588b662616964757a686964616f31333332626632 3 智者記住別人的名字,愚者希望名字被記住 4 智者滿臉微笑,愚者冷若冰霜 5 智者讓別人逐步說 是 ...

調是什麼?調式是什麼?兩者的區別是什麼

調 英文為key 是指 的旋律存在一定的音高位置,不同的調代表了不同的音高位置,例如d調的音高就比c調高。調式 英文為mode 若干高低不同的樂音,圍繞某一有穩定感的中心音,按一定的音程關係組織在一起,成為一個有機的體系,稱為調式。調與調式,這是兩個完全不同的概念,但兩者卻有著不可分割的緊密聯絡。在...

實際資本與所有者權益的區別是什麼

實際資本與通用會計報表中的所有者權益不同。主要表現在以下幾方面 1 性質不同。實際資本是保險公司能夠履行對保單持有人賠付義務的資本。所有者權益是所有者在企業中享有的經濟利益。2 目的不同。評估實際資本的目的是為了衡量保險公司的償付能力。確認所有者權益的目的是為了衡量所有者在企業中享有的經濟利益,評價...