標籤:

Python資料庫起航篇|零基礎起步

這是菜鳥學Python的第91篇原創文章

閱讀本文大概需要4分鐘

前面寫了幾篇關於數據分析的文章,用爬蟲爬取了全網6500多隻基金的作數據分析(全網爬取6500多隻基金|看看哪家基金最強),算是數據分析篇開了個頭。當時留下了幾個問題,其中一個問題就是我們的數據存儲用的是文件,其實正宗的做法就是用資料庫存儲.因為做數據分析特別是當你的數據量非常大時候或者後端開發的時候,肯定是要用資料庫的,所以學好資料庫非常有必要。好接下來幾篇,我將給大家介紹一下Python在資料庫裡面的使用,小夥伴們,我們快開始吧~~

要點:

  • 資料庫的分類
  • Python如何操作資料庫
  • 資料庫環境的搭建
  • 資料庫可視化的工具
  • 實例寫一個小的資料庫

1.資料庫的分類

關係資料庫和非關係資料庫

1).什麼是關係資料庫

關係型資料庫,是指採用了關係模型來組織數據的資料庫,簡單來說,關係模型指的就是二維表格模型,而一個關係型資料庫就是由二維表及其之間的聯繫所組成的一個數據組織。象銀行系統會大量的用關係資料庫.比如大家經常用的MySQL就是典型的關係資料庫.

優點:

  • 容易理解:二維表結構是非常貼近邏輯世界的一個概念,關係模型相對網狀、層次等其他模型來說更容易理解
  • 使用方便:通用的SQL語言使得操作關係型資料庫非常方便
  • 易於維護:豐富的完整性(實體完整性、參照完整性和用戶定義的完整性)大大減低了數據冗餘和數據不一致的概率

2).什麼是非關係資料庫

關係資料庫雖然很好,但是隨著互聯網大規模的爆發,弱點也越來越明顯,比如事務的一致性,多表聯查,高並發等等瓶頸很明顯。

於是NoSQL一詞橫空出世,以鍵值對存儲,且結構不固定,每一個元組可以有不一樣的欄位,每個元組可以根據需要增加一些自己的鍵值對,這樣就不會局限於固定的結構,可以減少一些時間和空間的開銷。比如MongoDb就是典型的NoSQL型資料庫(鍵值對大家想到了什麼,對json格式).

寫到這裡讓我想起了當年的IP和ATM技術之爭,其實沒有那個技術能稱王稱霸數年,獨領風騷只是一時而已,順勢而為才是王道.技術沒有最好,只有最適合時代而已.

2.Python如何操作資料庫

市面上現在主流的資料庫有Oracle,MySQL,Mongodb,Redis,SQLite,SQL Server等等,有同學會問這麼多資料庫,我的代碼怎麼移植啊,放心Python有一個標準資料庫介面為DB-API,Python DB-API為開發人員提供了資料庫應用編程介面,也就是說使用它連接各資料庫後,就可以用相同的方式操作各資料庫。

Python DB-API使用流程也非常簡單:

a).引入 API 模塊

b).獲取與資料庫的連接

c).執行相關的語句進行查詢,搜索和存儲過程

d).關閉資料庫連接

寫到這裡,我突然想起來一個故事(把大象放進冰箱),三步搞定,哈哈

3.資料庫環境的搭建,SQLite起步

明白了上面的道理之後,小夥伴肯定會迫不及待的動手操練起來,馬上就要開啟資料庫之旅,我們還是選擇從簡單的開始,先從SQLite開始學習使用,為啥要選SQLite呢,資料庫的學習看似複雜,其實就是一層紙,越過這個障礙,再學其他的資料庫都非常容易的.

SQLite是一個非常簡單,免費,快速而強大的小型資料庫(麻雀雖小五臟俱全),不需要複雜的安裝和管理,輕輕鬆鬆使用,非常適合小白入門.而且在linux和Mac上都自帶SQLite3,是不是很爽啊.

(win的同學肯定不樂意了,其實win下安裝非常簡便,大家可以百度一下,最多3分鐘搞定)

我們來看一下SQLite3長啥樣吧,打開Mac終端敲sqlite3:

4.資料庫可視化工具

