一、數據庫的使用筆記
數據庫的使用流程:
關於Sqlite3的介紹說明:
SQLite是一種嵌入式數據庫,它的數據庫就是一個文件。由於SQLite本身是C寫的,而且體積很小,所以,經常被集成到各種應用程序中,iOS和Android的App中都可以集成。 Python就內置了SQLite3,所以,在Python中使用SQLite,不需要安裝任何東西,直接使用。 在使用SQLite前,我們先要搞清楚幾個概念: 表是數據庫中存放關系數據的集合,一個數據庫里面通常都包含多個表,比如學生的表,班級的表,學校的表,等等。表和表之間通過外鍵關聯。 要操作關系數據庫,首先需要連接到數據庫,一個數據庫連接稱為Connection; 連接到數據庫后,需要打開游標,稱之為Cursor,通過Cursor執行SQL語句,然后,獲得執行結果。 Python定義了一套操作數據庫的API接口,任何數據庫要連接到Python,只需要提供符合Python標准的數據庫驅動即可。
常用命令有:
sqlite3.connect() | 打開一個到 SQLite 數據庫文件 database 的鏈接。 |
connection.cursor() | 創建一個 cursor |
cursor.execute() | sqlite3模塊支持兩種類型的占位符:問號和命名占位符(命名樣式) |
connection.commit() | 提交當前的事務。 |
connection.close() | 關閉數據庫連接。 |
然后是建立一個簡單的數據庫
代碼如下
1 def SQLite_Test(): 2 # =========== 連接數據庫 ============ 3 # 1. 連接本地數據庫 4 connectA = sqlite3.connect("example.db") 5 # 2. 連接內存數據庫,在內存中創建臨時數據庫 6 connectB = sqlite3.connect(":memory:") 7 8 # =========== 創建游標對象 ============ 9 cursorA = connectA.cursor() 10 cursorB = connectB.cursor() 11 12 # =========== 創建表 ============ 13 cursorA.execute("CREATE TABLE class(id real, name text, age real, sex text)") 14 cursorB.execute("CREATE TABLE family(relation text, job text, age real)") 15 16 # =========== 插入數據 ============ 17 cursorA.execute("INSERT INTO class VALUES(1,'Jock',8,'M')") 18 cursorA.execute("INSERT INTO class VALUES(2,'Mike',10,'M')") 19 # 使用 ? 占位符 20 cursorA.execute("INSERT INTO class VALUES(?,?,?,?)", (3,'Sarah',9,'F')) 21 22 families = [ 23 ['Dad', 'CEO', 35], 24 ['Mom', 'singer', 33], 25 ['Brother', 'student', 8] 26 ] 27 cursorB.executemany("INSERT INTO family VALUES(?,?,?)",families) 28 29 # =========== 查找數據 ============ 30 # 使用 命名變量 占位符 31 cursorA.execute("SELECT * FROM class WHERE sex=:SEX", {"SEX":'M'}) 32 print("TABLE class: >>>select Male\n", cursorA.fetchone()) 33 cursorA.close() 34 35 cursorB.execute("SELECT * FROM family ORDER BY relation") 36 print("TABLE family:\n", cursorB.fetchall()) 37 cursorB.close() 38 39 # =========== 斷開連接 ============ 40 connectA.close() 41 connectB.close() 42 import sqlite3 43 SQLite_Test()
效果如圖:
爬取信息並存為csv文件