T.index()

阅读(773) 标签: 序表, 索引表,

描述:

为序表的键建立索引表

语法:

T.index(n)

备注:

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

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

参数:

T

有键的序表。

n

索引长度。

选项:

@s

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

@m

并行建立。

@n

为序表建立序号索引;序号索引用于外键序号化,要求事实表的外键值对应维表记录的序号,使用时序号键可省略;使用该选项时将忽略参数n 该选项不适用于序表中有时间键的情况。

返回值:

序表

示例:

 

A

 

1

=demo.query("select EID,NAME,SALARY from EMPLOYEE where EID<4")

 

2

=A1.keys(EID)

设置A1的键为EID

3

=A1.index(10)

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

4

=A1.index@m(100)

并行建立索引表。

建立多树状索引:

 

A

 

1

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

创建序表,其中id为排号类型。

2

=A1.keys(id)

设置A1的键为id

 

3

=A2.index@s()

A1的基本键为排号,使用@s选项,建立多层树状索引。

建立序号索引:

 

A

 

1

=connect("demo").query("SELECT * FROM CITIES")

返回序表:

2

=connect("demo").query("SELECT * FROM STATECAPITAL").keys(STATEID)

返回序表,并设置序表的键为EID

3

=A2.index@n()

A2表建立序号索引。

4

=A1.switch(STATEID,A3)

CITIES表作为事实表,STATECAPITAL作为维表,将CITIES表中的STATEID键值切换为STATECAPITAL的指引记录,计算过程中会使用外键STATEID的索引表,此时表达式中可以省略序号键STATEID,等同于A1.switch(STATEID,A3:#)

 

相关概念:

r.key()