一、前言

上一篇文章有稍微帶到簡單的SQL基本CRUD操作方式,但實際玩起來我覺得就和GIT一樣,是有趣而且多變的,熟悉語法就能在需要時妥善運用!

二、如何累積SQL能力與觀念?

如果你是一個職場新手或者第一次接觸資料庫、碰SQL,那我推薦以下資源可以快速入門,網路資源真的超多,這邊分享的是我個人覺得實用與易懂的,表單裡的資源有連結可以直接點選。就不在此系列技術文中,冗長一一陳述語法了。

項次 資源重點 備註內容
1 SQL語法教學 各種指令大部分都可以在這裡學習。
2 初學者必須知道的懶人包 主要是給初學者方向與概念,搭配圖文淺顯易懂!
3 零基礎快速自學SQL,1天足矣 2021年9月才更新,算是觀念累積很實用!
4 【資料庫】SQL 3小時初學者教學(含MySQL教學) 2021年8月的影片教學,吃飯時可以配著看當複習也很好!
5 SQLZOO互動式教學 可以小試身手測試SQL語法的網站,有支援繁體中文,平常可以抽空實際練習。

三、(接案公司裡)常用的語法與實例

這邊列出遇過的一些狀況劇與解決方法,讓大家稍微看一下其實操作那些數據一點也不難,都是很有趣的唷!如果在實際運用上,有遇到下列情形,也可以試試看是否有幫助~

1. 建立新的資料表時可能遇到的情況

  • 可能的狀況:
    Id需要隨數量增加而遞增

  • 解決方法:
    新增資料表時,在下方屬性的識別規格做設定。

2. 重新整理Id排序值

  • 可能的狀況
    I’ve deleted some records from a table in a SQL Server database.

The IDs in the table look like this:99 100 101 1200 1201…

  • 解決方法:
    1
    DBCC CHECKIDENT (mytable, RESEED, 0)

3. 查詢並去除重複值

  • 可能的狀況
    假設我們想從下面的 customers 資料表中查詢顧客分佈在哪幾個縣市:

  • 解決方法:
    原本資料表的 City 欄位中有兩個重複值台北市,可是我們只想知道有哪幾個縣市有顧客而已,故我們使用 DISTINCT 關鍵字來限制僅取出欄位中 “不相同” 的值。

    1
    SELECT DISTINCT City FROM customers;
  • 解決結果會撈出:
    台北市
    新竹縣
    高雄縣

4. 清空某張資料表的所有資料值,但原架構保留

  • 解決方法:
    1
    TRUNCATE TABLE "表格名";

四、結論與自我鼓勵

不知道大家學習SQL的感受是什麼,我個人覺得很吃邏輯力!主要真的是至少要會去查關聯與運用語法,就可以完成大部分工作上的需求。下一篇則預計會介紹一點點MSSQL的介面,或其它技術主題~