我開發日常使用的資料庫是mysql,用起來真的很方便也省了不少事。但同樣也會養成一些相對不是很好的習慣。手動捂臉
目前再使用postgresql進行後台開發。這個資料庫在sql優化上就沒有mysql的sql處理優化的好。
下面的語句在mysql中指定不回報錯,但是在postgresql中就會發生聚合函式異常。
ps:建表就不打了。
例1:select a.id, a.name, a.*** from tablename a group by ***;
究其原因就是:mysql 在sql的預處理過程中對結果集進行了聚合的判斷。而postgresql沒有對結果集進行聚合的判斷。所以需要自行新增聚合函式。要寫成的sql語句是如下
例2:select min(a.id), min(a.name), a.*** from tablename a group by ***;
目前初步測試預設呼叫的是min函式。
總結:我個人以後寫的時候要盡量讓自己將聚合函式補全。規範些。
2018-10-10
今天說乙個,查詢的時候使用 select 具體欄位比 select * 好的一點。
當你的業務邏輯在其它地方發生變化,需要在表中新增字段。這時候如果使用select * 就會讓你的結果出現原本在之前已有邏輯中不應該返回的資訊。破壞了原有結果就算是對實際業務沒有影響,但是這是乙個很不好的習慣。
資料庫小知識
1 判斷某錶是否存在某欄位,不存在返回 0,存在返回1 select count 1 from syscolumns where id object id 資料庫表名 and name 欄位名 2 查詢某錶某列中的最大值 select max fieldname fromtablename 3 判斷...
資料庫小技巧
1.返回第乙個非空數值 select coalesce null,null,null,w3schools.com null,example.com 返回 w3schools.com select coalesce null,1,2,w3schools.com 返回 1 應用 將乙個欄位中空值全部替換...
資料庫小操作
insert 表名 欄位名,t欄位名,欄位名 values 增加內容 增加內容 增加內容 增加內容 小數 如成績不用引號 字元用引號 insert stu name,tel,cj values admin 1232132 34.5 update 表名 set 需要更改的欄位名 成績 67.5 whe...