delete()

阅读(1273) 标签: delete,

本章介绍delete()函数的多种用法。

T.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(……))函数取得需要删除的记录。

相关概念:

T.modify()

T.insert()

A.delete()

A.delete()

描述:

删除序列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时,从后往前数

相关概念:

A.insert()

A.modify()

T.delete()

T.delete(P)

描述:

删除实表中的指定记录

语法:

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()

此时查看基表中的数据,可以看到键值EID1的记录已被删除

9

=A4.cursor().fetch()

此时查看附表中的数据,可以看到同时删除掉了附表中同维的记录

 

T.delete(P)

描述:

删除虚表中的指定记录

语法:

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()