SQL匯總—(基礎(chǔ)篇)

圖片發(fā)自簡書App

上周我開啟了我數(shù)據(jù)分析之旅~安裝mysql學(xué)習(xí)sql語言

而現(xiàn)在的自己是入門水準(zhǔn),僅僅會簡單的查詢語言、了解一些進(jìn)階的語言。面對復(fù)雜的語言自己還要跟著案例操作,比如:子查詢、連接表、組合查詢。

文章是學(xué)習(xí)《SQL必知必會》、SOTON數(shù)據(jù)分析、SQL入門到精通后的匯總。

分為四個板塊: SQL、MYSQL與數(shù)據(jù)庫;SQL語句分類;SQL語句實戰(zhàn);數(shù)據(jù)類型分類(補(bǔ)充、非重點)

寫在前面的話:如何閱讀本篇文章?

我們學(xué)習(xí)sql語言是因為要和數(shù)據(jù)庫打交道,從數(shù)據(jù)庫中提取數(shù)據(jù)。

首先要了解數(shù)據(jù)庫包含數(shù)據(jù)庫、表、列、記錄,而sql語句主要包含增刪改查詢。

所以我們學(xué)習(xí)就是3個目標(biāo)1個重點

1、數(shù)據(jù)庫的的增加刪除查詢修改

2、表的增加刪除查詢修改

3、列的增加刪除查詢修改

4、最重要的是記錄的查詢

帶上這4個問題學(xué)習(xí)并歸類,可以很快建立自己的思維。當(dāng)然文章也是盡可能的按這種方式寫的

一、SQL、 MYSQL與數(shù)據(jù)庫

SQL

1、 什么是SQL?

SQL是Structured Query Language(結(jié)構(gòu)化查詢語言)的縮寫,是一種專門用來與數(shù)據(jù)庫溝通的語言

2、 SQL的優(yōu)點?

SQL不是某個特定數(shù)據(jù)庫供應(yīng)商專有的語言,因此學(xué)習(xí)此語言幾乎能與所有數(shù)據(jù)庫打交道。

SQL簡單易學(xué),它的語句都是由很強(qiáng)描述性的單詞組成。

SQL是一種強(qiáng)有力的語言,可以進(jìn)行非常復(fù)雜和高級的數(shù)據(jù)庫操作。

3、 學(xué)習(xí)SQL需要準(zhǔn)備什么?

下載軟件MYSQL。

關(guān)于MYSQL的下載網(wǎng)上有很多講解,上篇文章《MYSQL5.7.23MIS版本安裝圖解》里面也有安裝的講解,大家可以參考。

MYSQL

1、 什么是MYSQL?

MYSQL 是一種數(shù)據(jù)庫軟件,應(yīng)稱為數(shù)據(jù)庫管理系統(tǒng)(DBMS)

2、 MYSQL的優(yōu)點?

MYSQL是免費開源,低成本的軟件;執(zhí)行速度快,性能好;簡單易學(xué)

數(shù)據(jù)庫

1、 為什么要了解數(shù)據(jù)庫?

理解數(shù)據(jù)庫概念是掌握SQL的重要前提

2、 什么是數(shù)據(jù)庫?(database)

數(shù)據(jù)庫是保存有組織的數(shù)據(jù)的容器,通常是一個文件或者是一組文件。

3、 表(table)

表是結(jié)構(gòu)化文件,可以用來存儲某種特定類型的數(shù)據(jù)。

4、 列(column)

列是由表組成

5、 行(row)

表中的一個記錄。表中的數(shù)據(jù)是按行儲存的,所保存的每個記錄儲存在自己的行內(nèi)。

感想:

第一部分內(nèi)容主要來自《MYSQL必知必會》,用幾百字介紹SQL、MYSQL、數(shù)據(jù)庫,就是為了解決:是什么、做什么問題。如果在學(xué)習(xí)SQL時理解數(shù)據(jù)庫非常重要,親親有時間可以參考其他數(shù)據(jù)庫基礎(chǔ)知識。

當(dāng)然自己也是非常想深入了解數(shù)據(jù)庫、數(shù)據(jù)庫軟件、SQL。不過要在下一輪學(xué)習(xí)中在進(jìn)行縱向深度學(xué)習(xí),現(xiàn)在的目標(biāo)是先橫向了解,盡快熟悉數(shù)據(jù)分析全局。

二、SQL語句分類

