一、SQLite簡(jiǎn)介
SQLite是一款輕量級(jí)的數(shù)據(jù)庫(kù),旨在提供一個(gè)基本的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。SQLite一般用于本地?cái)?shù)據(jù)存儲(chǔ),例如存儲(chǔ)應(yīng)用程序的用戶信息、位置信息等。SQLite與Python的結(jié)合可以用于開發(fā)移動(dòng)應(yīng)用、網(wǎng)絡(luò)服務(wù)器、桌面應(yīng)用程序等。
Python中自帶了SQLite3模塊,可以非常方便地操作SQLite數(shù)據(jù)庫(kù)。
二、安裝SQLite3
在Python中,SQLite3是內(nèi)置的模塊,因此不需要額外的安裝。需要注意的是,如果使用的Python版本不是3.4以上版本,需要先安裝SQLite3。
# 安裝SQLite3
$ sudo apt-get install sqlite3 libsqlite3-dev
三、連接SQLite數(shù)據(jù)庫(kù)
連接SQLite數(shù)據(jù)庫(kù)可以通過Python的 connect()方法實(shí)現(xiàn)。
import sqlite3
# 連接到SQLite數(shù)據(jù)庫(kù)
conn = sqlite3.connect('example.db')
四、創(chuàng)建表格
在SQLite數(shù)據(jù)庫(kù)中創(chuàng)建表格可以使用Python的 execute()方法執(zhí)行SQL語(yǔ)句。
import sqlite3
# 連接到SQLite數(shù)據(jù)庫(kù)
conn = sqlite3.connect('example.db')
# 創(chuàng)建表格
conn.execute('''CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''')
print("Table created successfully")
# 關(guān)閉數(shù)據(jù)庫(kù)連接
conn.close()
五、插入數(shù)據(jù)
使用Python的 execute()方法執(zhí)行SQL語(yǔ)句插入數(shù)據(jù)。
import sqlite3
# 連接到SQLite數(shù)據(jù)庫(kù)
conn = sqlite3.connect('example.db')
# 插入數(shù)據(jù)
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (1, 'Paul', 32, 'California', 20000.00 )")
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (2, 'Allen', 25, 'Texas', 15000.00 )")
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )")
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (4, 'Mark', 25, 'Rich-Mond', 65000.00 )")
# 提交數(shù)據(jù)庫(kù)執(zhí)行操作
conn.commit()
print("Records created successfully")
# 關(guān)閉數(shù)據(jù)庫(kù)連接
conn.close()
六、查詢數(shù)據(jù)
使用Python的 execute()方法執(zhí)行SQL語(yǔ)句查詢數(shù)據(jù)。
import sqlite3
# 連接到SQLite數(shù)據(jù)庫(kù)
conn = sqlite3.connect('example.db')
# 查詢數(shù)據(jù)
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
print("ID = ", row[0])
print("NAME = ", row[1])
print("ADDRESS = ", row[2])
print("SALARY = ", row[3], "\n")
# 關(guān)閉數(shù)據(jù)庫(kù)連接
conn.close()
七、更新數(shù)據(jù)
使用Python的 execute()方法執(zhí)行SQL語(yǔ)句更新數(shù)據(jù)。
import sqlite3
# 連接到SQLite數(shù)據(jù)庫(kù)
conn = sqlite3.connect('example.db')
# 更新數(shù)據(jù)
conn.execute("UPDATE COMPANY set SALARY = 25000.00 where ID = 1")
conn.commit()
print("Total number of rows updated :", conn.total_changes)
# 查詢更新后的結(jié)果
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
print("ID = ", row[0])
print("NAME = ", row[1])
print("ADDRESS = ", row[2])
print("SALARY = ", row[3], "\n")
# 關(guān)閉數(shù)據(jù)庫(kù)連接
conn.close()
八、刪除數(shù)據(jù)
使用Python的 execute()方法執(zhí)行SQL語(yǔ)句刪除數(shù)據(jù)。
import sqlite3
# 連接到SQLite數(shù)據(jù)庫(kù)
conn = sqlite3.connect('example.db')
# 刪除數(shù)據(jù)
conn.execute("DELETE from COMPANY where ID = 2;")
conn.commit()
print("Total number of rows deleted :", conn.total_changes)
# 查詢刪除后的結(jié)果
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
print("ID = ", row[0])
print("NAME = ", row[1])
print("ADDRESS = ", row[2])
print("SALARY = ", row[3], "\n")
# 關(guān)閉數(shù)據(jù)庫(kù)連接
conn.close()