跳到主要內容

SQL | MS SQL 初心者筆記 其一

該學哪一套 SQL

這是我決定要開始學 SQL 之後所遇到的第一個問題,常見的方案就有 Oracle的 MySQLMicrosoft  SQL Server、和Open Source 的 PostgreSQL。雖然指令及語法基本上一致,但個別資料庫軟體的操作細節還有其對應的作業平台也都有所差異,這對資工或資管背景的朋友而言可能不會造成太大問題,可是對程式素人的我而言就有差了。

回顧一下前文章提到的重點:
先確認目的 or 需求是什麼,再來決定要做些什麼。
於是我先調查了一下我的理想職缺當中,主要要求的是哪一種資料庫系統,再考量到我熟悉的作業系統平台,我決定從 Microsoft SQL Server(以下簡稱 MS SQL)來學習 SQL

選擇教材資源

在這個網路如此發達,各種線上教學資源多如繁星的時代,我覺得還去報名什麼X匠電腦之類的補習班課程,實在是傻子。我不否認這種成套的付費課程仍舊有其優點,但我秉持著
「如果學習者自己不夠積極努力,那麼無論報名再怎麼濃縮懶人高效的付費套裝課程,也都只是在浪費成本而已。」
於是,我開始蒐羅、篩選適合自己的教材及資源。

說到線上資源,許多人會想到的可能是大專院校當中的 Open Course Ware或是 MOOCs。然而我選擇的是從 YouTube上尋找專業技術人員的教學影片,例如這個:

這項選擇的原因是,Open Course Ware 或是 MOOCs 的一堂課程影片,通常是針對大學生(甚至說,非進修部的大學生)而設計的,學生們通常有充裕的時間能吸收、思考、練習。但對上班族而言,這樣的一部教學影片內容往往過長,不利吸收、消化、乃至於練習。相對地,YouTube 上的教學影片,依教學者的不同,可以找到將教學單元切割得較簡短細緻的,這樣的彈性相對有利於學習時間瑣碎且短少的社會人士

另一個常見的資源,當然就是書本。坊間的技術教學書籍也是族繁不及備載,其內容編排上也幾乎都有完整的先後脈絡,對自主學習者而言,其實挑一本自己認為易讀、上手的書即可。我自己選用的教材是這本《學習資料庫的13堂課:使用SQL Server

這一本的優點在於,它的編排順序並非像大多數的 MS SQL 技術手冊一樣,依照各項功能分章堆砌而成;而是針對初學者的思路,逐一解說 MS SQL 的概念原理、實務應用、以及對初學者而言時常會產生的疑惑,非常適合像我這樣的程式素人。

管理 or 設計?

這個子標題來自於我選用的另一本參考書籍《Microsoft SQL Server 2012 管理實務與其對映的另一本參考書籍為《Microsoft SQL Server 2012 設計實務》。

咱們再複習一次那個概念:「先確認目的 or 需求是什麼,再來決定要做些什麼。我的目標並非成為一名  DBA 或是  MIS,而是要能夠熟練地存取 MS SQL 的資料。這使得我不必精通於設計、建構、維運一套完整的資料庫運作方案,而是將學習重點放在熟練存取資料的方法。

選定好主要教材之後,再來就是如何善用教材,以及持續的練習與思考。我的策略是,先透過書本來瞭解  MS SQL 的主要功能及運作概念,細部零碎的操作方法則透過  YouTube 教學影片來學習。

觸類旁通

學習最有效的方式之一,就是透過過去已知的知識系統,去類比新學習的事務,同時有也助於釐清當中的異同。雖然之前沒有學過  SQL 資料庫系統,但我曾在大學時期的課程中學習過  Microsoft Access 這套資料庫軟體,對於關聯式資料庫的相關概念,也是從那時候來的。在這樣的基礎上,學習的重點就會轉變成:「如何將已知的關聯式資料庫概念,以實地的Transact-SQL指命碼或者圖形介面操作的方式來實踐。」

另一項觸類旁通的管道,即是公司所使用的 ERP 系統。由於該套 ERP 也是以 MS SQL 為基底所寫出來的,於是在對 MS SQL 的設計原理及功能應用有些認識之後,就能夠思考並慢慢地理解軟體當中的哪些功能該如何設計?Transact-SQL 指命碼該如何撰寫,甚至再進一步區分,哪些功能由是 MS SQL 固有基本函數構成的、哪些功能是由開發者另外撰寫的程式碼構成的。這也都是有效的學習方式之一。

小結

本篇主要在介紹作為程式素人的我,對於 MS SQL 的自主學習方針。許多觀念當然富含濃厚的個人主觀意識,也歡迎交流指教。下一篇文章,或許可以考慮將自主練習的各項 Transact-SQL 程式碼還有測試成果放出來,但是如何將上述內容以易讀的方式呈現,又是另外一個難題了。