Python 數據庫操作概述及SQLite3示例

注意:

本文摘錄自《Python高效開發實戰:Django,Tornado,Flask,Twisted》

作者:劉長龍 出版社:電子工業出版社

​ SQL標準統一了數據庫語言,但是通過Python,Java,C++等高級語言操作數據庫時需要連接每個數據庫獨特的數據庫引擎,之後才能用SQL語言對數據庫進行操作。因此,在Python中操作不同的數據庫需要引入不同的數據庫包。

​ 所有的Python的數據庫引擎都遵守DB-API規範,此規範使引用數據庫引擎後的編程方法大致相同,Python數據庫編程的步驟如下。

  • 引入Python引擎包:如import MySQLdb語句用於爲MySQL操作做準備
  • 連接數據庫:使用引擎包中的connect方法連接物理數據庫,通常在本步驟需要輸入數據庫的IP地址,端口,數據庫名,用戶名及密碼等。對於SQLite和Excel等文件數據庫,本步驟中要給出文件名。
  • 獲取遊標:在DB-API規範中,遊標(cursor)用於執行SQL語句並且管理查詢到的數據集。
  • 執行SQL命令:將SQL命令傳給遊標執行,並解析返回的結果。本步驟可以多次進行。
  • 提交或者回滾事務:在執行DML【數據操作語言】類的SQL語句時,數據庫引擎會自動啓動新事務,在一系列的操作完成之後,可以提交或回滾當前事務。
  • 關閉遊標:完成SQL操作後關閉遊標
  • 關閉數據庫連接:關閉Python客戶端和數據庫服務器的連接

SQLite3操作示例

'''
Created on 2018年8月11日

@author: Freedom
'''
import sqlite3

conn = sqlite3.connect("test.db")

#獲取遊標對象
cur = conn.cursor()

#執行一系列SQL語句
#建立一個表
cur.execute("CREATE TABLE demo(num int,str varchar(20));")

#插入一些記錄
cur.execute("INSERT INTO demo VALUES (%d, '%s')" % (1, 'aaa'))
cur.execute("INSERT INTO demo VALUES (%d, '%s')" % (2, 'bbb'))
cur.execute("INSERT INTO demo VALUES (%d, '%s')" % (3, 'ccc'))

#更新一條記錄
cur.execute("UPDATE demo SET str='%s' WHERE num = %d" % ('ddd', 3) )

#查詢
cur.execute("SELECT * FROM demo;")
rows = cur.fetchall() # fetch all
print("number of records: %d" % len(rows))

for i in rows:
    print(i)

#提交事務
conn.commit()

#關閉遊標對象
cur.close()

#關閉數據庫連接
conn.close()

結果如下

number of records: 3
(1, 'aaa')
(2, 'bbb')
(3, 'ddd')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章