使用QuerySet删除和查询数据表

文章目录

(一)删除数据

1、删除全部数据:all()与delete()

2、删除一行数据:get()与delete()

 3、删除多行数据:filter()与delete()

4、删除有外键的数据:delete()

(1)准备模型和表

(2)为index_personinfos准备测试数据

  (3)为index_vocation准备测试数据

(4)级联删除id=1的郑晓红

 (二)查询数据

1、给两张表准备查询数据

(1)给index_personinfo表准备数据

 (2)给index_vocation表准备数据

 2、查询全部数据:all()

(1)查询index_personinfo表全部记录

 (2)查询index_vocation表全部记录

3、查询前3条数据:all()[:3] 

(1)查询index_personinfos表前3条记录

4、以字典列表形式查询某个字段数据:values() - 投影运算


(一)删除数据

  • 删除数据有3种方式:删除数据表的全部数据、删除一行数据和删除多行数据.

1、删除全部数据:all()与delete()

  • 查看commodity_types表(13条记录)

  • 导出数据库脚本 - babies.sql

  • 在终端Shell模式下执行命令:Types.objects.all().delete(),删除全部记录

2、删除一行数据:get()与delete()

  • 在终端Shell模式下执行命令:Types.objects.get(id=1).delete()删除id为1的记录

 3、删除多行数据:filter()与delete()

  • 任务:删除全部“儿童用品” (满足条件)

  •  在终端Shell模式下执行命令:Types.objects.filter(firsts='儿童用品').delete()

  •  删除了1条记录,查看commodity_types表

4、删除有外键的数据:delete()

删除数据的过程中,如果删除的数据设有外键字段,就会同时删除外键关联的数据。

(1)准备模型和表

  • 在index模块的models.py中定义以下2个模型类 

 第22行定义了name为外键,关联的是PeronInfo对象,而且是级联删除。从模型 Vocation 得知,外键字段的参数 on_delete 用于设置数据删除模式,比如模型 Vocation

的外键字段name设为CASCADE模式,不同的删除模式会影响数据删除结果,说明如下:
PROTECT 模式:如果删除的数据设有外键字段并且关联其他数据表的数据,就提示数据删除失败。
SET_NULL模式:执行数据删除并把其他数据表的外键字段设为Null,外键字段必须将属性 Null 设为 True,否则提示异常。
SET_DEFAULT 模式:执行数据删除并把其他数据表的外键字段设为默认值。
SET 模式:执行数据删除并把其他数据表的外键字段关联其他数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值