本章介绍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中的成员,p成员小于0时从后开始数 |
备注:
删除序列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) |
返回删除的排列 |
|||
|
5 |
=["a","c","d","e","f"].delete([3,-5]) |
返回结果:[c,e,f],参数中的成员小于0时,从后往前数 |
||
相关概念:
描述:
删除实表中的指定记录
语法:
T.delete(P)
备注:
根据主键删除实表T中包含排列P的主键的记录,主键需为升序。T为基表时,如果T有附表则在删除记录时同步删除附表中同维的记录。
参数:
T |
实表 |
P |
和T同构的排列 |
选项:
@n |
返回P中删除的记录 |
示例:
|
A |
|
1 |
=file("emp.ctx") |
已存在的组表文件 |
2 |
=A1.open() |
打开组表的基表 |
3 |
=A2.cursor().fetch() |
查看基表中的数据 |
4 |
=A2.attach(table3) |
返回基表的附表table3 |
5 |
=A4.cursor().fetch() |
查看附表中的数据 |
6 |
=create(EID,NAME).record([1,"aaa",21,"bbb"]) |
返回序表 |
7 |
=A2.delete@n(A6) |
根据主键删除基表中包含序表的主键的记录。使用@n选项,返回A6中删除的记录 |
8 |
=A2.cursor().fetch() |
此时查看基表中的数据,可以看到键值EID为1的记录已被删除 |
9 |
=A4.cursor().fetch() |
此时查看附表中的数据,可以看到同时删除掉了附表中同维的记录 |
描述:
删除虚表中的指定记录
语法:
T.delete(P)
备注:
根据主键删除虚表T中包含排列P的主键的记录。
参数:
T |
虚表 |
P |
和T同构的排列 |
选项:
@n |
返回删除的记录 |
示例:
|
A |
|
1 |
=create(file).record(["D:/file/pseudo/Employee.ctx"])
|
|
2 |
=pseudo(A1)
|
生成组表对象 |
3 |
=create(Dept,AvgSalary).record(["HR",7000,"CSD",6018.04]) |
返回序表 |
4 |
=A2.delete@n(A3) |
按A3的键值删除A2中的虚表记录,返回删除的记录 |
5 |
=A4.import() |
|