有的時候需要用可視化的工具來查看我們的資料庫,特別是數據表格很大的時候,能查看SQLite的資料庫文件工具很多,我這裡推薦使用DB Browser for SQLite,可以非常直觀的去處理SQLite 文件.

大家可以去sqlitebrowser的官網下載,有win,linux,mac版本,mac版本大概13M,選擇一下下載即可.

5.創建一個資料庫

我們先來創建一個資料庫,創建資料庫的方法有很多種,我們可以用sqlite3命令行創建,也可以用Python代碼去寫一個新的資料庫,也可以用DB Browser for SQlite圖形可視化創建,對於零基礎的小白,我們先用最簡單的圖形界面創建吧.

1).打開DB Browser

step1:點擊新建資料庫

step2:取一個名字,比如Students

step3:點擊save

2).建表

一個資料庫可以用很多表,我們新建一個叫demo的表,裡面的列分別是

  • id:INTEGER(相當於int型)
  • name:TEXT(相當於string型)
  • sex:TEXT(相當於string型)
  • age:INTEGER(相當於int型)

關於SQLite裡面的語法,下一篇會細細講,這裡大家有一個大體的認識就可以了.

3).編輯表的內容

step1:點擊Brower data

step2:點擊新建記錄

step3:增加每一行的內容

然後保存退出,就會在上面第一步保存的地方(Desktop),出現了一個Students.db

6.命令行查詢資料庫內容

剛才我們新建了一個Students.db文件,裡面其實是一個3*4的二維表格,大家是不是想用sqlite方式看一下呢,好,我們下面打開一個終端,然後用sqlite3 Students.db打開看一下

  • 敲.tables

會出現一個demo表格

  • 敲select * from demo;

會出現demo表格裡面的內容

注意:

sql語句一定以;結尾

是不是和我們用圖形界面創建的表的內容,一模一樣啊.有同學問,SQLite裡面的數據格式是一個二維表,我們的NumPy,Pandas不是專門修理二維表的嗎,比如CSV,Excel文件,哇這位同學你太有才了,是的,數據分析很重要的一個過程就是,把數據清洗成表結構,存入資料庫,其實CSV文件是可以直接秒變SQL db文件的.

7.SQLite-Python|主角登場

經過前面6個主題的鋪墊,拋磚引玉了這麼久,我們的Python主角也該上場了.我們最最重要的目的就是用Python來讀寫資料庫,今天我們先來讀一下.

1).Pip 安裝SQLite3模塊

有很多種方法可以安裝,簡單的用pip install sqlite3或者pycharm裡面安裝一下

2).讀取資料庫demo表格

a).sqlite3.connect打開資料庫文件

b).獲得游標cursor

c).執行一個SQL語句,這裡是查詢全表

d).列印每一行的數據

e).不要忘記關閉游標和資料庫

結論:

好了,Python資料庫入門篇就先講到這裡了,是不是很簡單,今天很多內容沒有展開講,為的就是讓小白用戶能通俗的進入資料庫的殿堂,後面會由淺入深的慢慢一層一層講.

資料庫其實沒有想像的那麼神秘,那麼難的。大家動手搭建個環境就可以入手了,而且可視化工具雖然很方便,當然還是建議大家從命令行入手,這樣對你系統的了解資料庫的操作很有幫助.

數據分析之資料庫篇我的項目主要用的是MySQL和Mongodb,這兩者各有千秋,都是我的最愛,應用的場景稍微不一樣,我們後面會講到的.

可以關注微信公眾號 【菜鳥學Python】

更多好玩有趣的Python原創教程,趣味演算法,經驗技巧,行業動態,盡在菜鳥學Python,一起來學python吧

歷史人氣文章

Python語言如何入門關於Excel表格如何處理|這篇最用心

Python寫個迷你聊天機器人|生成器的高級用法

用Python破解微軟面試題|24點遊戲一道Google的演算法題 |Python巧妙破解

推薦閱讀:

Sublime Text 3中怎麼更換python的版本?
詳解Python元類
第十六章 API例子:用Python驅動Firefox採集網頁數據
初學python--認識裝飾器
python的descriptor的意圖是什麼,想知道python當初弄出功能的意圖?困擾我好久了。

TAG:Python |