回覆列表
  • 1 # 日衝資訊 黃

    SQL不是過程化語言,很多人上手的時候都不太適應。實際上SQL是一種邏輯化語言,更接近自然語言,被稱為第四代或第五代程式語言。因此,SQL是比較容易上手的。

    必要的基礎知識

    要寫好SQL必須熟練掌握關係代數中關係表計算的四大規則三個基本的語句,其他所有的語句都可以由這三條語句衍生出來:

    選擇計算 給定條件從已知關係表中選出資料行組成新的關係表。Select ⋯Where語句。這是唯一能減少關係錶行數的規則。投影計算 從關係表中選取若干列組成新的關係表。跟上面的語句相同。這是唯一能減少列數的規則。相交計算 兩個關係表列合併,資料行按照笛卡爾集組成新的關係表。相當於Join語句。這是唯一能增加列的規則。合併計算 兩個列數相同的關係表的資料行合併組成新的關係表。相當於Union語句。這是唯一能增加資料行的規則。忽略過程關注結果

    寫出簡潔和高效的SQL的竅門是先想好結果,然後再透過對錶和欄位的篩選,合併組合等手段作出結果。一定不要在意計算過程。只需要考慮表和表之間的對應關係就能編碼是SQL的一大特色。

    最佳化檢索邏輯

    在對SQL文除錯的時候,經常需要提高檢索效率。很多人喜歡透過調整檢索過程使計算次數最少,這個思路通常是有效的,但是,更有效的方法是整理檢索邏輯,使它最為簡潔和清晰。我在這裡就不具體說明了。寫SQL的時候,用心體會應該能找到感覺。

    SQL是我最喜歡的程式語言,很多演算法都可以用資料表的方式實現。受此影響即便是用Java或者是C編碼的時候,我也喜歡先把演算法轉換成資料結構,儲存在靜態的陣列中,然後用檢索的方式得到結果。有一次,我把同事寫的複雜度很高的幾百行程式碼改成了近萬行的陣列,程式碼複雜度降到了10以下,計算速度大幅提升,編碼生產性達到了一小時3000行+…

    好嗨哦!趕腳人生到達了高潮!

  • 中秋節和大豐收的關聯?
  • 美國婚禮有哪些傳統習俗?