20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

题外话
. MVT

20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

1. 今天延续讲讲数据库关系表 一对一

有了 userlist=false 就形成了一对一了
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

2. 多对多的关系

一般不会直接创建多对多,
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
先要在最上方创建库 Table
然后定义创建中间表
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
接下来,把两个表格单独创建一下
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
此时并未产生关系, 所以要继续定义关系。
通过backref 反转到另一个表,同时用secondary=teacher_classes 进行关联
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
append 添加了这两条数据
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
执行添加到数据库
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

也可以通过查询来验证下

3. 数据库排序

通过默认和desc排序,也可以通过如下 mapper 排序,
order_by:id 是升序。
order_by:-id 是降序。

20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
是跟索引相类似的,你看下方,从哪个开始的,想想。
offset 是指从第几个开始查

20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

注意, order_by 不许放在最前面,而offset 放前后,无所谓
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

切片
左闭右开,同样的哦!
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

4. 高级查询

20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

建个表格,来用
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

然后马上映射表格
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
添加数据:
随机年纪
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

分两组查询结果
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
一般groupby 和聚合函数组合一起使用:
func.count func.max。。。。。。
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
配合聚合函数查男女人数
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
配合聚合函数查年龄分组
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

having

20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
分组后,接上having 进一步过滤
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

送福利
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

之前的子查询语句
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
现在子查询我们怎么做?
用label 在sub中赋值,就可以进行sub.c.city sub.c.age 引用。
但是这种方法还不如上面的,哈哈
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询

复习下呗:

20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询
20201102 flask 中 :数据库 一对一 多对多、数据库排序、数据库查询