今天在公司上班時,透過視線看著剛來公司的年輕小明寫SQL,他的座位剛好在我的斜前方,所以筆者
的位置可以很清楚地看見他整個螢幕畫面文字。此時他正在寫一段SQL,這SQL 裡的 TABLE 有20個欄位(column)只見他把這20幾個欄位分成上下2列,橫著把Columns 一個一個列出來。從這佈局動作,我就知道他是剛寫SQL程式菜鳥。
大家都知道,SQL Columns 佈局寫法,簡單說就分橫式和直式2種寫法。
先說明一下,所謂SQL 橫式和直式寫法差別,請看以下範例:
SELECT Column1,Column2,Column3
From Table1
Where Column1 = Something
SELECT Column1
,Column2
,Column3
From Table1
Where Column1 = Something
從以上的範例就可看到二者差別就在Column (欄) 是往右邊發展還是往下發展
Long Long Time Ago. 記得筆者是剛學SQL 程式的菜鳥,那時還沒網際網路,要學程式語言或SQL就是買書來看。那時SQL 書籍大部份教學範例都是橫式的(當然也有部份是直式的),所以,我那時寫的SQL順里成章也是橫式的,用此方式寫SQL字串最大的優點是雙引號會用的比較少(前後只要2個)。
出了社會寫過上千支SQL,發覺最困難不是寫SQL ,而是找出SQL裡的錯誤,要能快速找出問題所在,並給予修正。但橫式寫法裡Table Column 一堆擠在一起,有錯誤要一個一個刪除(或暫時移除)除錯非常麻煩且耗時,但那時還沒有知識要改成直式寫法(現在有網路真的太方便了)。這情形直到筆者換工作後接手維護新公司的系統程式後,看到程式裡面前輩SQL 直式寫法才恍然大悟,我弄錯方法了。
從此,我程式中的SQL 字串就改為直式寫法,在debug SQL時,可方便將有疑問 Column 註解(或暫時移除)方便除錯,這是此直式寫法的最大優點。也許有讀者會說:SQL 用直式寫法太麻煩了,要不斷地用Enter鍵將Column 移到下一行,又要排列整齊,耗時又耗工,沒有效率。老手與新手最大的差別就是在有沒有善用工具來創造自己寫程式的效能。現在網路有一些網站可協助我們程式設計師來改善修飾SQL 排版,只要在Google 打關鍵字 「SQL Formatter 」就會出現一堆網站協助程式設計師改善排版。
這邊筆者推薦一個網站 https://poorsql.com/ , 這網站的線上工具可以將沒有格式化的SQL轉換成 beautifier Code 變成直式排版格式的SQL,最重要轉換出來的豆號是在Column 名的左邊,符合我寫SQL的習慣,因此,因此,筆者常用此網站來轉換我的程式中的SQL,節省我相當多的時間。有興趣讀者也可自行參考其他類似的線上轉換工具的網站,找出符合自己習慣的SQL格式轉換工具。
最後說明一下,使用橫式寫法的SQL 設計師也是有老鳥且大師級的程式設計師,說菜鳥非絕對論。