MySQL / Navicat

Navicat

时间

  • create_time 创建时间

在这里插入图片描述

  • update_time 更新时间
    在这里插入图片描述

默认值

logic_delete 逻辑删除

  • 1(true)逻辑删除
  • 0(false)未删除在这里插入图片描述

在这里插入图片描述

MySQL

having

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

where 和having之后都是筛选条件,但是有区别的:
1.where在group by前, having在group by 之后
2.聚合函数(avg、sum、max、min、count),不能作为条件放在where之后,但可以放在having之后

三表联查

user
在这里插入图片描述
role

在这里插入图片描述
user_role 两张表之间的连接表

在这里插入图片描述

查出用户为学生的所有信息

技巧:from处写两张表之间的连接表,便于与两表操作

SELECT u.*
        FROM user_role ur
                 LEFT JOIN role r ON r.id = ur.role_id
                 LEFT JOIN user u ON u.id = ur.user_id
        WHERE ur.role_id = 4

在这里插入图片描述
拆分

  • 1.先连接 role 和 user_role
SELECT *
        FROM user_role ur
                 LEFT JOIN role r ON r.id = ur.role_id

下表数据全部存入 user_role(可以把它看作为中间表)
在这里插入图片描述

  • 2.再连接 user_role 和 user
SELECT *
        FROM user_role ur
                 LEFT JOIN role r ON r.id = ur.role_id
                 LEFT JOIN user u ON u.id = ur.user_id

下表数据全部存入 user_role(可以把它看作为中间表)

在这里插入图片描述

  • 3.最后加上where条件
SELECT  *
        FROM user_role ur
                 LEFT JOIN role r ON r.id = ur.role_id
                 LEFT JOIN user u ON u.id = ur.user_id
        WHERE ur.role_id = 4

下表数据全部存入 user_role(可以把它看作为中间表)
在这里插入图片描述

  • 4.取出user表字段 SELECT u*

猜你喜欢

转载自blog.csdn.net/Jruo911/article/details/119699842