標籤:

學會最簡單的資料庫|看完這7招就夠了

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

閱讀本文大概需要4分鐘

前面一篇講了資料庫的基本介紹,目前流行的三大資料庫有MySQL和Mongodb(還有一個以後告訴你),除了之外還有最簡單的適合小白入手的sqlite3。對於初學者來說,我一直堅持學東西循序漸進,不要上來一口吃一個胖子,太貪心會噎著的。學資料庫我依然會從簡單的sqlite上手開始寫,把sqlite練好之後再學其他資料庫會簡單很多,相信大家的sqlite環境已經搭建好了,那我們今天就一起來操練一下sqlite資料庫吧

資料庫的基本操作,無非就是下面7招:

  • 創建
  • 讀取
  • 插入
  • 更新
  • 查詢
  • 排序
  • 刪除

我們先要引入sqlite3這個模塊,這個模塊是Python自帶的,不需要安裝(上一篇我寫錯了,好多好心的小夥伴提醒我,非常感謝糾正),然後創建資料庫很簡單,我們假設我們要把下面一個「工資單」表格數據存入資料庫,如何操作呢,下面一步一步來操作,follow me !

1.創建資料庫

sqlite3.connect(database [,timeout ,other optional arguments])

1).這個函數主要是打開一個到SQLite資料庫文件的鏈接

若成功返回一個對象,如果給定的資料庫名稱不存在,則該調用將創建一個資料庫。如果我不想在當前目錄中創建資料庫,那麼你可以指定一個路徑即可.

2).資料庫好了,我們要建表

資料庫其實就是一個一個表,然後維護這些表之間的愛和情仇,如何建表呢,簡單,用SQL語句建表,SQL語句還是很通俗易懂的:

首先創建一個table名字叫USERS,如果不存在就創建它:

然後這個表有6列,每一個分別是:

  • ID #為主key,就是唯一標識表中某一條記錄,不能重複,類似身份證
  • NAME #類型是TEXT,也就是字元串,是可變長度的字元串
  • AGE #類型是INT,也就是整型
  • SEX #類型是字元串,固定長度為10個位元組,不管用不用都分配10個位元組
  • CITY #類型是字元串,固定長度為30個位元組,不管用不用都分配30個位元組
  • SALARY #類型是浮點數

接著插入數據:

INSERT INTO USERS (ID,NAME,AGE,SEX,CITY,SALARY) VALUES(1,Leo,32,Male,ShangHai,12000)

也是一個SQL語句,和前面的key要對應,按順序寫入我們的表格內容

然後提交commit:

connection.commit()

辛苦寫了半天,要提交當前的事務。如果忘記了,對不起那麼你所做的任何動作對資料庫連接來說是不可見的

最後關閉資料庫

connection.close(),千萬不要忘記關閉

2.讀取資料庫

創建好了資料庫之後,我們要讀一下,讀數據就簡單多了,我們用SELECT語句

SQLite 的 SELECT 語句,可以方便從 SQLite 資料庫表中獲取數據,以結果表的形式返回數據。這些結果表也被稱為結果集,然後我們列印出這個結果集裡面的每一行數據.

select * from USERS 查詢表裡面的所有數據,返回給一個游標cursor

循環列印出每一行的數據

3.插入資料庫

如果我們要添加一行新的內容到資料庫中怎麼辦,用INSERT語句

conn.execute("INSERT INTO USERS (ID,NAME,AGE,SEX,CITY,SALARY) VALUES (10,Lily,30,Female,GuangZhou, 13000)");

比如我們增加一個姑娘的工資到資料庫中,就要依此把每一列的內容寫入表中

切記:確保值的順序與列在表中的順序一致

4.更新資料庫

資料庫經常要更新,比如ID=10 的Lily同學工資猛漲了,幫她更新一下資料庫吧,我們用Update 語句.

conn.execute("UPDATE USERS set SALARY =30000.00 WHERE ID=10");

SQLite 的 UPDATE 查詢用於修改表中的記錄,一般都是配合使用帶有 WHERE 子句的 UPDATE 查詢然後指定的那一行,這裡我們是要更新ID=10,要不然你會把所有人的工資都更新了,那老闆就哭了~~

5.查詢資料庫

資料庫搞好了,我們是要查詢是必須呢,怎麼查詢呢,我們用Select 語句

跟前面的讀數據有點類似,只是上面是全盤讀取,我們這邊是按照某一個條件讀取.

比如我們要查表,年齡大於30歲,並且工資在10000以上的同學

cursor = conn.execute("SELECT AGE,SALARY from USERS "

"WHERE AGE>30 and SALARY >=10000")

用一個複合的邏輯判斷一下就搞定了,是不是象英語一樣表訴,SQL語言還是很簡潔的.

6.排序資料庫

資料庫的排序也是經常要用的,我們要按照某一些規則來排序,比如按照工資排序,比如按照年齡排序,怎麼排呢,用ORDER BY語句

SQLite 里的 ORDER BY 子句是用來按照一個或多個列按升序或降序來排列

比如按工資排序:

conn.execute("SELECT id, name, CITY, salary from USERS ORDER BY salary DESC ")

>>

(10, uLily, uGuangZhou, 30000.0)

(2, uJack, uBeiJing, 15000.0)

(1, uLeo, uShangHai, 12000.0)

(4, uMartin, uNanJing, 9500.0)

(3, uLulu, uChengDu, 8000.0)

7.刪除資料庫

上面說了6種,還差一種經常會用的操作,就是刪除資料庫裡面的內容,前面一開始就就用了一招刪除整個表,如果想刪除一個表裡面的一行怎麼操作呢,用Delete語句

SQLite 的 DELETE 查詢用於刪除表中已有的記錄,一般也是用帶有 WHERE 子句的 DELETE 查詢來刪除選定行,否則所有的記錄都會被刪除。

比如我們刪除ID=2同學的記錄:

conn.execute("DELETE from USERS where ID=2")

切記要conn.commit()

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

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

歷史人氣文章

Python語言如何入門

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

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

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

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

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

推薦閱讀:

Python 高級編程:理解生成器
Python Generator漫談
在 Pycom 使用 Python + Micropython + MQTT 進行物聯網編程
Python 字元編碼的二三事
乾貨|Scikit-Learn的五種機器學習方法使用案例(python代碼)

TAG:Python |