一個(gè)不錯(cuò)的 SQL 編碼風(fēng)格的指南
SQL語(yǔ)句的編寫對(duì)于我們后端開發(fā)者而言是一個(gè)必備的技巧,在日常工作中,SQL語(yǔ)言編寫的質(zhì)量不僅僅會(huì)影響到團(tuán)隊(duì)的合作效率與項(xiàng)目的可維護(hù)性,還直接關(guān)系到數(shù)據(jù)庫(kù)的性能優(yōu)化與數(shù)據(jù)安全。今天大姚給大家分享一個(gè)不錯(cuò)的 SQL 編碼風(fēng)格的指南,希望可以幫助到有需要的同學(xué)。
項(xiàng)目介紹
sqlstyle.guide是一個(gè)關(guān)于SQL編碼風(fēng)格的指南,旨在通過(guò)提供一套明確的規(guī)則和標(biāo)準(zhǔn),幫助開發(fā)者編寫更加清晰、一致和易于維護(hù)的SQL代碼。該指南提供了多語(yǔ)言版本描述,其中包括:簡(jiǎn)體中文、英文、法語(yǔ)、德語(yǔ)、韓語(yǔ)等多種語(yǔ)言。
SQL和數(shù)據(jù)庫(kù)相關(guān)
關(guān)系型數(shù)據(jù)庫(kù)(SQL)庫(kù)指的是使用關(guān)系模型(二維表格模型)來(lái)組織數(shù)據(jù)的數(shù)據(jù)庫(kù),是一種使用結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language,簡(jiǎn)稱SQL)進(jìn)行數(shù)據(jù)管理和操作的數(shù)據(jù)庫(kù)類型。它采用表格的形式來(lái)組織和存儲(chǔ)數(shù)據(jù),通過(guò)定義表之間的關(guān)系來(lái)建立數(shù)據(jù)之間的聯(lián)系。
https://github.com/YSGStudyHards/DotNetGuide
應(yīng)該做的事情
- 使用一致的、描述性的名稱。
- 合理地使用空格和縮進(jìn)來(lái)增強(qiáng)可讀性。
- 存儲(chǔ)符合 ISO-8601 標(biāo)準(zhǔn)的日期格式(YYYY-MM-DDTHH:MM:SS.SSSSS)。
- 為了提高可移植性,最好僅使用標(biāo)準(zhǔn) SQL 函數(shù)而不是特定供應(yīng)商的函數(shù)。
- 保證代碼簡(jiǎn)潔明了、沒有多余的 SQL —— 比如非必要的引號(hào)或括號(hào),或者可以推導(dǎo)出的 WHERE 子句。
- 必要時(shí)在 SQL 代碼中加入注釋。優(yōu)先使用 C 語(yǔ)言式的以 /* 開始以 */ 結(jié)束的塊注釋,或使用以 -- 開始的行注釋,并在末尾換行。
應(yīng)避免的事情
- 駝峰命名法 —— 它不適合快速掃讀。
- 描述性的前綴或匈牙利命名法比如 sp_ 或 tbl。
- 復(fù)數(shù)形式 —— 盡量使用更自然的集合術(shù)語(yǔ)。比如,用“staff”替代“employees”,或用“people”替代“individuals”。
- 被引號(hào)包裹的標(biāo)識(shí)符(quoted identifier)—— 如果你必須使用這樣的標(biāo)識(shí)符,最好堅(jiān)持用 SQL92 的雙引號(hào)來(lái)提高可移植性(你可能需要配置你的 SQL 服務(wù)器以支持此特性,具體取決于供應(yīng)商)。
- 面向?qū)ο缶幊痰脑瓌t不該應(yīng)用到 SQL 或數(shù)據(jù)庫(kù)結(jié)構(gòu)上。
更多技巧閱讀
SQL樣式指南中文講解:https://www.sqlstyle.guide/zh
GitHub開源地址:https://github.com/treffynnon/sqlstyle.guide