簡介

SQL全名為Structured Query Language, 中文為「結構化查詢語言」,最早在1970年由IBM 開發,而至今仍被廣泛使用,它是管理資料庫的一種程式語言,幫助我們在龐大的資料中快速找到想要的資訊。SQL的控制範圍包括資料插入、查詢、更新和刪除,資料庫模式建立和修改,以及資料存取控制,是一種特定目的程式語言,用於管理關聯式資料庫管理系統(RDBMS),或在關係流資料管理系統(RDSMS)中進行流處理。

SQL在1986年成為美國國家標準協會(ANSI)的一項標準,在1987年成為國際標準化組織(ISO)標準,此後,這一標準經過了一系列的增訂,加入了大量新特性,雖然有這一標準的存在,但大部分的SQL代碼在不同的資料庫系統中並不具有完全的跨平台性。

  • 數據定義語言,
  • 數據操作語言,
  • 數據控制語言,

當我們在操作APP、網頁或觸發器時,資料會被DBMS資料庫管理系統(如MySQL、MariaDB、MSSQL)紀錄,並存放到資料庫中,接著透過SQL結構化查詢語言向使用者顯示、提取所需的資料與訊息。


開發工具與資料庫都有各自的廠商,初期都互不兼容,後來有一套標準 ANSI SQL 來規範這裡的 SOP。但廠商為求自家產品更有競爭性,所以除了滿足ANSI SQL所規範出來的內容之外,另外發明一些各家不同的專屬功能(例如: Oracle’s PL/SQL 語言, MSSQL’s T-SQL 語言)。
學習方式先求了解 ANSI SQL,在進階自己熟習產品的專屬功能或公司需要性。

SQL 指令分類

  1. 資料定義語言 Data Definition Language,DDL
    提供產生、變更、刪除資料庫或資料表之命令,如Create、Alter、Drop、Truncate、Comment、以及Rename等命令·包含定義資料庫及其對向的語句,如表、圖、觸發器與儲存過程…等。

  2. 資料處理言Data Manipulation Language,DML
    提供可以處理資料表之命令,如Select、Insert、Update、Delet。包含允許更新和查詢數據的語句。

    寫程式的核心在這一塊。

  3. 資料控制語言Data Control Language,DCL
    提供管理資料庫或資料表授權使用之命令,如Grant Revoke 等*允許授予用戶權限,如訪問題
    據庫中特定數據的權限。

  4. 交易控制語言Transaction Control Language
    多人使用環境的交易控制命令,如Commit、Savepoint、Rollback以及 Settransaction 等。

使用圖形分四大類來說明,與上面說明相同。

分結構、權限、交易、資料表

SQL 受歡迎程度

最一開始有提到SQL語言,最早出現在1970年由IBM開發,時至今日已逾50年,即使現今社會同樣存在可提供使用的資料庫技術,但SQL語言仍是其中之霸主,且在未來SQL仍可維持它優秀的潛力再戰好幾十年!

根據「數據分析那些事」的文章報導表示,讓眾人在過了50多年後,仍依舊使用SQL的原因有8種,如以下。

  1. 優秀的資料處理能力:
    SQL是特別為處理資料而設計,善於存取與組織資料。

  2. 實踐檢驗:
    SQL有備份計畫、變化管理和操作嚴謹性。

  3. 知識和社群:
    在過去時間裡,SQL的知識體系被建立、人數也隨著時間逐漸增長,並且SQL知識被寫成豐富得檔案,壯大了人才、知識也更加深入。

  4. 簡單:
    對大多數只需要使用查詢功能的人來說,SQL是一個非常簡單的語言。

  5. 高度普及:
    有超過半數的開發者都會使用SQL與RDBMS(關聯式資料庫管理系統),讓SQL語言知識幾乎變成常識般的存在。

  6. 開源性:
    開源的MySQL與PostgreSQL資料庫管理系統,讓SQL技術成為主要的資料庫技術。

  7. 能用SQL server做好的事情就別為程式嗎:
    據說是坊間流傳的一句至理名言言…其原因在於,大多數的情況都能透過SQL來完成,並且還能做得比任何能寫程式的人,解決得更好。

  8. SQL語言與資料庫管理系統,各司其職:
    對某些工作來說,SQL資料庫也許不是最好的選擇,但在大部分的情況下,SQL資料庫仍能打敗其他「非SQL資料庫」。