SQL
害你加班的BUG都是我写的
热爱编程
展开
-
SQL查询某条数据是否存在,不用count(*)
// SQLSELECT count(*) FROM table WHERE a = 1 AND b = 2// JAVAint nums = xxDao.countXxxxByXxx(params);if ( nums > 0 ) { //当存在时,执行这里的代码} else { //当不存在时,执行这里的代码}这是一条经典的错误查询,因为在没有索引的情况下它会遍历整个数据库。但是在日常业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。优化方案/原创 2020-08-28 11:28:35 · 1029 阅读 · 0 评论 -
MySQL常见面试概念理解
1. MySQL有哪些引擎?其实有很多引擎,但是我们平常就知道InnoDB和MyISAM就足够了1.1 InnoDB和MyISAM的区别InnoDB在主键上建聚簇索引:将主键组织到一棵B+树中,而行数据就储存在叶子节点上。在非主键上建辅助索引:第一步在辅助索引B+树中检索属性值,到达其叶子节点获取对应的主键;第二步使用主键在主索引B+树种再执行一次B+树检索操作(回表),最终到达叶子节点即...原创 2020-05-02 19:49:02 · 413 阅读 · 0 评论 -
SQL:按年龄,性别分组
今天碰到一个面试题,记录一下:现有数据表如下,使用SQL,统计出10~20岁,20~30岁两个分组中男:女人数?请写出对应SQL语句思路考察的是sql-case和group by语句的应用select casewhen age BETWEEN 10 and 20 then "range(10~20)"when age BETWEEN 21 and 30 then "range(20...原创 2020-04-14 16:50:09 · 4597 阅读 · 0 评论