日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

看漫畫就能學(xué)SQL,簡直太cool了

 L羅樂 2019-03-16

本文轉(zhuǎn)載自公眾號:大數(shù)據(jù)分析和人工智能,作者:方若。

對于SQl, 很多人學(xué)不會的原因是從一開始就沒明白,學(xué)這東西能干啥,學(xué)會了能有什么用。甚至有些人不知道'SQL’應(yīng)該怎么讀,以至于一開始興致勃勃,但是學(xué)到一半放棄了。

注意:'sql’真的不能讀成'燒烤’、'惜烤’、’撒扣’、’斯購',另外,’MYSQL’真的不能讀成’賣燒烤’,’賣西褲',有學(xué)員問:那我賣什么,我回答說:你去死。

如果你真的、實在是、絕對的看不懂英文的音標(biāo),那就暫且讀’色兒扣'吧,這是針對英語文盲特別制作的讀法。(注意我在這里并沒有瞧不起你的意思)

所以,堅持學(xué)會的根本,不在于這個知識是否有多難,而在于它帶給你的意義有多大。如果做事情沒有意義,那么你就沒有學(xué)習(xí)的動力。在數(shù)據(jù)分析的招聘中,SQL是必考的能力之一。所以學(xué)習(xí)SQL的意義,就在于你能否通過數(shù)據(jù)分析的面試,如果不能通過面試,你將窮困潦倒,顛沛流離,別人娶妻生子,兒孫繞膝,而你孤苦伶仃,滿目凄涼,垂垂老矣....

想要入門SQL,關(guān)鍵在于有沒有一個好的領(lǐng)路人帶你入門,所以ladys and鄉(xiāng)親們,放下手頭所有的農(nóng)活,開始喜歡我吧,因為接下來,我將帶你輕松搞定SQL的各個語法。記住我最大的特點就是,通俗易懂的解釋一個事情。

01.

理論篇

理解重要的概念

【數(shù)據(jù)】數(shù)字,文字,圖形,圖像,聲音這些都叫數(shù)據(jù)。

【數(shù)據(jù)庫】 理解數(shù)據(jù)庫的一種最簡單的方法是 將它想象成一個電子化的“文件柜”,

這個“文件柜”是一個存放數(shù)據(jù)的物理位置,不管數(shù)據(jù)是什么形式!就像法海手里的金鉑,我管你是什么妖,統(tǒng)統(tǒng)都得收進(jìn)來!(電視劇里的那個金鉑看起來像一個電飯鍋的內(nèi)膽,有沒有很像)。也有人說數(shù)據(jù)庫存儲數(shù)據(jù),就像冰箱是存儲食物一樣,,什么肉啊,米啊,菜啊,都能存放,對此我也是十分十分的同意??!

有了數(shù)據(jù)庫后,所有終端設(shè)備(手機,PAD, PC)都可以直接在這個系統(tǒng)上查找數(shù)據(jù)和修改數(shù)據(jù)。有人問我,老師,我是安卓手機,能連接數(shù)據(jù)庫嗎,當(dāng)然能了,不許瞧不起安卓系統(tǒng)??!

【數(shù)據(jù)表】 表是由行和列組成的一張二維表,這是關(guān)系數(shù)據(jù)庫中最基本的數(shù)據(jù)模型

【主鍵】用來表示數(shù)據(jù)的唯一性,是數(shù)據(jù)庫中非常重要的概念。在生活中我們也會使用ID來標(biāo)識數(shù)據(jù)的唯一性,例如:國家用身份證來唯一標(biāo)識一個人,即使你有一個雙胞胎兄弟,但只要你們的身份證號不一樣,你們就是兩個人。再比如銀行卡的卡號就是主鍵,如果兩個人卡號重復(fù)了,里面有100萬,錢算誰的呢?這事就鬧大了。

【外鍵】 關(guān)聯(lián)到其他表主鍵的字段被稱為“ 外鍵 ”,如果A表的一個字段來源于B表,那么這個字段就是A表的外鍵。

例如:成績表中的字段學(xué)號 sno 就是外鍵, 因為這個字段的值來源于學(xué)生表的主鍵sno。

【表關(guān)聯(lián)】什么是聯(lián)系呢?你是你爸爸的兒子,你是你的兒子的爸爸。這就是生活中的聯(lián)系。其實,數(shù)據(jù)之間也是有聯(lián)系的。數(shù)據(jù)庫里各個表之間如何建立聯(lián)系呢?

將多張表通過主鍵 外鍵關(guān)聯(lián)起來的方式,叫作表關(guān)聯(lián)。

例如學(xué)生選課涉及的四張表,通過主鍵和外鍵關(guān)聯(lián)在一起,就構(gòu)成了一個簡易的學(xué)生選課數(shù)據(jù)庫系統(tǒng)。

