本章节介绍keys()函数的用法。
描述:
为序表设置键
语法
T.keys(Ki,…)
备注:
设置T的键为Ki,…,参数空将删除键,使用T.create()时将同时复制键。
参数:
T |
序表 |
Ki |
键名 |
选项:
@t(…,KT) |
设置最后一个参数KT为时间键,其它键称为基本键 |
返回值:
设置键后的序表
示例:
|
A |
|
|
1 |
=demo.query("select EID,NAME,DEPT,SALARY,HIREDATE from EMPLOYEE order by EID asc,DEPT asc") |
|
|
2 |
=A1.keys(EID,DEPT) |
设置A1的键为EID,DEPT |
|
3 |
=A1(1).key() |
[1,R&D] |
|
4 |
=A1.keys() |
删除键 |
|
5 |
=A1(1).key() |
由于A1没设键,因此返回空 |
|
6 |
=A1.keys@t(EID,DEPT,HIREDATE) |
设置A1的基本键为EID,DEPT,时间键为HIREDATE |
|
7 |
=A1.create() |
T有键,则同时复制键 |
|
8 |
=A7.insert(0,1,"Jack","HR",3000,date("2022-03-09")) |
|
|
9 |
=A8(1).key() |
[1,HR],返回基础键 |
相关概念:
描述:
定义内表的键
语法:
T.keys(Ki,…)
备注:
为内表T定义键Ki,…,支持时间键。
参数:
Ki |
键名,可以有一个或多个,参数Ki,…为空时删掉内表所有键 |
T |
内表 |
选项:
@t(…,KT) |
设置最后一个参数KT为时间键,其它键称为基本键 |
返回值:
内表
示例:
|
A |
|
1 |
=demo.cursor("select EID,NAME,GENDER from EMPLOYEE where EID<10") |
返回取数游标 |
2 |
=A1.memory() |
返回内表 |
3 |
=A2.keys(EID,NAME) |
设置内表的键为EID、NAME |
4 |
=A3(1).key() |
查看内表第一条记录的键,返回结果: |
5 |
=A2.keys() |
删除内表的所有键 |
6 |
=A3(1).key() |
此时查看内表第一条记录的键,返回空 |
7 |
=demo.cursor("select * from employee").memory() |
返回内表 |
8 |
=A7.keys@t(EID,HIREDATE) |
设置内表的基本键为EID,时间键为HIREDATE |
描述:
对序表/内表设置主键的同时创建索引
语法:
T.keys(Ki,…;n)
备注:
对序表/内表T设置主键Ki,...的同时创建索引。若需创建哈希索引时,@i选项或者n参数至少有一个存在;需创建排号索引时,应省略参数n,@s选项和n参数同时存在时,忽略@s选项。
参数:
Ki |
键名,可以有一个或多个,参数Ki,…为空时删掉内表所有键 |
T |
序表/内表 |
n |
哈希表的大小,大于1的整数,缺省为表长 |
选项:
@i |
创建哈希索引 |
@s |
为排号键类型的主键创建排号索引 |
@m |
并行建立 |
@t |
有时间键 |
@n |
序号键 |
返回值:
序表/内表
示例:
|
A |
|
1 |
=demo.query("select EID,NAME,DEPT,SALARY from EMPLOYEE") |
|
2 |
=A1.keys(EID,DEPT;1) |
设置A1的主键为EID,DEPT,并且创建哈希索引,哈希表大小为1 |
3 |
=A1.keys@i(EID,DEPT) |
同A2 |
4 |
=A1.keys@i(EID,DEPT;1) |
同A2 |
5 |
=A1.keys@is(EID) |
设置A1的主键为EID,并创建排号索引 |
6 |
=A1.keys@is(EID;1) |
设置A1的主键为EID,此时忽略选项@s,创建哈希索引,哈希表大小为1 |
7 |
=A1.keys@im(EID,DEPT;1) |
并行建立索引 |
8 |
=demo.cursor("select * from employee").memory() |
返回内表 |
9 |
=A8.keys@t(HIREDATE) |
设置时间键为HIREDATE,并创建排号索引 |
10 |
=file("STUDENTS.txt").import@t().keys(SID) |
给序表设置主键为SID |
11 |
=file("SCORES.txt").import@t().keys@in(CLASS,NAME) |
给序表设置主键为CLASS、NAME,并根据序号键建立索引 |
12 |
=A10.switch(xh,A11) |
将序号键切换成A11表的指引记录 |