Python連線SQLite資料庫

lhrbest發表於2019-01-14


Python連線SQLite資料庫


SQLite資料庫更多內容: http://blog.itpub.net/26736162/viewspace-2141867/


SQLite 是一種嵌入式資料庫,它的資料庫就是一個檔案。由於 SQLite 本身是 C 寫的,而且體積很小,所以,經常被整合到各種應用程式中,甚至在 iOS Android App 中都可以整合。 Python 就內建了 SQLite3 ,所以,在 Python 中使用 SQLite ,不需要安裝任何東西,直接使用。

Python 定義了一套運算元據庫的 API 介面,任何資料庫要連線到 Python ,只需要提供符合 Python 標準的資料庫驅動即可。由於 SQLite 的驅動內建在 Python 標準庫中,因此可以直接來操作 SQLite 資料庫。

Python 中運算元據庫時,要先匯入資料庫對應的驅動,然後通過 Connection 物件和 Cursor 物件運算元據。在資料庫操作完畢之後,要確保開啟的 Connection 物件和 Cursor 物件都正確地被關閉,否則,資源就會洩露。


Python 連線到 SQLite 資料庫示例:

# 匯入SQLite驅動
import sqlite3,os
# 連線到SQLite資料庫
# 資料庫檔案是lhrtest.db
# 如果檔案不存在,那麼會自動在當前目錄建立一個資料庫檔案:
conn = sqlite3.connect('lhrtest.db')
 
# db_file = os.path.join(os.path.dirname(__file__), 'lhrtest.db')
# if os.path.isfile(db_file):
#     os.remove(db_file)
# conn = sqlite3.connect(db_file)
 
# 建立一個Cursor:
cursor = conn.cursor()
# 執行一條SQL語句,建立user表:
cursor.execute('create table user(id varchar(20) primary key, name varchar(20))')
# 繼續執行一條SQL語句,插入一條記錄:
cursor.execute('insert into user (id, name) values (\'1\', \'xiaomaimiao\')')
# 通過rowcount獲得插入的行數:
print(cursor.rowcount)
# 執行查詢語句:
cursor.execute('select * from user where id=?', ('1',))
# 獲得查詢結果集:
values = cursor.fetchall()
print(values)
# 關閉Cursor:
cursor.close()
# 提交事務:
conn.commit()
# 關閉Connection:
conn.close()


執行結果:

1
[('1', 'xiaomaimiao')]

在程式執行完畢後,會在程式的當前目錄下生成一個 lhrtest.db 檔案,如下所示:

 

可以使用 SQLLite 的客戶端檢視資料庫檔案的內容:

 

使用 Python DB API 時,只要搞清楚 Connection Cursor 物件,開啟後一定記得關閉,就可以放心地使用。

使用 Cursor 物件執行 insert update delete 語句時,執行結果由 rowcount 返回影響的行數,就可以拿到執行結果。

使用 Cursor 物件執行 select 語句時,通過 featchall() 可以拿到結果集。結果集是一個 list ,每個元素都是一個 tuple ,對應一行記錄。

如果 SQL 語句帶有引數,那麼需要把引數按照位置傳遞給 execute() 方法,有幾個 ? 佔位符就必須對應幾個引數,例如:

cursor.execute('select*from user where name=?and pwd=?',('abc','password'))

 










About Me

........................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub( http://blog.itpub.net/26736162 )、部落格園( http://www.cnblogs.com/lhrbest )和個人weixin公眾號( xiaomaimiaolhr )上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文部落格園地址: http://www.cnblogs.com/lhrbest

● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

........................................................................................................................

● QQ群號: 230161599 (滿) 、618766405

● weixin群:可加我weixin,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友 646634621 ,註明新增緣由

● 於 2019-01-01 06:00 ~ 2019-01-31 24:00 在魔都完成

● 最新修改時間:2019-01-01 06:00 ~ 2019-01-31 24:00

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

........................................................................................................................

小麥苗的微店 https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麥苗出版的資料庫類叢書 http://blog.itpub.net/26736162/viewspace-2142121/

小麥苗OCP、OCM、高可用網路班 http://blog.itpub.net/26736162/viewspace-2148098/

小麥苗騰訊課堂主頁 https://lhr.ke.qq.com/

........................................................................................................................

使用 weixin客戶端 掃描下面的二維碼來關注小麥苗的weixin公眾號( xiaomaimiaolhr )及QQ群(DBA寶典)、新增小麥苗weixin, 學習最實用的資料庫技術。

........................................................................................................................

歡迎與我聯絡

 

 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2557184/,如需轉載,請註明出處,否則將追究法律責任。

相關文章