表關(guān)聯(lián)是關(guān)系數(shù)據(jù)庫中非常核心的理念 ,它可以表達(dá)非常復(fù)雜的數(shù)據(jù)關(guān)

【概念模型】表示方法:E—R方法(也叫實體聯(lián)系法)

【一個E-R模型案例】:

【數(shù)據(jù)模型】(主要指關(guān)系模型)

SQL語句的基礎(chǔ)是關(guān)系數(shù)據(jù)庫,關(guān)系數(shù)據(jù)庫的基礎(chǔ)是關(guān)系模型,關(guān)系模型可以由E-R圖得到。

在關(guān)系數(shù)據(jù)庫中,一張表就是一個關(guān)系,所以表格的一些術(shù)語和關(guān)系的一些術(shù)語能表達(dá)同樣的意思,具體來說,有下面幾點不同:

上面講的都是數(shù)據(jù)庫方面的基本理論。理論有了,當(dāng)然就得有對應(yīng)的軟件實現(xiàn)才能用起來,不然再強大的理論都是一坨屎。這就好比,如果只有設(shè)計草圖是無法蓋起樓房的,得有具體的施工團(tuán)隊才能蓋起樓房。

上面講的數(shù)據(jù)庫原理就是“設(shè)計草圖”,那么對應(yīng)的“施工團(tuán)隊”是誰呢?

實現(xiàn)數(shù)據(jù)庫原理的“施工團(tuán)隊”就是常用的數(shù)據(jù)庫軟件,例如MySQL、Oracle、SQLServer等都是實現(xiàn)上面理論的數(shù)據(jù)庫。各個數(shù)據(jù)庫軟件的使用差別大同小異,但是因為MySQL是開源的,免費的,所以成為各大公司使用的主流,面試也主要以’賣燒烤'為主。

02.

SQL基礎(chǔ)篇

我經(jīng)歷過很多次數(shù)據(jù)分析師面試,經(jīng)常會遇到這樣一道經(jīng)典的SQL筆試題。注意:這可是華為的面試題,上點心吧。

【華為經(jīng)典面試題】

A(用戶購買記錄)、B(商品對應(yīng)ID)、C(ID對應(yīng)價格)三個表,問本月內(nèi)購買商品金額最多的前三名用戶分別是誰?

【分析】

A表只有用戶和商品名字的對應(yīng)關(guān)系,需要關(guān)聯(lián)到C表求得價格,但A表和C表沒有公共字段,這時發(fā)現(xiàn)A表和B表有公共字段【商品名字】,而B表和C表有公共字段【商品ID】,于是先用A表Join B表,再Join C表得出一張多個字段的關(guān)聯(lián)表,用Group by求出用戶購買商品的總金額,再用Order by對用戶購買商品的總金額進(jìn)行降序排列,最后用Limit截取總金額前三位的用戶。

這道題看起來很難,但考到了都是一些SQL的基礎(chǔ)知識,包括Select、Groupby、Order by、Join、Limit。

所以,作為數(shù)據(jù)分析獅(有人喜歡把自己叫作分析狗,真是太不尊重自己了,我聽了非常氣憤),如果你以后的發(fā)展方向不是數(shù)據(jù)工程師的話,SQL只需要掌握基礎(chǔ)語句就可以糊弄面試了,具體包括:

查詢數(shù)據(jù)(select語句)

過濾數(shù)據(jù)(where語句)

匯總數(shù)據(jù)(group by 語句)

排序數(shù)據(jù)(order by 語句)

時間函數(shù)

1 查詢數(shù)據(jù)(select語句)

【語法】select 列名稱 from表名稱

【案例】select name from world; (選取world表中'name’這一列)

select * from world(選取world表中所有列)2 過濾數(shù)據(jù)(where語句)

【語法】select xxxx from xxx Where 條件表達(dá)式

【案例】select * from country where IndepYear >1975

3 使用distinct關(guān)鍵詞去重:

【語法】select distinct 字段名 from 表名

【案例】select distinct class from student

匯總數(shù)據(jù)( Group by 語句)

【定義】什么是group by 子句,“Group By”從字面意義上理解就是根據(jù)“By”指定的規(guī)則對數(shù)據(jù)進(jìn)行分組. 那么,GROUPBY 是如何分組的呢?

【案例】

所以group by也叫分組函數(shù)。5 排序語句(order by)

Order by 指的是根據(jù)指定的列對結(jié)果進(jìn)行排序,默認(rèn)升序;如果希望降序,需要加上DESC關(guān)鍵字。

【語法】selectxxx from xxx

where xxx

order by xxx desc

【案例】篩選人口總數(shù)大于10萬的國家的信息,并且按照人口總數(shù)進(jìn)行降序排序。

select * from countrywhere population > 100000

order by population desc (先篩選符合條件的行,后排序)

使用Orderby 的幾種情況:(1)order by 作用于單個字段

(2)加desc關(guān)鍵字實現(xiàn)降序

(3)order by 作用于雙字段

先對年齡進(jìn)行升序排序,然后針對相同年齡的,再根據(jù)成績升序排序

6時間函數(shù)

關(guān)于阿里,京東,美團(tuán),快手等大部分互聯(lián)網(wǎng)公司,大部分?jǐn)?shù)據(jù)需求都是和時間相關(guān)的,所以熟練掌握時間函數(shù),非常的重要?。∮腥烁嬖V我他不想工作,我奉勸你照照鏡子,看看鏡子中的自己,已經(jīng)長得這么丑了,難道還要沒錢嗎?