在開始SQL語句前,我們先回到第一部分SQL優(yōu)點:SQL簡單易學(xué),他的語句全都是由很強(qiáng)描述性的英語單詞組成,而且單詞數(shù)量并不多。

我們抓取三個關(guān)鍵詞:SQL簡單、語句描述性強(qiáng)、數(shù)量少。SQL的確比較簡單,下面幾頁PPT中包含82%的SQL語句,學(xué)完后你也能稱為入門數(shù)據(jù)分析了。

補(bǔ)充一點從專業(yè)的角度出發(fā),SQL語言可以分為四類DDL、DML、DCL、DQL。下面也將從這四個方面講述SQL語句。(PS:聽說在面試的時候可能會問到SQL語言的四大分類,同時SQL作為數(shù)據(jù)分析最重要的語言一定要打牢基礎(chǔ)。)


SQL語句分類

第一張圖是關(guān)于SQL語句的分類,可以分為四種DDL、DML、DCL、DQL

1-SQL語句分類:DDL之?dāng)?shù)據(jù)庫


1-SQL語句分類:DDL之表

第四張圖是DDL表的創(chuàng)建、刪除、修改。這里的創(chuàng)建是創(chuàng)建列以及數(shù)據(jù)類型、刪除是刪除列、修改指修改列名修改數(shù)據(jù)類型??!

關(guān)于數(shù)據(jù)類型有四類:數(shù)值型(整數(shù)、小數(shù))、浮點型、字符串型、日期時間型(在文章最后附上關(guān)于數(shù)據(jù)類型的介紹)

2-SQL語句分類:DML

第四張圖是對表記錄(內(nèi)容)的增刪改,DML

插入:insert into 表名(列名)values …

下面三張表是學(xué)習(xí)SQL語句的筆記,對我來說非常重要。

比如修改列名、修改字段類型就找了很久。

筆記1


筆記2


筆記3
3-SQL語句分類:DCL


4-1-SQL語句分類:DQL

第六張圖是DQL查詢是整個SQL語句的重點。

感悟:

關(guān)于SQL我學(xué)習(xí)了兩門課程,其中“SOTON數(shù)據(jù)分析”課程目錄共18節(jié),其中10節(jié)都在講SQL的查詢語言,而在“MYSQL從入門到精通’”中課程目錄共57節(jié),其中9節(jié)在講述SQL語言的插敘。當(dāng)初我也是各種迷茫模糊,不知道應(yīng)該以哪個老師的內(nèi)容為標(biāo)準(zhǔn),甚至一度以表的新建、增加數(shù)據(jù)為核心。

后來看完《SQL必知必會》之后知道在SQL中最重要的就是DQL查詢語言。因為書中的目錄和SOTON 的課程目錄相似,重點講述的內(nèi)容也一樣,于是自己把重心也轉(zhuǎn)向了DQL查詢語言。

所以想系統(tǒng)權(quán)威的學(xué)習(xí)某類技能還是要多看書。

4-2-SQL語句分類:DQL


4-3-SQL語句分類:DQL


4-4-SQL語句分類:DQL


4-5-SQL語句分類:DQL

關(guān)于DQL語言總共有5張PPT,主要包括

1、數(shù)據(jù)查詢語言(select 列名 from 表名);

2、過濾語言(where);

3、通配符=模糊查詢(where like);

4、排序(order by),asc升序、desc降序;

5、聚合函數(shù):文本函數(shù)avg、sum、count、max、min,時間函數(shù)curtime()、now( )、datetime()

6、分組查詢:group by

7、聯(lián)結(jié)表:inner jion 、left jion

8、聯(lián)和查詢=匯總函數(shù):union(去重)、union all(不去重)

9、子查詢:一般用在from 后面,或者是where后面

下面的目錄是SOTON數(shù)據(jù)分析的課程目錄,主要以查詢?yōu)橹?/p>

*-1-SQL語句常用語言chaxu


*-2-SQL語句常用

SOTON數(shù)據(jù)分析課程里面的查詢語言雖然和“SQL從入門到精通”一樣,但這里自己還是在次總結(jié)。哈哈哈,主要是我自己的復(fù)習(xí)

1.3了解MYSQL:show databases,use 數(shù)據(jù)庫

1.4數(shù)據(jù)排序:order by、desc、asc(升序)

1.5過濾函數(shù):where、having(對分組函數(shù)過濾時用having)

1.6通配符:where like 、%

1.7處理函數(shù):文本處理函數(shù)rtime( ) len( ) upper() lower()substring() left()

