學會最簡單的資料庫|看完這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 |