ORM 查询练习
程序员文章站
2022-03-26 12:21:17
ORM 查询练习 [TOC] 表结构 练习题 测试数据 python Records of app01_author INSERT INTO VALUES ('1', '金老板', '18', '15512351234'); INSERT INTO VALUES ('2', '小哪吒', '20', ......
目录
orm 查询练习
表结构
# 书 class book(models.model): title = models.charfield(max_length=32) publish_date = models.datefield(auto_now_add=true) price = models.decimalfield(max_digits=5, decimal_places=2) memo = models.textfield(null=true) # 创建外键,关联publish publisher = models.foreignkey(to="publisher") # 创建多对多关联author author = models.manytomanyfield(to="author") def __str__(self): return "<book object: {} {}>".format(self.id, self.title) # 出版社 class publisher(models.model): name = models.charfield(max_length=32) city = models.charfield(max_length=32) def __str__(self): return "<publisher object: {} {}>".format(self.id, self.name) # 作者 class author(models.model): name = models.charfield(max_length=32) age = models.integerfield() phone = models.charfield(max_length=11) def __str__(self): return "<author object: {} {}>".format(self.id, self.name)
练习题
""" 查找所有书名里包含金老板的书 查找出版日期是2018年的书 查找出版日期是2017年的书名 查找价格大于10元的书 查找价格大于10元的书名和价格 查找memo字段是空的书 查找在北京的出版社 查找名字以沙河开头的出版社 查找“沙河出版社”出版的所有书籍 查找每个出版社出版价格最高的书籍价格 查找每个出版社的名字以及出的书籍数量 查找作者名字里面带“小”字的作者 查找年龄大于30岁的作者 查找手机号是155开头的作者 查找手机号是155开头的作者的姓名和年龄 查找每个作者写的价格最高的书籍价格 查找每个作者的姓名以及出的书籍数量 查找书名是“跟金老板学开车”的书的出版社 查找书名是“跟金老板学开车”的书的出版社所在的城市 查找书名是“跟金老板学开车”的书的出版社的名称 查找书名是“跟金老板学开车”的书的出版社出版的其他书籍的名字和价格 查找书名是“跟金老板学开车”的书的所有作者 查找书名是“跟金老板学开车”的书的作者的年龄 查找书名是“跟金老板学开车”的书的作者的手机号码 查找书名是“跟金老板学开车”的书的作者们的姓名以及出版的所有书籍名称和价钱 """
测试数据
-- ---------------------------- -- records of app01_author -- ---------------------------- insert into `app01_author` values ('1', '金老板', '18', '15512351234'); insert into `app01_author` values ('2', '小哪吒', '20', '15312341234'); insert into `app01_author` values ('3', 'alex', '73', '15512341234'); -- ---------------------------- -- records of app01_publisher -- ---------------------------- insert into `app01_publisher` values ('1', '沙河出版社', '北京'); insert into `app01_publisher` values ('2', '西二旗出版社', '北京'); insert into `app01_publisher` values ('3', '张江出版社', '上海'); insert into `app01_publisher` values ('4', '沙河出版社', '上海'); -- ---------------------------- -- records of app01_book -- ---------------------------- insert into `app01_book` values ('1', '跟金老板学开车', '2018-08-03', '12.90', null, '1'); insert into `app01_book` values ('2', '跟金老板学开潜艇', '2017-08-10', '9.99', null, '1'); insert into `app01_book` values ('3', '跟肖帮主学思想', '2018-09-03', '39.99', null, '2'); insert into `app01_book` values ('4', '跟egon学喊麦', '2018-06-12', '0.99', null, '4'); -- ---------------------------- -- records of app01_book_author -- ---------------------------- insert into `app01_book_author` values ('3', '1', '1'); insert into `app01_book_author` values ('4', '1', '2'); insert into `app01_book_author` values ('5', '2', '1'); insert into `app01_book_author` values ('2', '2', '2'); insert into `app01_book_author` values ('6', '3', '3'); insert into `app01_book_author` values ('7', '4', '3');
准备
- ①创建django项目 ②创建名为app01的app方便插入数据
- ③配置settings.py 数据库,注册app等 ④插入测试数据
- ⑥创建写orm语句的py文件 ⑦写orm语句完成练习题
- 不会创建注册app点这里
- 不会配置settings文件点这里
- 不会导入django环境看这里
查看各表