SQL 查询、关联与统计
MySQL、SQLAlchemy 与数据库设计#Python全栈#第十四阶段#MySQL、SQLAlchemy 与数据库设计#SQL 查询、关联与统计约 696 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
SELECT、WHERE、ORDER BY 与 LIMIT 各控制什么?
追问 返回字段、筛选和结果顺序怎样明确?为什么没有 ORDER BY 的分页不能保证稳定顺序?
INNER JOIN 与 LEFT JOIN 有什么区别?
追问 查询所有用户及其练习记录时,关联条件放在 ON 或 WHERE 会怎样影响没有记录的用户?
一对多关联为什么可能让主表记录重复出现?
追问 题目关联多个标签后怎样按题目分页?DISTINCT、EXISTS 和先筛选主键各有什么取舍?
GROUP BY、HAVING 与聚合函数怎样配合?
追问 统计每位用户练习次数并筛选超过十次,行条件和分组条件分别放在哪里?
COUNT(*)、COUNT(字段) 与 COUNT(DISTINCT 字段) 有什么区别?
追问 NULL、重复值和 LEFT JOIN 怎样影响结果?为什么不能用计数方式不加分析地判断“有多少用户”?
IN、EXISTS 与子查询怎样表达关联筛选?
追问 NOT IN 的结果为什么可能受 NULL 影响?怎样明确业务含义,再结合计划选择写法?
如何查询每位用户最近一条练习记录?
追问 时间相同如何确定结果?分组取最大时间后关联与窗口函数各怎样实现,并避免返回重复行?
窗口函数与普通 GROUP BY 聚合有什么区别?
追问 ROW_NUMBER、RANK 和 DENSE_RANK 怎样处理并列?按分类取前几名时如何定义排序和边界?
怎样编写批量插入、条件更新与删除?
追问 缺少 WHERE、范围过大和重复执行会造成什么后果?怎样预先核对目标、使用事务并检查实际结果?
为什么 SQL 必须使用参数绑定,而不是字符串拼接?
追问 值参数、表名和排序字段能否用同一种绑定方式?动态标识符怎样通过受控映射处理?