Firebird数据库
Firebird语言参考-字符类数据类型(二)
2016-04-29 11:59:38

 

在Firebird2.0以前的版中,一个问题会发生在建立一个字符列的索引使用非标准排序规则时:

 

没有进行排序规则指定索引字段的长度被限制为252个字节或如果被指定时限制为84字节,多字节字符集和复合索引的大小限制更进一步。

从Firebird2.0版开始,索引的最大长度等于页面大小的一个四分之一,即从1024到4096字节。索引字符串的最大长度为9字节,小于该四分之一页的限制.

计算索引字符串字段的最大长度:下面的公式计算一个被索引的字符串(字符)最大长度:

 

 

N为每个字符在字集中的长度

 

下面的表格显示了一个索引字符串的最大长度(在字符中),它是用这个公式根据页面大小和字符集计算的。

 

 

 

 

 

参阅:创建数据库(CREATE DATABASE),排序规则序列(Collation sequence), SELECT语句, WHERE子句, GROUP BY子句, ORDER BY子句

 

 

 

CHAR为固定长度数据类型,如果输入的字符数小于声明的长度,字段尾部将添加空格字符。一般来说,填充字符并不一定为空格字符:这取决于字符集,例如,OCTETS字符集填充为字符为零。

 

此数据类型的完整名称是CHARACTER,这里并没有要使用完整名称且人们很少这样用.

 

固定长度的字符数据可用于存储长度为标准的编码,有一个明确的“宽度”目录。这类编码的一个例子是一个EAN13 条码-13字符,都被填满。

 

声明语法:

  

  

 

  

 


 

VARCHAR 是基本的字符串类型用于存储可变长度,最大为 32,765 字节的文本。存储的结构是等于实际大小的数据再加上2个用于记录的数据的长度字节。

 

从客户端应用程序向数据库发送的所有字符被都视为有意义,包括前置和尾部空格。但是,尾随空格不存储:他们将恢复后检索达到记录的字符串的长度。

 

此数据类型的完整名称是CHARACTER VARYING,另一个变体的名字写作CHAR VARYING

 

声明语法:

 

  


 

NCHAR带ISO8859_1字符集预定义是一个定长字符数据类型。在所有其他方面它与CHAR的相同。

 

语法:

 

 

同义词的名称是NATIONAL CHAR。一个类似的数据类型可用于可变长度的字符串类型:NATIONAL CHARACTER VARYING.