T.index(n)

阅读(514) 标签: 内表, hash索引表,

描述:

为内表的键建立索引表

语法:

T.index(n)

备注:

为内表T的键创建索引长度为n的索引表,n0或内表重置键时将清除索引表;n省略则自动选长度。如果需要多次根据键来查找数据,在建立了索引表之后可以提高效率。

建立索引时假定记录的主键唯一,否则出错。仅按基本键做HASH表,不同时间键的记录排进同一HASH位置

参数:

T

主键唯一的内表。

n

索引长度。

选项:

@m

并行建立。

@n

可用序号键建立索引。

@s

T的基本键是排号类型时建立成多层树状索引,忽略参数n

返回值:

内表

示例:

为内表的键建立索引:

 

A

 

1

=file("ei.ctx")

 

2

=A1.create@y(#EID,NAME,DEPT)

创建组表基表,EID为键。

3

=demo.cursor("select EID,NAME,DEPT from employee")

 

4

=A2.append@i(A3)

A3游标中的数据追加到组表中。

5

=A4.memory()

用组表的实表生成内表,内表继承实表的键。

6

=A5.index(10)

为内表的键建立长度为10的索引。

为内表建立多层树状索引:

 

A

 

1

=3.new(k(~:2):id,~*~:num)

创建序表。

2

=A1.keys(id)

设置序表的键为id

3

=A2.memory()

将序表转化为内表,继承序表的键:

4

=A3.index@s()

内表的键为排号类型,使用@s选项,为内表创建多层树状索引。

为内表建立序号索引

 

A

 

1

=to(100).new(~*2:c1,rand():c2)

创建序表:

2

=A1.memory()

用序表生成内表。

3

=A2.index@n()

使用@n选项,为内表的序号键建立索引,此时内表中只有序号键,没有基本键。

4

=A3.find(6)

查询内表中键值为6的记录,即序号键的键值为6的记录,返回结果如下: