我开发日常使用的数据库是MySQL,用起来真的很方便也省了不少事。但同样也会养成一些相对不是很好的习惯。手动捂脸
目前再使用postgresql进行后台开发。这个数据库在sql优化上就没有MySQL的sql处理优化的好。
下面的语句在MySQL中指定不回报错,但是在postgresql中就会发生聚合函数异常。
ps:建表就不打了。
例1:
select a.id, a.name, a.sex from tablename a group by sex;
究其原因就是:MySQL 在sql的预处理过程中对结果集进行了聚合的判断。而postgresql没有对结果集进行聚合的判断。所以需要自行添加聚合函数。要写成的sql语句是如下
例2:
select min(a.id), min(a.name), a.sex from tablename a group by sex;
目前初步测试默认调用的是min函数。
总结:我个人以后写的时候要尽量让自己将聚合函数补全。规范些。
2018-10-10
今天说一个,查询的时候使用 select 具体字段比 select * 好的一点。
当你的业务逻辑在其它地方发生变化,需要在表中新增字段。这时候如果使用select * 就会让你的结果出现原本在之前已有逻辑中不应该返回的信息。破坏了原有结果就算是对实际业务没有影响,但是这是一个很不好的习惯。