SQL簡(jiǎn)介
1. 前言
大家好,從本小節(jié)開(kāi)始,我們將一起學(xué)習(xí)SQL wiki系列。談到 SQL,每個(gè)人心里會(huì)有不同的理解,但大家可能都會(huì)不約而同地想到一個(gè)詞——數(shù)據(jù)庫(kù)。SQL 發(fā)展到今天,它的足跡其實(shí)早已遍布各個(gè)應(yīng)用領(lǐng)域了。
學(xué)好 SQL,你可以做到很多,數(shù)據(jù)管理、數(shù)據(jù)分析甚至機(jī)器學(xué)習(xí),你都可以用 SQL 來(lái)完成。學(xué)習(xí)是一個(gè)頗為技巧的活,它也遵守二八定律,學(xué)好20%的知識(shí)你就可以做好80%的事情,這也是wiki想要帶給大家的。
我們希望整理出 SQL “百分之二十”的知識(shí),幫你辦到“百分之八十”的事情,當(dāng)然這里的知識(shí)遠(yuǎn)非百分之二十。
作為 SQL 系列的第一小節(jié),我們將為你簡(jiǎn)單的介紹什么是 SQL,SQL 能做什么以及學(xué)習(xí) SQL 的注意事項(xiàng)。
慕課贈(zèng)言:空無(wú)以求全,倒空的杯子才能裝滿(mǎn)更多的水。
2. 什么是 SQL
SQL,全稱(chēng) Structured Query Language,是一種結(jié)構(gòu)化查詢(xún)語(yǔ)言。
SQL,是一種數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)語(yǔ)言。
SQL,是一種 半衰期很長(zhǎng)的語(yǔ)言,自 1970 年代誕生到現(xiàn)在,經(jīng)久不衰,日久彌新。
3. SQL 能做什么
- SQL 可用于在數(shù)據(jù)庫(kù)中增加,刪除,修改,查詢(xún)數(shù)據(jù);
- SQL 可用于新建數(shù)據(jù)庫(kù),新建數(shù)據(jù)表;
- SQL 可用于新建視圖,函數(shù);
- SQL 可用于簡(jiǎn)單的數(shù)據(jù)清洗;
- SQL 可用于簡(jiǎn)單的數(shù)據(jù)分析;
- SQL 可搭配 Hive,Spark SQL 做大數(shù)據(jù);
- SQL 可搭配 SQLFlow 做機(jī)器學(xué)習(xí);
- SQL 可搭配一定的工具做數(shù)據(jù)報(bào)表。
4. RDBMS有哪些
RDBMS,全稱(chēng)relational database management system(關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)),是一種數(shù)據(jù)庫(kù)軟件,但我們經(jīng)常狹義地稱(chēng)呼它為數(shù)據(jù)庫(kù)。RDBMS將數(shù)據(jù)及數(shù)據(jù)關(guān)系以數(shù)據(jù)庫(kù)和數(shù)據(jù)表的形式存儲(chǔ),并提供 SQL 訪(fǎng)問(wèn)接口。
目前主流 RDBMS 有 MySQL、PostgreSQL、SQL Server 和 Oracle;其中MySQL和PostgreSQL是免費(fèi)開(kāi)源且使用廣泛的數(shù)據(jù)庫(kù),也是我們學(xué)習(xí)的重點(diǎn)。
不同的數(shù)據(jù)庫(kù)廠(chǎng)商對(duì)于 SQL 的支持差異頗大,一份精簡(jiǎn)的 wiki 實(shí)在無(wú)法囊括那么多,因此本 wiki 以MySQL和PostgreSQL為主,且默認(rèn)使用MySQL。當(dāng)然你大可不必?fù)?dān)心,本 wiki 介紹的 SQL 知識(shí)幾乎可以無(wú)縫地跑在不同的數(shù)據(jù)庫(kù),對(duì)于差異我們會(huì)著重說(shuō)明。
5. 其它系統(tǒng)
SQL 的使用十分廣泛,不僅可以在 RDBMS 中使用,還可以在其它系統(tǒng)中使用。
- Hive 和 Pig 提供 SQL 的方式進(jìn)行大數(shù)據(jù)操作,Spark SQL 也是同等作用的產(chǎn)品;
- InfluxDB 是目前使用最為廣泛的時(shí)序數(shù)據(jù)庫(kù),也提供 SQL 訪(fǎng)問(wèn)接口;
- TiDB 是目前使用也非常廣泛的分布式數(shù)據(jù)庫(kù),仍以 SQL 訪(fǎng)問(wèn),并 100%兼容 MySQL;
- SQLFLow 是螞蟻金服開(kāi)源的一款用 SQL 進(jìn)行機(jī)器學(xué)習(xí)的產(chǎn)品;
- Neo4j 是圖數(shù)據(jù)庫(kù)中的佼佼者,其查詢(xún)語(yǔ)言也是一種類(lèi)似 SQL 的語(yǔ)言;
- SPARQL 是 w3c 專(zhuān)門(mén)為 RDF 定制的查詢(xún)語(yǔ)言,被廣泛的應(yīng)用在知識(shí)圖譜領(lǐng)域,其語(yǔ)法幾乎與 SQL 無(wú)異。
6. 重要說(shuō)明
- SQL 語(yǔ)句中的變量使用
[]作為變量占位符,如在[table_name]中,table_name 表示數(shù)據(jù)表名稱(chēng)。 - SQL 語(yǔ)句若無(wú)特殊說(shuō)明,均默認(rèn)在
MySQL中執(zhí)行。 - SQL 中的關(guān)鍵字不區(qū)分大小寫(xiě),如
CREATE和create均可用,但我們推薦關(guān)鍵字大寫(xiě)。 - SQL 關(guān)鍵字雖不區(qū)分大小寫(xiě),但為以示區(qū)分,教程中統(tǒng)一
大寫(xiě)。 - SQL 標(biāo)準(zhǔn)每年都在更新,不同廠(chǎng)商的支持又不盡相同,本教程以
MySQL和PostgreSQL為主。 - SQL 語(yǔ)句在書(shū)寫(xiě)時(shí)有諸多保留詞,如
index,一般情況下都需要通過(guò)轉(zhuǎn)義符轉(zhuǎn)義。 - MySQL中的轉(zhuǎn)義符是 `` ,PostgreSQL中的轉(zhuǎn)義符是 “”。
- 本教程聚焦在 SQL 的
介紹和使用上,因此不會(huì)涉及到數(shù)據(jù)庫(kù)安裝與配置相關(guān)的知識(shí)。
pedrogao ·
2025 imooc.com All Rights Reserved |