欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么通過(guò)格式良好的SQL提高效率和準(zhǔn)確性

這篇文章主要為大家展示了“怎么通過(guò)格式良好的SQL提高效率和準(zhǔn)確性”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“怎么通過(guò)格式良好的SQL提高效率和準(zhǔn)確性”這篇文章吧。

創(chuàng)新互聯(lián)主要從事網(wǎng)頁(yè)設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、成都響應(yīng)式網(wǎng)站建設(shè)公司、程序開發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、小程序開發(fā)等,憑借多年來(lái)在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營(yíng)銷、管理等多方位專業(yè)化運(yùn)作于一體。

背景

格式良好的SQL并不會(huì)比亂七八糟的SQL運(yùn)行效果更好。數(shù)據(jù)庫(kù)其實(shí)不怎么關(guān)心SQL語(yǔ)句中你把逗號(hào)放到了字段名的前面還是后面。為了你自己思路清楚,應(yīng)該做一個(gè)有效率的SQL編寫者,我建議你遵守以下這些格式規(guī)則。在本文中我將分享如何通過(guò)格式良好的SQL語(yǔ)句提升生產(chǎn)率。我定義的效率指的是能從SQL 輸出準(zhǔn)確的結(jié)果,并且代碼清晰易于理解、修改和調(diào)試。我只列出了“SELECT”語(yǔ)句,因?yàn)槲覍懙腟QL語(yǔ)句99%都是查詢語(yǔ)句。格式化SQL代碼是非常個(gè)性化的事,我也很清楚因人而異,開發(fā)者都認(rèn)為自己的格式化規(guī)則是最合理的。

樣例問(wèn)題

下面是一個(gè)典型的SQL應(yīng)用場(chǎng)景,業(yè)務(wù)報(bào)表的數(shù)據(jù)來(lái)自三張表,客戶表、銷售表和地域表?;?015年一月份的數(shù)據(jù),該報(bào)表需要展示在每個(gè)行政區(qū)內(nèi)的客戶總數(shù)和銷量總數(shù)。該需求通過(guò)一個(gè)簡(jiǎn)單的SQL語(yǔ)句就可以實(shí)現(xiàn),需要關(guān)聯(lián)查詢?nèi)龔埍怼?/p>

數(shù)據(jù)可能出現(xiàn)的問(wèn)題

雖然SQL很簡(jiǎn)單,但保證你的結(jié)果正確仍然是真正的關(guān)鍵,因?yàn)橛邢旅嬉恍┰蚩赡軐?dǎo)致錯(cuò)誤:

  • 數(shù)據(jù)可能來(lái)自不同的數(shù)據(jù)源。也就是說(shuō)你不能保證這幾個(gè)表之間的完整性。具體舉例來(lái)說(shuō),你不能假定客戶表中所有的郵政編碼都是有效的郵政編碼,并且一定在地域表中存在。

  • 錄入客戶表數(shù)據(jù)的應(yīng)用可能捕獲到未經(jīng)驗(yàn)證的地點(diǎn)數(shù)據(jù),可能會(huì)包括錯(cuò)誤的郵政編碼。

  • 郵政編碼表可能不是完整的。新發(fā)布的郵政編碼可能沒(méi)有在發(fā)布后及時(shí)導(dǎo)入到表中。

怎么通過(guò)格式良好的SQL提高效率和準(zhǔn)確性

怎么通過(guò)格式良好的SQL提高效率和準(zhǔn)確性

***原則

對(duì)我來(lái)說(shuō),相比于編寫清晰易讀的SQL,從SQL得到正確的結(jié)果才是***要?jiǎng)?wù)。我要做的***件事就是編寫下面的SQL語(yǔ)句來(lái)獲取客戶總數(shù)。在我寫完整個(gè)語(yǔ)句之后我會(huì)再調(diào)整它。

我寫的***個(gè)語(yǔ)句是這樣的:

SELECTCOUNT(DISTINCT cust_id) as count_customersFROMcustomers  Result:  count_customers  “10”

這個(gè)查詢很重要,因?yàn)樗o緊圍繞***原則。因?yàn)闆](méi)有SQL管理查詢,也就沒(méi)有依賴,我知道這就是客戶數(shù)量的正確結(jié)果。我把這個(gè)結(jié)果記下來(lái),因?yàn)槲铱傂枰眠@個(gè)數(shù)字來(lái)衡量后面的SQL(是否正確),在本文后面也會(huì)多次提到。

下一步要做的事就是添加必要的字段和表完成查詢。我特意把“添加”這個(gè)詞高亮標(biāo)注出來(lái),因?yàn)楦鶕?jù)我的規(guī)則,我會(huì)在應(yīng)用***原則時(shí)把能獲取相同結(jié)果的查詢注釋掉。下面就是我最終格式化的查詢語(yǔ)句。

格式化SQL

下面就是根據(jù)我的格式化思路推薦的格式化SQL。

SELECT  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=1  AND s.sales_date BETWEEN ‘2015-01-01’ AND ‘2015-01-31’  —AND s.order_id = 5  GROUP BY  c.cust_post_code  ,p.location

總是使用表別名

時(shí)間會(huì)證明這么做是有必要的。如果你沒(méi)有對(duì)SQL語(yǔ)句中用到的每個(gè)字段使用別名,在將來(lái)某個(gè)時(shí)候可能會(huì)給這個(gè)查詢語(yǔ)句添加進(jìn)來(lái)別的同名字段。到那時(shí)候你的查詢乃至報(bào)表就會(huì)產(chǎn)生錯(cuò)誤(出現(xiàn)了重名字段名)。

逗號(hào)放到字段之前

