当前位置: 移动技术网 > IT编程>脚本编程>Python > ORM 查询练习

ORM 查询练习

2019年07月22日  | 移动技术网IT编程  | 我要评论

bj20最新消息,防360屏蔽,夏俊峰下葬

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');

准备

  • 查看各表

参考答案



如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网