分類: 0
原文出處
已格式化的sql並不比未格式化sql執行地更快。資料庫可能真的不太在意你是否把逗號放在每個欄位名稱的前面或後面。為幫助你更理智和成為一名高效的sql編寫者,我建議你遵循一些格式化的指導方針。在這篇文章裡,我將分享如何格式化sql語句來提高工作效率。我對生產力這樣定義,能夠從sql得到準確的結果,同時**容易理解,修改和除錯。我只會專注於select語句,它佔到我編寫sql的99%。格式化sql**是非常個性的選擇,我很清楚,不同的人將鍾愛他們自己的格式化規則。
雖然sql很容易,確保結果準確才是真正的挑戰,以下是許多可能的原因中的乙個,包括:
對我來說,格式化sql更多地是從sql獲得正確的結果,因為它有明確的sql,很容易跟蹤。我做的第一件事編寫獲取客戶總數的語句。這是個數字,我將在寫完整個語句後進行對比。
我寫的第一條語句是:
selectresult:count(distinct cust_id) as count_customers
from
customers
count_customers
「10″
這個查詢很重要,因為它遵循了 第一原則(外部鏈結) 。因為沒有sql連線,因此沒有依賴,我知道這是正確的客戶數量。我總是記下結果,因為我總是需要拿這個數字對比,在這篇文章是 10。
接下來我要做的就是新增必要的字段和表到這個查詢。我強調新增這個詞,因為根據我遵循的格式化規則,我可以注釋掉查詢的元素來得到和我應用第一原則時相同的結果。下面是我最終的格式化查詢,使用格式化查詢的方式。
下面是我推薦的格式化的sql,緊接後面是我進行的格式化選擇的理由。
select這將會在你的sql中得到證實。如果你不為參與查詢的每個字段使用 別名(外部鏈結) ,有時候在後期,具有相同名稱的字段新增到查詢中使用的某個表中。你的查詢和你的報表將出現乙個錯誤(發現重複的欄位名)。0 ,c.cust_post_code
,p.location
,count(distinct c.cust_id) number_customers
,sum(s.total_amount) as total_sales
from
customers c
join post_codes p on c.cust_post_code = p.post_code
join sales s on c.cust_id = s.cust_id
where
1=1and s.sales_date between '2015-01-01' and '2015-01-31'
--and s.order_id = 5
group by
c.cust_post_code
,p.location
當除錯/測試我的查詢時,這讓我能輕易進行字段注釋和取消注釋,不需要在查詢中修改任何其他行,以確保逗號在正確的地方。我看過一些文章,博主為了大事化小不得不改變另乙個查詢的一部分,以確保逗號是正確的,但是你如果花大部分時間編寫和測試 sql 語句,這是乙個大問題。你按這種方式將會更有效率。這個在 select 和 group by 查詢部分都工作地很好。
我在開發環境使用 select 0,同時傾向於進入生產環境之前刪除它。它允許我把逗號放在所有欄位前。如果沒有 0,我想注釋掉c.cust_post_code,它是第乙個字段,我就必須注釋掉第二個字段前面的逗號。我也會在 group by 子句做同樣的事情。0 可以消除這個額外的工作。
將join語句放在乙個新行的優勢包括:
在處理大量的字段時,列模式編輯非常方便。下面是我的第一次動畫gif展示,顯示你如何注釋掉所有非聚合字段。在實踐中我使用
列模式編輯(外部鏈結),不僅僅是注釋欄位還包括:
對我來說,像這樣格式化sql,意味著我不必編寫為了檢查資料做單獨的測試。通過注釋掉一些行,我能使用第一原則來測試資料的準確性。這可以提高我的效率,以及報表的準確性。
格式化 SQL 來提高效率
已格式化的sql並不比未格式化sql執行地更快。資料庫可能真的不太在意你是否把逗號放在每個欄位名稱的前面或後面。為幫助你更理智和成為一名高效的sql編寫者,我建議你遵循一些格式化的指導方針。在這篇文章裡,我將分享如何格式化sql語句來提高工作效率。我對生產力這樣定義,能夠從sql得到準確的結果,同時...
如何提高效率
如果問 你想不想使自己的收入加倍 我猜每個人的答案都是 yes 如果我繼續問 你相不相信現在你的收入會加倍 我想有一些人可能會沒把握,有一些人認為不太可能,我告訴各位 你們每個人的收入一定會加 倍 因為按照每年物價增長率及通貨膨脹的正常速度,20年後你的收入一定會加倍。但是如果你希望,提前在5年內 ...
Python 提高效率
最近師兄給了小任務,算乙個p值。任務詳情是這樣的 第一步,有基因集a,23個元素,基因集b,451個元素,共有23 451 9922個組合 當然你要考慮去重 看在ppi資料庫 145萬多行資料 中出現的組合總個數 觀察值 第二步,然後再以hg19中基因為背景基因集,放回隨機抽取23個基因構成基因集c...