標籤:

你離學會操作SQL資料庫|還剩最後2招

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

閱讀本文大概需要3分鐘

前面講SQL資料庫我已經寫了3篇,我是用關係資料庫家族裡面最簡單的sqlite3作為起航,來慢慢的講SQL資料庫的使用,一層一層的由淺入深的講解,但是似乎還缺什麼,對的就是資料庫裡面有多對多的關係,也就是多表查詢和還有動態變數的插入。好今天就集合Pandas庫,一起把這2招教給你。

要點:

  • 動態變數插入
  • 多表聯合查詢

1.創建資料庫

既然我們有3個表格,那麼先創建一個資料庫名字叫mul_table.db,然後新建3個table(具體每個表的數據變數類型這裡就不細講,參考前面的學會最簡單的資料庫|看完這7招就夠了)

2.用Pandas存儲表數據

上面3個表的數據,我們就用Pandas來存儲一下.Pandas的知識小夥伴還記得嘛,前面講了很多篇哦,若不記得了,自己去歷史文章裡面回顧一下。

我們把學生,成績單和關係數據,用Pandas DataFrame存一下:

3.把Pandas數據動態插入資料庫

前面幾篇資料庫的文章,裡面的變數都是靜態的,若動態的如果插入資料庫呢,

假如我們上面的動態的數據是從文件裡面讀出來,或者從網上爬來的,或者CVS裡面讀的,如何寫入資料庫呢

很簡單,在execute裡面我們用VALUES的時候用?來代替動態變數,然後後面用一個元組參數去替換這個? .(是不是有點類似字元串格式化)

conn.execute("INSERT INTO Students (name,email) VALUES (?,?)",

(xx,xx@sohu.com));

4.多表查詢

先看一下3個表格之間的一對多的關係

學生表-------關係表

課程表-------關係表

再看一下多對多的關係

  • 一個學生可以選修多個課程,而一個課程也可以多個學生選擇
  • 對於這樣的多表查詢,SQL裡面有一個關鍵字叫JOIN ,SQLite 的 Joins 子句用於結合兩個或多個資料庫中表的記錄.
  • JOIN 是一種通過共同值來結合兩個表中欄位的手段
  • 找到共同值:

學生表---關係表:student_id

課程表---關係表:course_id

那我們就來聯合幾個表查一下:學生的名字,選修的課程和成績,並且按照成績分數從高到低排序:

>>

(ulily, uPython, 95)

(uJack, uPython, 90)

(uJames, uPython, 80)

(uJames, uGo, 72)

(uJack, uJava, 70)

(uJames, uJava, 60)

(ulily, uGo, 50)

結論:

好,SQL資料庫的多表查詢和動態插入,就講到這裡了.大家若有什麼問題,歡迎留言討論.後台有同學非常急迫的想學MySQL,其實MySQL和sqlite3大同小異,語法上非常接近,只是功能,性能上強大一些而已。不用太著急,兩大資料庫MySQL和Mongodb我都會講的,只是我寫文章喜歡循序漸進的寫,敬請期待吧

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

歷史人氣文章

Python語言如何入門

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

同學,學Python真的不能這樣學

全網爬取6500多隻基金|看看哪家基金最強

用Python破解微軟面試題|24點遊戲

一道Google的演算法題 |Python巧妙破解

推薦閱讀:

Python 家族有多龐大
Python數據分析及可視化實例之CentOS7.2+Python3x+Flask部署標準化配置流程

TAG:Python |