Python作為資料科學主流語言,被廣泛用於資料讀存、處理、分析、建模,可以說是無所不能。

資料一般存放在本地檔案或者資料庫裡,之前介紹過如何使用python讀取本地檔案,也對# PyMySQL、cx_Oracle等資料庫連線庫做過簡單的使用分享。

這次推薦一個python自帶的輕量級資料庫模組-sqlite3,先要弄清楚什麼是SQLite:

❝ SQLite是一種用C寫的小巧的嵌入式資料庫,它的資料庫就是一個檔案。SQLite 不需要一個單獨的伺服器程序或操作的系統,不需要配置,這意味著不需要安裝或管理,所有的維護都來自於SQLite 軟體本身。

Python sqlite3資料庫模組使用攻略

sqlite3模組不同於PyMySQL模組,PyMySQL是一個python與mysql的溝通管道,需要你在本地安裝配置好mysql才能使用,而SQLite是python自帶的資料庫,不需要任何配置,使用sqlite3模組就可以驅動它。

本文我們將進行連線 SQLite資料庫、建立表、插入資料、讀取資料、修改資料等操作。

1. 匯入sqlite3模組

sqlite3是內建模組,所以不需要安裝的,直接import匯入即可:

import

sqlite3

2. 建立與SQLite資料庫的連線

使用

sqlite3。connect()

函式連線資料庫,返回一個Connection物件,我們就是透過這個物件與資料庫進行互動。 資料庫檔案的格式是

filename。db

,如果該資料庫檔案不存在,那麼它會被自動建立。 該資料庫檔案是放在電腦硬盤裡的,你可以自定義路徑,後續操作產生的所有資料都會儲存在該檔案中。

# 建立與資料庫的連線

conn

=

sqlite3

connect

‘test。db’

還可以在記憶體中建立資料庫,只要輸入特殊引數值

:memory:

即可,該資料庫只存在於記憶體中,不會生成本地資料庫檔案。

conn

=

sqlite3

connect

‘:memory:’

建立與資料庫的連線後,需要建立一個遊標

cursor

物件,該物件的

。execute()

方法可以執行sql命令,讓我們能夠進行資料操作。

#建立一個遊標 cursor

cur

=

conn

cursor

()

3. 在SQLite資料庫中建立表

這裡就要執行sql的建表語句了,我們先建立一張如下的學生成績表-scores:

Python sqlite3資料庫模組使用攻略

該表目前只有欄位名和資料型別,沒有資料,執行以下語句實現:

# 建表的sql語句

sql_text_1

=

‘’‘CREATE TABLE scores

(姓名 TEXT,

班級 TEXT,

性別 TEXT,

語文 NUMBER,

數學 NUMBER,

英語 NUMBER);’‘’

# 執行sql語句

cur

execute

sql_text_1

4. 向表中插入資料

建完表-scores之後,只有表的骨架,這時候需要向表中插入資料:

Python sqlite3資料庫模組使用攻略

執行以下語句插入單條資料:

# 插入單條資料

sql_text_2

=

“INSERT INTO scores VALUES(‘A’, ‘一班’, ‘男’, 96, 94, 98)”

cur

execute

sql_text_2

執行以下語句插入多條資料:

data

=

[(

‘B’

‘一班’

‘女’

78

87

85

),

‘C’

‘一班’

‘男’

98

84

90

),

cur

executemany

‘INSERT INTO scores VALUES (?,?,?,?,?,?)’

data

# 連線完資料庫並不會自動提交,所以需要手動 commit 你的改動conn。commit()

5. 查詢資料

我們已經建好表,並且插入了三條資料,現在來查詢特定條件下的資料:

# 查詢數學成績大於90分的學生

sql_text_3

=

“SELECT * FROM scores WHERE 數學>90”

cur

execute

sql_text_3

# 獲取查詢結果

cur

fetchall

()

返回:

Python sqlite3資料庫模組使用攻略

備註:獲取查詢結果一般可用

。fetchone()

方法(獲取第一條),或者用

。fetchall()

方法(獲取所有條)。

6. 其他操作

對資料庫做改動後(比如建表、插數等),都需要手動提交改動,否則無法將資料儲存到資料庫。

# 提交改動的方法

conn

commit

()

使用完資料庫之後,需要關閉遊標和連線:

# 關閉遊標

cur

close

()

# 關閉連線

conn

close

()

附連線connection和遊標cursor的API方法

Python sqlite3資料庫模組使用攻略