SQL教學


SQL是一種資料庫計算機語言,用於檢索和管理關聯式資料庫中的資料。 SQL代表結構化查詢語言(英文:Structured Query Language),SQL(結構化查詢語言)用於對儲存在資料庫中的記錄執行操作,例如:更新記錄,刪除記錄,建立和修改表,檢視等。

面向讀者

本教學是為初學者和專業人士準備的,以幫助他們理解與SQL語言相關的基本概念和高階概念。 本教學將讓您充分了解SQL的各個元件並提供相應的範例。它涵蓋了對SQL的基本理解SQL所需的相關主題,並了解它的工作原理。

前提條件

在開始練習本教學中給出的各種型別的範例之前,假設讀者已經了解資料庫是什麼,尤其是資料庫系統(RDBMS)以及什麼是計算機程式設計語言。
SQL只是一種查詢語言,它不是資料庫。 要執行SQL查詢,您需要安裝資料庫,例如:OracleMySQL,MongoDB,PostGreSQL,SQL Server,DB2等。

問題反饋

我們不能保證您在學習此SQL教學的過程中不會遇到任何問題。本教學中的講解,範例和程式碼等只是根據作者的理解來概括寫出。由於作者水平和能力有限,因此不保正所有編寫的文章都準確無誤。但是如果有遇到任何錯誤或問題,請反饋給我們,我們會及時糾正以方便後續讀者閱讀。

教學目錄

本SQL教學通過許多實際應用的範例幫助讀者快速有效地開始學習使用SQL。

如果是使用SQL分析資料的軟體開發人員,資料庫管理員,資料分析師或資料科學家,那麼本教學是一個很好的開始。

每個主題都通過許多實際範例清晰簡明地介紹,以便您可以真正理解概念並知道如何應用它來更有效地解決資料問題。

請參考以下組織的各個小節開始學習。

第1節:SQL簡介

  • 什麼是SQL - 簡要介紹一下SQL語言及其流行的SQL方言。
  • SQL語法 - 提供SQL語言的語法。
  • SQL範例資料庫 - 向介紹HR範例資料庫。
  • SQL語法 - SQL是一組語法的獨特規則和準則。 本教學通過列出所有基本SQL語法,為讀者提供SQL快速入門。

第2節:查詢資料

  • SELECT語句 - 演示如何使用最簡單的SELECT語句從單個表中查詢資料。

第3節:排序資料

  • ORDER BY子句 - 按升序和/或降序對一列或多列資料進行排序。

第4節:過濾資料

  • DISTINCT - 演示如何從結果集中刪除重複項。
  • LIMIT - 使用LIMITOFFSET子句約束查詢返回的行數。
  • FETCH - 學習如何在開始返回任何行之前跳過結果集中的N行。
  • WHERE子句 - 根據指定條件過濾資料。
  • 比較運算子 - 學習如何使用比較運算子,包括大於,大於或等於,小於,小於或等於,等於,不等於形成WHERE子句中的條件。
  • 邏輯運算子 - 介紹邏輯運算子以及如何使用它們來測試條件的真實性。
  • AND運算子 - 使用AND邏輯運算子組合多個布林表示式。
  • OR運算子 - 演示如何使用另一個邏輯運算子OR來組合多個布林表示式。
  • BETWEEN運算子 - 指導您使用BETWEEN運算子選擇值範圍內的資料。
  • IN運算子 - 演示如何使用IN運算子檢查值是否在值列表中。
  • LIKE運算子 - 基於指定模式查詢資料。
  • IS NULL運算子 - 介紹NULL概念並演示如何檢查表示式是否為NULL。
  • NOT運算子 - 演示如何使用NOT運算子否定布林表示式。

第5節:連線多個表

  • SQL別名 - 使查詢更短,更易理解。
  • INNER JOIN - 介紹連線概念,並演示如何使用INNER JOIN子句組合來自多個表的資料。
  • LEFT OUTER JOIN - 提供另一種連線,用於組合來自多個表的資料。
  • FULL OUTER JOIN - 通過包含兩個表中的行來連線多個表,無論這些行是否具有來自另一個表的匹配行。
  • CROSS JOIN - 使用交叉連線操作生成連線表行的笛卡爾積。
  • SELF JOIN - 使用內部聯接或左聯接子句將表連線到自身。

第6節:聚合函式

  • 聚合函式概述 - 介紹SQL中最常用的聚合函式,包括:AVGCOUNTSUMMAXMIN
  • AVG - 計算集合的平均值。
  • COUNT - 返回集合中的專案數量。
  • SUM - 返回集合中所有或不同專案的總和。
  • MAX - 查詢集合中的最大值。
  • MIN - 查詢集合中的最小值。

第7節:分組資料

  • GROUP BY - 將行組合成組並將聚合函式應用於每個組。
  • HAVING - 指定過濾GROUP BY子句彙總的組的條件。
  • GROUPING SETS - 生成多個分組集。
  • ROLLUP - 考慮輸入列的層次結構生成多個分組集。

第8節:使用SET運算子

  • UNION和UNION ALL - 使用UNIONUNION ALL運算子將兩個或多個查詢的結果集合併到一個結果集中。
  • INTERSECT - 使用INTERSECT運算子返回兩個或多個查詢的交集。
  • MINUS - 使用MINUS運算子從另一個結果集中減去結果集。

第9節:子查詢

  • 子查詢 - 演示如何在另一個查詢中巢狀查詢,以形成更靈活的查詢資料查詢。
  • 相關子查詢 - 介紹相關子查詢,子查詢是使用外部查詢中的值的子查詢。
  • EXISTS - 演示如何檢查從子查詢返回的行的存在。
  • ALL - 說明如何通過將表的列中的值與一組列進行比較來查詢資料。
  • ANY - 如果表的列中的值與集合中的值之一匹配,則查詢資料。

第10節:約束

  • PRIMARY KEY - 演示如何為表定義主鍵。
  • FOREIGN KEY - 引導如何使用外來鍵約束強制執行兩個表中資料之間關係的步驟。
  • UNIQUE - 確保列或列集中值的唯一性。
  • NOT NULL - 確保插入或更新到列的值不為NULL
  • 檢查約束 - 在資料基於布林表示式儲存在一列或多列中之前驗證資料。