天天看點

小白學MySQL,這點基礎你都不知道?

這裡介紹的MySQL相關知識,并不是針對那些想學習DBA的同學,​

​而是針對那些想轉行、從事資料分析行業的同學​

​。下面這些知識點,是我學習MySQL資料庫時,覺得有必要掌握的一些知識點。

1、基礎概念與基礎指令

1)基礎概念

① 資料庫

按照一定資料結構,存儲和管理資料的倉庫。

② 資料庫的分類

資料庫的常見分類,是将資料庫分為​

​關系型資料庫​

​​和​

​非關系型資料庫​

​。

③ 什麼是關系型資料庫?

将複雜的關系,以簡單的二進制形式進行表示,即用行和列的形式進行表示(表格形式),其中每一行叫做記錄,列叫做字段。其中MySQL就是一種很常用的關系型資料庫。

​​

​二進制形式​

​:類似于excel表格資料,就是一種二進制形式。

④ 資料庫管理系統:DBMS

​資料庫管理系統是用于管理和操作資料庫的軟體​

​。其中,關系型資料庫管理系統(RDBMS)有Oracle、MySQL、SQL Server、DB2、IBM等。非關系型資料庫管理系統(Nosql)有redis、Hbase、mongodb、neo4j等

⑤ MySQL的介紹

​MySQL是一個關系型的資料庫管理系統​

​。最初是由mysql ab公司設計出來的産品,後來被Oracle資料庫收購了。MySQL資料庫内部采用“分庫分表”的形式管理資料。一個MySQL資料庫管理系統可以管理多個資料庫;一個資料庫中又可以存放多張表。同時MySQL開源免費,支援千萬級别的資料查詢,支援GPL(開源許可證)。

⑥ 什麼是SQL語言?

​SQL語言,全稱是“structured query language”,叫結構化查詢語言​

​,是操作資料庫的标準化語言,能夠實作對資料庫的通路何操作。

⑦ 注意MySQL和SQL的差別!

​這裡有一種錯誤的說法:你會不會MySQL?​

​其實這個說法是有問題的,MySQL指的其是資料庫管理系統,問你會不會MySQL,其實是問你會不是對資料庫進行增、删、改、查,是以這個MySQL說的就是前面提到的“SQL語言”,隻不過大家習慣性的用MySQL這種說法代替SQL。

⑧ SQL語言的分類

小白學MySQL,這點基礎你都不知道?

⑨ 什麼是“表”?

​表​

​​是某種特定類型資料的結構化清單。

這裡所說的“某種特定類型”指的是存儲在表中的資料,是一種類型的資料。你不能将顧客資訊的清單和訂單的清單都柔和在一起,存儲在同一張資料庫表中。這對于以後資料的檢索和通路變得困難,我們應該一個清單一張表。

​​

​每張資料庫都應該有一個表名,用來唯一辨別自己​

​。同一個資料庫中不能有表名相同的兩張表,但是不同的資料庫中卻可以使用相同的表名。

⑩ 什麼是“列”?

表由列組成,每一列存儲着表中某部分的資訊。​

​每一列是是表中的一個字段。一張表是由一個或 多個列組成的​

​​。

需要特别注意的是:表中的每一列應該是存儲着一條特定的資訊。例如,省份、城市、郵政編碼應該都是單獨的列。我們不能将這3個不同的資訊,都組合在一個列中,否則會給查詢增加很大的麻煩。

⑪ 什麼是“資料類型”?

​表中的每一列都應該具有相應的資料類型,資料類型标志着該列可以存儲哪些資料​

​​。

常用的資料類型有字元串類型、數值類型、日期類型。資料類型的詳細介紹,将會在後面的系列文章中給出。

資料類型有很重要的作用,它能夠幫助正确的排序資料,并且在優化磁盤使用方面騎着很重要的作用。

⑫ 什麼是“行”?

表中的資料是按行存儲的,每一行代表一個記錄。如果将表想象成一個網格,那麼網格中垂直的列為表列,水準行為表行。

2)基礎指令

① 連接配接資料庫

​MySQL資料庫是“客戶機-伺服器”類型的資料庫管理系統​

​。形象地說,一個MySQL資料庫管理系統至少存在着兩部分,一是伺服器端,這個我們看不到,卻每次使用資料庫的時候,總是從裡面擷取到資料。二是用戶端,我經常使用的用戶端有CMD視窗、Navicat,這些用戶端能夠讓我們輸入SQL語句,來進行資料的通路和擷取。是以我們在執行指令之前,需要先登入到這個資料庫管理系統。

"登入MySQL資料庫,需要以下幾個資訊"
主機名    端口    使用者名    使用者密碼(密碼)
mysql -h localhost -u root -P 3306 -p 123

-h 主機名:localhost表示伺服器在本地
-u 使用者名:使用者名root
-P 端口:預設端口3306
-p 密碼:密碼123      

在CMD黑視窗中,如果你登陸了MySQL資料庫,是如下這個界面:

小白學MySQL,這點基礎你都不知道?

② 選擇資料庫

當你剛剛連接配接上資料庫的時候,是沒有任何一個資料庫打開供你使用的。在你對任意資料庫執行操作之前,你需要先選擇一個資料庫。

"基本文法":use 資料庫名;
use huangwei;
"""
注意:在CMD黑視窗中,每一句代碼後面必須帶上一個“;”分号。但是在好多軟體中
使用SQL語句,卻不需要帶上“;”分号,有時候帶上“;”分号還會出錯。
"""      

③ 了解資料庫和表

​show databases​

​:傳回可用資料庫的清單;

小白學MySQL,這點基礎你都不知道?

​show tables​

​:傳回資料庫表的清單;

小白學MySQL,這點基礎你都不知道?

​show columns from 表名​

​:傳回某個表的具體資訊,等同于“desc+表名”;

小白學MySQL,這點基礎你都不知道?

2、SQL語句的書寫順序和執行順序

你如果想要學好SQL語句,必須首先了解SQL語句的書寫順序和執行順序。​

​SQL語句的書寫順序和執行順序不一緻,是導緻SQL寫錯、寫不出來的重要原因​

​。鑒于此,在學習SQL語句的過程中,你要好好了解”書寫順序“和”執行順序“兩個概念。

1)一個完整SQL查詢語句的書寫順序

-- "mysql語句編寫順序"
1 select distinct *
2 from 表(或結果集)
3 where …
4 group by …having…
5 order by …
6 limit start,length
-- 注:1、2屬于最基本語句,必須含有。
-- 注:1、2可以與3、4、5、6中任一搭配,也可以與3、4、5、6中多個同時搭配。      

2)一個完整的SQL語句執行順序

小白學MySQL,這點基礎你都不知道?

對上圖的解釋如下:

小白學MySQL,這點基礎你都不知道?

3)關于select和having執行順序誰前誰後的說明

小白學MySQL,這點基礎你都不知道?

注意:誰要是有說服我的說法,麻煩留言告知我一下,謝謝。