01 SQL 簡介
阿新 • • 發佈:2020-06-25
1. 前言
大家好,從本小節開始,我們將一起學習SQL wiki
系列。談到 SQL,每個人心裡會有不同的理解,但大家可能都會不約而同地想到一個詞——資料庫
。SQL 發展到今天,它的足跡其實早已遍佈各個應用領域了。
學好 SQL,你可以做到很多,資料管理、資料分析甚至機器學習,你都可以用 SQL 來完成。學習是一個頗為技巧的活,它也遵守二八定律
,學好20%
的知識你就可以做好80%
的事情,這也是wiki
想要帶給大家的。
我們希望整理出 SQL “百分之二十”的知識,幫你辦到“百分之八十”的事情,當然這裡的知識遠非百分之二十。
作為 SQL 系列的第一小節,我們將為你簡單的介紹什麼是 SQL,SQL 能做什麼以及學習 SQL 的注意事項。
贈言:空無以求全,倒空的杯子才能裝滿更多的水。
2. 什麼是 SQL
SQL
,全稱 Structured Query Language,是一種結構化查詢
語言。
SQL
,是一種資料庫訪問
語言。
SQL
,是一種 半衰期很長
的語言,自 1970 年代誕生到現在,經久不衰,日久彌新。
3. SQL 能做什麼
- SQL 可用於在資料庫中增加,刪除,修改,查詢資料;
- SQL 可用於新建資料庫,新建資料表;
- SQL 可用於新建檢視,函式;
- SQL 可用於簡單的資料清洗;
- SQL 可用於簡單的資料分析;
- SQL 可搭配 Hive,Spark SQL 做大資料;
- SQL 可搭配 SQLFlow 做機器學習;
- SQL 可搭配一定的工具做資料報表。
4. RDBMS有哪些
RDBMS,全稱relational database management system
(關係資料庫管理系統),是一種資料庫軟體,但我們經常狹義地稱呼它為資料庫
。RDBMS將資料及資料關係以資料庫和資料表的形式儲存,並提供 SQL 訪問介面。
目前主流 RDBMS 有 MySQL、PostgreSQL、SQL Server 和 Oracle;其中MySQL
和PostgreSQL
是免費開源且使用廣泛的資料庫,也是我們學習的重點。
不同的資料庫廠商對於 SQL 的支援差異頗大,一份精簡的 wiki 實在無法囊括那麼多,因此本 wiki 以MySQL
PostgreSQL
為主,且預設使用MySQL
。當然你大可不必擔心,本 wiki 介紹的 SQL 知識幾乎可以無縫地跑在不同的資料庫,對於差異我們會著重說明。
5. 其它系統
SQL 的使用十分廣泛,不僅可以在 RDBMS 中使用,還可以在其它系統中使用。
- Hive 和 Pig 提供 SQL 的方式進行大資料操作,Spark SQL 也是同等作用的產品;
- InfluxDB 是目前使用最為廣泛的時序資料庫,也提供 SQL 訪問介面;
- TiDB 是目前使用也非常廣泛的分散式資料庫,仍以 SQL 訪問,並 100%相容 MySQL;
- SQLFLow 是螞蟻金服開源的一款用 SQL 進行機器學習的產品;
- Neo4j 是圖資料庫中的佼佼者,其查詢語言也是一種類似 SQL 的語言;
- SPARQL 是 w3c 專門為 RDF 定製的查詢語言,被廣泛的應用在知識圖譜領域,其語法幾乎與 SQL 無異。
6. 重要說明
- SQL 語句中的變數使用
[]
作為變數佔位符,如在[table_name]
中,table_name 表示資料表名稱。 - SQL 語句若無特殊說明,均預設在
MySQL
中執行。 - SQL 中的關鍵字不區分大小寫,如
CREATE
和create
均可用,但我們推薦關鍵字大寫。 - SQL 關鍵字雖不區分大小寫,但為以示區分,教程中統一
大寫
。 - SQL 標準每年都在更新,不同廠商的支援又不盡相同,本教程以
MySQL
和PostgreSQL
為主。 - SQL 語句在書寫時有諸多保留詞,如
index
,一般情況下都需要通過轉義符轉義。 - MySQL中的轉義符是 `` ,PostgreSQL中的轉義符是 “”。
- 本教程聚焦在 SQL 的
介紹和使用
上,因此不會涉及到資料庫安裝與配置相關的知識。