oracle中有4種基本的字串型別,分別是char、varchar2、nchar和nvarchar2。在oracle中,所有串都以同樣的格式儲存。在資料庫塊上,最全面都有乙個1~3位元組的長度字段,其後才是資料,如果資料為null,長度欄位則表示乙個但位元組值0xff。
如果乙個包含"hello world"的varchar2(80), 塊中結構如圖所示:
如果在char(80)中儲存同樣的資訊,塊結構如圖所示:
char/nchar實際上只是偽裝的varchar2/nvarchar2,基於這一點,所以我認為其實只需要考慮這兩種字串型別:varchar和nvarchar2。我從來沒有見過哪個應用適合使用char型別。因為char型別總是會用空格填充得到的串,使之達到乙個固定寬度,所以我們很快就會發現:不論在表段還是任何索引段中,char都會占用最大的儲存空間。這就夠糟糕的了,避免使用char/nchar型別還有另乙個很重要的原因:在需要獲取這些資訊的應用中,char/nchar型別還會帶來混亂。因為字串比較的時候,如果帶有空格會有影響。使用char除非你非常確定次字段的長度是多少,其他情況一概使用varchar。
假如某一列不是定長資料,最大長度是20。如果我們將這一列定義為char型別。今後我們使用繫結變數進行查詢的時候,比如傳進來的這一列對應的引數長度為10。sql類似這種:select * from table_examp where column_exmp = ? 。即使資料庫中有對應的資料也會查不出來,原因是資料庫中是加了10個空格的資料,傳進來的引數是沒加空格的。
Redis的字串型別介紹
字串是 redis 中最常用的資料結構。字串型別的值,簡單字串,json xml,數字,二進位制 等 最大 512mb 大小。set key value ex seconds px milliseconds nx xx ex 為鍵設定秒級過期時間 px 為鍵設定毫秒級過期時間 nx 鍵必須不存在,才...
mysql字串型別 mysql 字串型別
字串型別 字串型別指char varchar binary varbinary blob text enum和set。該節描述了這些型別如何工作以及如何在查詢中使用這些型別。型別大小用途 char0 255位元組定長字串 varchar0 65535 位元組變長字串 tinyblob0 255位元組...
字串型別
c 定義了乙個內容豐富的抽象資料型別庫,其中,string和vector是兩種最重要的標準庫型別,前者支援可變長字串,後者則表示可變長的集合。還有一種標準庫型別是迭代器,它是string和vector的配套型別,常被用於訪問string中的字元或vector中的元素。本篇將介紹string型別。標註...