TinyDB - 删除数据
如果您需要从 TinyDB 数据库中永久删除一组特定数据,可以使用 remove() 方法来实现。 与检索和更新数据一样,您首先需要创建 Query 类的实例来删除数据。 您可以使用以下命令来实现此目的 −
from tinydb import Query Student = Query()
这里,Student是我们数据库的名称。
remove() 方法
这是remove()方法的语法 −
db.remove( Query() field regex )
remove() 方法接受可选条件以及可选的文档 ID 列表。
student 学生数据库
我们将使用以下student数据库作为本章的示例。
[ { "roll_number":1, "st_name":"elen", "mark":250, "subject":"TinyDB", "address":"delhi" }, { "roll_number":2, "st_name":"Ram", "mark":[ 250, 280 ], "subject":[ "TinyDB", "MySQL" ], "address":"delhi" }, { "roll_number":3, "st_name":"kevin", "mark":[ 180, 200 ], "subject":[ "oracle", "sql" ], "address":"keral" }, { "roll_number":4, "st_name":"lakan", "mark":200, "subject":"MySQL", "address":"mumbai" }, { "roll_number":5, "st_name":"karan", "mark":275, "subject":"TinyDB", "address":"benglore" } ]
示例:删除单行数据
让我们通过一个例子来了解一下remove()方法。
from tinydb import TinyDB, Query student = Query() db.remove(student.roll_number == 5)
上面的查询将删除学生学号为5的数据。它将返回被删除对象的ID −
[5]
现在,我们可以使用 all() 方法来查看更新后的数据库。
db.all()
它将显示更新数据库中的数据 −
[ { "roll_number":1, "st_name":"Adam", "mark":250, "subject":"TinyDB", "address":"delhi" }, { "roll_number":2, "st_name":"Ram", "mark":[ 250, 280 ], "subject":[ "TinyDB", "MySQL" ], "address":"delhi" }, { "roll_number":3, "st_name":"kevin", "mark":[ 180, 200 ], "subject":[ "oracle", "sql" ], "address":"keral" }, { "roll_number":4, "st_name":"lakan", "mark":200, "subject":"MySQL", "address":"mumbai" } ]
示例:删除多行数据
如果要一次删除多行,可以使用remove()方法,如下 −
from tinydb import TinyDB, Query student = Query() db.remove(student.roll_number > 2)
它将返回已删除对象的 ID:
[3,4]
使用 all() 方法查看更新的数据库。
db.all()
它将显示更新数据库中的数据 −
[ { "roll_number":1, "st_name":"Adam", "mark":250, "subject":"TinyDB", "address":"delhi" }, { "roll_number":2, "st_name":"Ram", "mark":[ 250, 280 ], "subject":[ "TinyDB", "MySQL" ], "address":"delhi" } ]
示例:删除整个数据
如果要删除数据库中的所有数据,可以使用truncate()方法,如下所示 −
db.truncate()
接下来,使用 all() 方法查看更新后的数据库。
db.all()
它将显示一个空数据库作为输出−
[]