1.8時間處理函數(shù):curtime、select curdate( )

1.9匯總函數(shù):max min avg count

1.10分組計算:group by

1.11子查詢:常在from后面或者where后面

1.12表聯(lián)結(jié):inner jion、left jion

1.13組合查詢:union

感悟:

之前在構(gòu)建文章框架的時候,本來是計劃第二部分為了解部分,后來文章在不斷的完善中才發(fā)現(xiàn)第二部分才是核心它幾乎總結(jié)了所有SQL語句(如同小學(xué)數(shù)學(xué)時背加減順序表),而自己之前似乎核心的第三部分屬于案例操作而已。

我們在學(xué)習(xí)時要先掌握知識點在進(jìn)行實踐操作,不然也僅僅是知其然不知其所以然。

三、SQL語句實戰(zhàn)

案例部分主要是根據(jù)soton數(shù)據(jù)分析進(jìn)行操作。需要數(shù)據(jù)的可以留言或私聊。

1、查詢包含的數(shù)據(jù)庫

1

2、查詢sys數(shù)據(jù)庫中,表sys_config中包含的列名(show columns 可查詢數(shù)據(jù)類型)

2

3、查詢city表中所有的列,并按照population 排序(降序)

3

4、查詢city表中的id name countrycode district population列,按照population降序,并且只選取100行

4

5、查詢id name countrycode district population列,并且population大于等于10萬小于等于50萬

5

6、過濾。注意and和or 在一起使用時的計算順序

6

7、通配符,篩選名字類似a_c%的id name countrycode district population列

7

8、常用文本函數(shù)

8


9、文本函數(shù)。解釋substring(name,2,3)選擇name名字3個字母,從 第二個字母開始,往后數(shù)3位

9

10、分組查詢group by 常用于from后面

10

11、對分組數(shù)據(jù)進(jìn)行過濾用having

11

12、子查詢。常用于from后面,或者where后面

12

13、返回當(dāng)前時間

13

14、聯(lián)結(jié)表inner jion\left jion


14

15、組合插敘,union不計算重復(fù)值,all union計算重復(fù)值

15

16、存儲篩選出來的數(shù)據(jù),并創(chuàng)建表

16

17、空值:is null空值、not null 非空

17

18、插入數(shù)據(jù)。在插入中對應(yīng)列的數(shù)據(jù)類型要一致

18

19、創(chuàng)建表并確定列的數(shù)據(jù)類型

19

20、保存數(shù)據(jù)。防止出錯可以加if not exixts

20

21、時間撮里面的時間可以單獨提取出來

21

22、時間處理函數(shù)

22

感悟:

為了準(zhǔn)備這次實操截屏跟著視屏敲了2遍sql語言,準(zhǔn)備了3個小時。總結(jié)一句實操很重要。(需要數(shù)據(jù)的點文本結(jié)尾領(lǐng)取利)

本來就是半瓶水,也不是很懂。感悟在前面都發(fā)揮完了哈哈,也沒自己獨特的見解,甚至自己連提問都不會

四、數(shù)據(jù)類型分類(補(bǔ)充、非重點)

1、數(shù)據(jù)類型分類:數(shù)值類型、浮點類型、字符串類型、時間日期類型

數(shù)據(jù)類型分類

2、數(shù)值類型:常用tintint、int

數(shù)值類型

3、浮點類型:常用decimal,更精確

浮點類型

4、字符串類型:常用char\varchar,十萬字的文本用text可儲存

字符串類型

5、時間類型:常用timestamp

時間類型

6、字段名修飾:常修飾數(shù)據(jù)類型

字段名修飾


ok,到這里sql就介紹完了,對于子查詢、表的創(chuàng)建、表聯(lián)結(jié)還不是很熟悉。后期邊學(xué)習(xí)新內(nèi)容邊復(fù)習(xí)sql!!

寫這篇文章有兩個目的一是做分享、二是強(qiáng)迫自己輸出為以后復(fù)習(xí)做準(zhǔn)備。所以文章內(nèi)容比較多但總而言之都在介紹sql,理解記憶還是很容易。

有一個很重要的感悟是:

多思考,只有理解到才是自己的。下次在復(fù)習(xí)的時候用自己思維寫一篇sql進(jìn)階。

接下來將開始R和統(tǒng)計學(xué)的學(xué)習(xí),附上課程數(shù)據(jù):https://pan.baidu.com/s/1HZdmBl-jamup39dFqaw2qQ

祝國慶快樂

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容