在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.