真是no zuo no die,我不會罵你的,我很有修養(yǎng)

03.

SQL進(jìn)階篇

恭喜你,你已經(jīng)看到進(jìn)階篇了,現(xiàn)在你已經(jīng)get到一個了不起的技能,媽媽再也不用擔(dān)心你沒法裝X了。下面這些資料是我們內(nèi)部的一些分享資料,有人問我什么內(nèi)部,你在哪個公司上班,拜托大家不要像我二姑媽似的這么八卦,要學(xué)會看重點?。∵M(jìn)階部分需要大家了解mysql的執(zhí)行原理,join的用法,SQL的執(zhí)行順序等等,因為這是我們寫復(fù)雜SQL的基礎(chǔ)。你不會走,就想飛嗎,真的沒這么容易??!

(1)mysql中join的用法

之前網(wǎng)絡(luò)上流行用韋恩圖來表示各種連接查詢:

但我覺得用下面這種方式表達(dá)連接查詢,更容易理解:

有沒有覺得連接查詢竟然如此簡單,還不是多虧了我這幾張圖嗎。

(2)Mysql的執(zhí)行順序:

當(dāng)sql邏輯復(fù)雜后,sql的執(zhí)行順序就會非常重要,SQL執(zhí)行順序和書寫順序又不一樣,所以慢慢扣吧,這也是進(jìn)階的基礎(chǔ)呢。

04.

SQL復(fù)雜查詢

恭喜你,你都看到復(fù)雜查詢了,我覺得你很有潛力!!面對大量數(shù)據(jù)我們時常需要對他們進(jìn)行匯總,分組,歸類,這時候就需要用到一些復(fù)雜的查詢方法。

1聚合函數(shù):【分類】聚合函數(shù)有哪些?

2分組聚合

【定義】指的是先使用group by 分組后,再使用聚合函數(shù)對每組數(shù)據(jù)聚合

分組語句和聚合函數(shù)常常一起使用

【案例】:

3 使用having子句

【定義】篩選符合條件的組,常常和group by 一起使用。

【示意圖】

4嵌套查詢:

(1)【定義】什么是嵌套查詢?

如果把一個查詢塊嵌套在另一個查詢塊的WHERE子句或HAVING短語的條件中,我們就稱為嵌套查詢。其中外層查詢稱為主查詢,內(nèi)層查詢稱為子查詢。

(2)【執(zhí)行順序】先執(zhí)行內(nèi)層查詢,再執(zhí)行外層查詢:

(3)嵌套查詢用來解決哪些問題?

【Sql 語句】

掌握了上面這些語法,基本上你可以糊弄各種形式的面試了,最常見的考SQL的方法就是,給你一個虛擬的數(shù)據(jù)庫表結(jié)構(gòu),然后讓你按給出的條件查詢出數(shù)據(jù),并用手寫的形式寫出在紙上。所以面試前把常用的SQL語句記清楚就OK了。

怎么,覺得自己牛逼的不行,再練點更難的題吧

推薦一個很方便的實踐SQL的網(wǎng)站:數(shù)據(jù)庫SQL實戰(zhàn)-??途W(wǎng)

實際上還有很多類似這樣的網(wǎng)站,是用來強化SQL練習(xí)的,但因為他們并沒有給我廣告費,我為什么要給他們做廣告呢?

最后,推薦一門由我和愛數(shù)圈團(tuán)隊共同打磨的精品課【漫畫SQl】

這門課設(shè)計的通俗易懂,畫風(fēng)幽默,適合一些沒什么學(xué)歷,又不愛學(xué)習(xí)的朋友,哈哈

學(xué)員評價

有人問我,老師我起點非常低,學(xué)不會你會不會打我。當(dāng)然不會了,都什么年代了,還靠打罵管教學(xué)生,我頂多在心里稍微鄙視你一下,哈哈。

最后隆重介紹下

課程更新已經(jīng)結(jié)束

現(xiàn)價僅129元,

讓你成為職場上MVP!

愛數(shù)圈出品、必為精品

掃碼購買

一次購買,永久有效

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多