OceanBase NCHAR 數(shù)據(jù)類型

2021-06-15 09:31 更新

?NCHAR? 是 ?UNICOD?E 字符數(shù)據(jù)類型,長度固定。您在創(chuàng)建數(shù)據(jù)庫時(shí),列的最大長度由國家字符集定義確定。創(chuàng)建包含 ?NCHAR? 數(shù)據(jù)類型列的表時(shí),以字符定義列長度。字符數(shù)據(jù)類型 ?NCHAR? 的寬度規(guī)范是指字符數(shù)。允許的最大列大小為 2000 字節(jié)。

如果希望用較少的空間來存儲(chǔ)中文,可以選擇 ?NCHAR? 類型。

使用 ?NCHAR? 來存儲(chǔ)數(shù)據(jù)時(shí),如果存儲(chǔ)的數(shù)據(jù)沒有達(dá)到指定長度,那么數(shù)據(jù)庫將自動(dòng)補(bǔ)足空格。指定長度時(shí),采用 ?CHAR? 為計(jì)量單位,不可以手動(dòng)指定其他單位。

注意 
您不能將 ?CHAR? 值插入 ?NCHAR? 列,也不能將 ?NCHAR? 值插入 ?CHAR 列。

語法

NCHAR[(size)]

參數(shù)

參數(shù)

說明

size

表示定長字符數(shù)據(jù)的長度大小,最大大小由國家字符集定義確定,上限為 2000 個(gè)字節(jié)。默認(rèn)定長字符數(shù)據(jù)的長度最小為 1 個(gè)字符。

更多信息

UNICODE 字符集

UNICODE 字符集是對(duì)字符的一種編碼,具體的編碼方式有 UTF-8、UTF-16、UTF-32 和壓縮轉(zhuǎn)換等,編碼方式?jīng)Q定了一個(gè)字符的存儲(chǔ)大小,中英文在不同的存儲(chǔ)方式上使用的空間是不一樣的。

三種編碼方式的對(duì)比

編碼方式 編碼字節(jié)數(shù) BOM 優(yōu)點(diǎn) 缺點(diǎn)
UTF-8

不定長編碼方式,單字節(jié)(ASCII 字符)或多字節(jié)(非 ASCII 字符);最小 Code Unit 是 8 位。

無字節(jié)序:如果一個(gè)文本的開頭有字節(jié)流 EF BB BF,表示是 UTF-8 編碼。

較為理想的 UNICODE 編碼方式:與 ASCII 編碼完全兼容;無字節(jié)序;自同步和糾錯(cuò)能力強(qiáng),適合網(wǎng)絡(luò)傳輸和通信;擴(kuò)展性好。

變長編碼方式不利于程序內(nèi)部處理。

UTF-16

雙字節(jié)或者四字節(jié);最小 Code Unit 是 16 位。

有字節(jié)序:UTF-16LE(小端序)以 FF FE 代表,UTF-16BE(大端序)以 FE FF 代表。

最早的 Unicode 編碼方式,已被應(yīng)用于大量環(huán)境中;適合內(nèi)存中 Unicode 處理;很多編程語言的 API 中作為 string 類型的編碼方式。

無法兼容于 ASCII 編碼;增補(bǔ)平面碼點(diǎn)編碼使用代理對(duì),編碼復(fù)雜;擴(kuò)展性差。

UTF-32

固定四字節(jié);最小 Code Unit 是 16 位。

有字節(jié)序:UTF-16LE(小端序)以 FF FE 代表,UTF-16BE(大端序)以 FE FF 代表。

固定字節(jié)編碼讀取簡單,編譯程序內(nèi)部處理;Unicode 碼點(diǎn)和 Code Unit 一一對(duì)應(yīng)關(guān)系。

所有字符以固定四字節(jié)編碼,浪費(fèi)存儲(chǔ)空間和帶寬;與 ASCII 編碼不兼容;擴(kuò)展性差;實(shí)際使用少。

數(shù)據(jù)庫字符集

  • 用來存儲(chǔ) ?CHAR?、?VARCHAR2?、?CLOB? 等類型數(shù)據(jù)。
  • 用來標(biāo)示諸如表名、列名以及 PL 變量等。
  • 用來存儲(chǔ) SQL 和 PL 程序單元等。

國家字符集

  • 用來存儲(chǔ) ?NCHAR?、?NVARCHAR2?、?NCLOB? 等類型數(shù)據(jù)。
  • 國家字符集實(shí)質(zhì)上是為 OceanBase 數(shù)據(jù)庫選擇的附加字符集,主要作用是為了增強(qiáng) OceanBase 數(shù)據(jù)庫的字符處理能力,?NCHAR? 數(shù)據(jù)類型使用國家字符集,在使用 ?CHAR? 數(shù)據(jù)類型提供的數(shù)據(jù)庫字符集的同時(shí),?NCHAR? 類型提供了除了數(shù)據(jù)庫字符集之外的另一種字符集選擇。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)