本章介绍delete()函数的多种用法。
描述:
删除序表中指定的记录
语法:
T.delete(k) |
删除第k条记录 |
T.delete(p) |
删除序号在p中的记录 |
T.delete(A) |
删除在A中的记录 |
备注:
删除序表T中指定的记录,删除的记录将始终保存在删除缓冲区中。删除记录时有索引则自动更新,并检查唯一性。
参数:
T |
序表 |
k |
正整数,表示要删除的记录在序表中的位置 |
p |
n 数列,定义需要删除的记录的位置 |
A |
序列,指定要删除的记录 |
选项:
@n |
返回删除的记录或排列 |
返回值:
删除记录后的序表T
示例:
|
A |
|
1 |
=demo.query("select * from EMPLOYEE") |
|
2 |
=A1.delete(1) |
删除第一条记录 |
3 |
=A1.delete([2,4,6]) |
删除第二、四、六条记录 |
4 |
=A1.select(EID>5) |
|
5 |
=A1.delete(A4) |
删除EID >5的记录 |
6 |
=A1.delete@n(1) |
返回删除的记录 |
注意:
判断A中的记录在T中是否存在,并不是依据字段名,字段值,而是记录的存储地址,因此,要删除指定记录的记录,一般都采用T.delete(T.select(……))函数取得需要删除的记录。
相关概念:
描述:
删除序列A中指定的成员
语法:
A.delete(k) |
删除第k个成员 |
A.delete(p) |
删除序号在p中的成员 |
备注:
删除序列A中指定的成员k或者序号在p中的成员。删除成员时有索引则自动更新索引,并检查其唯一性。
参数:
A |
序列 |
k |
正整数,表示要删除的成员在序列中的位置 |
p |
n数列,定义需要删除的成员的位置 |
选项:
@n |
返回删除的记录或排列 |
返回值:
序列
示例:
|
A |
|
1 |
=["a","c","d","e","f"] |
|
2 |
=A1.delete([2,4,5]) |
[a,d] |
3 |
=demo.query("select * from STUDENTS") |
|
4 |
=A3.delete@n(2) |
返回删除的排列 |
相关概念:
描述:
删除实表中的指定记录
语法:
T.delete(P)
备注:
根据主键删除实表T中包含排列P的主键的记录。如果实表T有索引,则自动更新索引。T为基表时,如果T有附表则在删除记录时同步删除附表中同维的记录。,
参数:
T |
实表 |
P |
和T同构的排列 |
选项:
@n |
返回删除的记录 |
示例:
|
A |
|
1 |
=file("D:\\emp3.ctx") |
|
2 |
=A1.create(#EID,NAME;EID) |
创建以EID为排号键,分段键的组表基表 |
3 |
=demo.cursor("select EID,NAME from employee where EID< 10") |
|
4 |
=A2.append(A3) |
在基表中追加数据 |
5 |
=A2.attach(table3,GENDER) |
给基表添加附表 |
6 |
=demo.cursor("select EID,GENDER from employee where EID< 10") |
|
7 |
=A5.append(A6) |
在附表中追加游标记录 |
8 |
=demo.query("select EID,GENDER from employee where EID =3 ") |
返回EID为3的序表记录 |
9 |
=A5.delete(A8) |
删除实表table3中EID为3的记录 |
10 |
=demo.query("select EID,NAME from employee where EID =2") |
返回EID为2的序表记录 |
11 |
=A2.delete@n(A10) |
返回删除的记录 |
描述:
删除内表中的指定记录
语法:
T.delete(P)
备注:
根据主键删除内表T中包含排列P的主键的记录,主键仍然会保持有序,如果内表有索引,将会自动更新索引。
参数:
T |
内表 |
P |
和T同构的排列 |
选项:
@n |
返回删除掉的记录 |
返回值:
内表
示例:
|
A |
|
1 |
=demo. cursor ("select EID,NAME,GENDER from employee where EID< 10") |
返回游标 |
2 |
=A1.memory() |
返回内表 |
3 |
=A2.keys(EID) |
|
4 |
=demo.query("select EID,NAME,GENDER from employee where EID =3 ") |
返回EID为3的序表记录 |
5 |
=A2.delete(A4) |
删除EID为3的记录 |
6 |
=demo.query("select EID,NAME,GENDER from employee where EID =5 ") |
返回EID为5的序表记录 |
7 |
=A2.delete@n(A6) |
返回删除的记录 |