1. 程式人生 > >第五週:MySQL資料庫

第五週:MySQL資料庫

首先,先了解一下資料庫的基本概念要點:

資料庫是資料儲存的集合,表示資料結構化的資訊

列儲存表中的資訊

行儲存表的明細

主鍵是表中的唯一標識

主鍵不具備業務意義

在實際操作中,對錶的主鍵不做強制性要求,但是建議設立

主鍵必須唯一

每行必須有一個主鍵,不可為空

主鍵的值不可被修改

主鍵值被刪除後不可重用

表A的主鍵,可以作為表B的欄位,此時不受約束

資料庫的基本型別(最基礎的):char--文字 int--整數 float--小數點 date--到日的日期 timestamp--精確到秒或者毫秒

資料庫的實際操作:

MySQL的安裝略,直接按照網上教學視訊逐步安裝即可。(這裡面寫到幾個本人安裝踩到的比較低階的坑,對我一個嘎嘎新的小新手來說是坑,就是在裝win7的本的時候一次完成,基本沒什麼,在裝桌上型電腦的win10的時候,第一次裝的時候沒有workbench,重灌之後發現依然部分報錯,原因是沒有將原有檔案刪除乾淨,再後來裝的時候,仔細看了一下每一步,確定有workbench的時候,就正常裝好了。)接下來開啟workbench進行操作。

點選新建資料庫

建立一個表,對錶進行命名,建議養成好的習慣在註釋的地方進行備註,以便日後表多的時候或者別人使用的時候更好的瞭解內容。

資料編碼先擇UTF8形式的

將需要的欄位輸入進區,並調整欄位的值型別,可設定主鍵。

再將表格匯入資料庫表內(建議.csv格式的,前面提到過為什麼,因為Excel本身會有很多形式)

此時在匯入資料的時候有2中方法:

1.用workbench介面直接匯入,有點是互動性強易掌握,缺點是速度會慢需要等待。

2.直接寫程式碼的形式,有點是執行很快,缺點是程式碼需要自己一點點寫進去。(在資料量較大多行的情況下,建議直接用程式碼形式載入)

【注意】載入資料是別的編碼例如jbk形式的,匯入進去的時候就會出現亂碼的情況,當資料庫選擇的是UTF8的時候,匯入的資料也應是utf8才可。

解決方式:將Excel另存為utf8形式的.csv檔案匯入即可。

匯入的過程中會直接把表頭匯入進去,直接選擇刪除行即可。

需要注意的是:

有的時候文字過長~長出了文字限定的45,這時候將需要進行修改將45變大,否則會報錯。

匯入後檢查無誤建表儲存。

【MySQL語句】

1.核心:select查詢語句

select*form data.表名稱

*為萬用字元,代表全部

2.limit 100 限制搜尋100條資料,查詢100行

執行兩條sql語句的話,結束時用“;”進行結束

點選儲存,可將查找出來的資料進行匯出生成。

3.order by 欄位 desc

將欄位進行升序排列

加desc為降序排列

4.過濾功能where命令

where 欄位=過濾欄位

邏輯關係符號“=”“>”"<"

between 數值 and 數值:在兩個數值之間

in(“欄位”,“欄位”)特定的條件篩選兩個欄位的內容

“!=”不等於

“<>”不等於

not in (“欄位”,“欄位”)過濾掉兩個欄位的內容

多條件查詢 加and 連結 and 欄位=“”

or 或者

多重巢狀

where city=“上海”

and education=“本科”

or work=“1-3年”

【注意】條件順序

where city=“上海”

and (eudcation="本科"

or work =“1-3年”)

執行邏輯為()內進行優先進行

模糊查詢

where

欄位 like “%模糊詞%”:過濾包含模糊次的

%模糊詞:以模糊詞結尾的

模糊詞%:以模糊詞開頭的

進行分組

group by 欄位

【例項應用】

select 城市 ,count(城市ID)form data.表名

group by 城市

執行後:城市分組對應的城市ID進行計數的數量和

distinct去重

【group by 分組的高階用法】

having單純針對分組的過濾

新增佔比

as 欄位別名化將過長複雜的程式碼進行替代

結果是一樣的,但是,不能用於邏輯出發的運算,因為不能識別,不能直接用於select,但是可以在where,group by 的層面進行使用

【函式】

1.拆分技巧

left與Excel基本一致

locate()與Excel裡面的find一樣

寫巢狀的時候,建議一步一步寫,分步驟走

支援中間擷取函式substr

效果等同於上面求出薪資的上線和下線,但是“8K以上”這樣的資料就無法進行處理。

子查詢

上案例可視為一個tab進行查詢

可以進行巢狀,給表新增別名

就可以直接引用別名 bottom top 等等

資料清洗

計算為順序計算

調整一下讓程式碼優雅一些,並且有別名執行起來效果較好。

子查詢的欄位要保持一致,否則會報錯

跨表分析,使用子查詢

得到的並不是全部的明細欄位,通過用jion可以將兩張表進行關聯。

載入萬條以上的資料需要使用命令列的方式:

開啟MySQL 5.7 Command Line Client

路徑可以直接拖拽進去

指定分割符,否則會報錯

【時間操作】

進行格式的改變

MySQL可連結Power BI 進行使用,在使用的過程中,建議先將語句寫好,再在Power BI中執行得出想要新增欄位和內容。不建議直接在Power BI上面直接新增進行,因為前者為伺服器直接執行後再Power BI中顯示結果,後者則是考量自身電腦的效能。

多多結合實際進行練習,或者去課程提供的素材晚上去刷題進行聯絡。祝看到筆記的所有人都能熟悉掌握MySQL。

返回總目錄

轉自:https://ask.hellobi.com/blog/cbdingchebao/1033