在調(diào)試或者測(cè)試我的查詢語(yǔ)句時(shí),這么做可以方便地注釋掉某個(gè)字段,而不需要修改其它行,所有的逗號(hào)都沒(méi)有缺少或多余。不這么做的話你可能總要調(diào)整逗號(hào)才能保證語(yǔ)句正確。如果你經(jīng)常要調(diào)試語(yǔ)句,這么做會(huì)帶來(lái)極大方便,效率會(huì)更高。這個(gè)做法對(duì)“SELECT”部分和“GROUP BY”子句部分同樣適用。

在開發(fā)時(shí)我使用“SELECT 0”作為語(yǔ)句的開始,遷移到正式環(huán)境時(shí)它很容易刪除掉。這樣我們就可以在后面所有字段前面都寫都好了。沒(méi)有這個(gè)“0”的話,如果我想注釋掉***個(gè)字段(本例中是“c.cust_post_code”),我就必須處理后面的逗號(hào)問(wèn)題。我必須臨時(shí)注釋掉它,將來(lái)還要加回來(lái)。在“GROUP BY”語(yǔ)句中也是一樣的。這個(gè)“0”是額外加的。

把“JOIN”放到獨(dú)立行

把“JOIN”語(yǔ)句放到獨(dú)立行有以下好處:

這么做很容易看到本查詢語(yǔ)句涉及的所有表,只需要看滾動(dòng)“JOIN”語(yǔ)句就可以了。

使用“JOIN”相比于在“WHERE”子句中列出所有表和表達(dá)式關(guān)系,可以把所有邏輯關(guān)系都放到一個(gè)地方。我們不可能總是吧“JOIN”語(yǔ)句放到一行中,但是至少應(yīng)該放到一起。

這么做的話要注釋掉“JOIN”語(yǔ)句也是相對(duì)容易的。這在調(diào)試時(shí)非常有用,你可能需要知道是否是“JOIN”引起了數(shù)據(jù)問(wèn)題。

列模式編輯

在處理大量字段的情況時(shí),列模式編輯非常方便。下面是我曾經(jīng)做過(guò)的***個(gè)動(dòng)態(tài)GIF展示,你可以注釋掉所有非聚集字段。我使用了列模式編輯,而不僅僅是注釋掉字段:

創(chuàng)建全部索引

在使用字段較多的UNION語(yǔ)句時(shí):

注釋掉“GROUP BY”子句的字段清單

怎么通過(guò)格式良好的SQL提高效率和準(zhǔn)確性

測(cè)試查詢結(jié)果

我必須使用外連接“OUTER”列出所有客戶,因?yàn)椴皇撬锌蛻舻泥]政編碼都在地域表里有相應(yīng)的郵政編碼。我可以通過(guò)包含和排除不同字段和表反復(fù)操作來(lái)確保我查詢的結(jié)果與最開始那個(gè)查詢(單獨(dú)查詢客戶的那個(gè)語(yǔ)句)結(jié)果相同,這其實(shí)是對(duì)***原則的遵守。

SELECT0,c.cust_post_code—,p.location,COUNT(DISTINCT c.cust_id) number_customers,SUM(s.total_amount) as total_salesFROMcustomers c—LEFT OUTER JOIN post_codes p ON c.cust_post_code = p.post_codeJOIN sales s ON c.cust_id = s.cust_idWHERE1=1AND s.sales_date BETWEEN ‘2015-01-01’ AND ‘2015-01-31’—AND c.cust_post_code = 2000—AND p.post_code = 200GROUP BYc.cust_post_code—,p.location

像這樣的SQL對(duì)我來(lái)說(shuō)意味著我必須寫?yīng)毩⒌臏y(cè)試來(lái)檢查數(shù)據(jù)。通過(guò)注釋掉的那幾行語(yǔ)句我可以使用***原則驗(yàn)證我查詢數(shù)據(jù)的準(zhǔn)確性。這么做提高了我的效率和報(bào)表的準(zhǔn)確性。

以上是“怎么通過(guò)格式良好的SQL提高效率和準(zhǔn)確性”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站名稱:怎么通過(guò)格式良好的SQL提高效率和準(zhǔn)確性
URL地址:http://chinadenli.net/article4/jsgoie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、微信小程序、定制開發(fā)、動(dòng)態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
最近中文字幕高清中文字幕无| 欧美成人精品一区二区久久| 国内自拍偷拍福利视频| 欧美日韩校园春色激情偷拍| 青青草草免费在线视频| 午夜精品在线观看视频午夜| 欧美性高清一区二区三区视频 | 丰满人妻一二三区av| 中国黄色色片色哟哟哟哟哟哟| 久久青青草原中文字幕| 久草精品视频精品视频精品| 国产激情一区二区三区不卡| 国产日韩精品激情在线观看| 欧美精品久久一二三区| 久久三级国外久久久三级| 91精品国产综合久久精品 | 国产精品免费福利在线| 国产又粗又猛又爽又黄的文字| 91麻豆精品欧美一区| 欧美日韩综合在线第一页| 东京热男人的天堂社区| 国产原创激情一区二区三区| 国产精品午夜福利在线观看| 香蕉尹人视频在线精品| 福利新区一区二区人口| 女厕偷窥一区二区三区在线| 亚洲国产精品久久综合网| 国产女优视频一区二区| 超碰在线免费公开中国黄片| 国产又色又爽又黄的精品视频| 美女露小粉嫩91精品久久久| 99久久人妻精品免费一区| 久久综合狠狠综合久久综合| 亚洲夫妻性生活免费视频| 亚洲一区二区三区av高清| 亚洲女同一区二区另类| 国产精品免费精品一区二区| 日韩夫妻午夜性生活视频| 国产精品午夜福利免费阅读| 国产精品成人免费精品自在线观看| 日本一品道在线免费观看|