python 如何操作数据库 sql sqlite3 怎样操作数据库
?
sqlite3模塊不同于PyMySQL模塊,PyMySQL是一個python與mysql的溝通管道,需要你在本地安裝配置好mysql才能使用,而SQLite是python自帶的數據庫,不需要任何配置,使用sqlite3模塊就可以驅動它。
我們將進行連接 SQLite數據庫、創建表、插入數據、讀取數據、修改數據等操作。
1. 導入sqlite3模塊
sqlite3是內置模塊,所以不需要安裝的,直接import導入即可:
import sqlite32. 創建與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:
該表目前只有字段名和數據類型,沒有數據,執行以下語句實現:
# 建表的sql語句 sql_text_1 = '''CREATE TABLE scores(姓名 TEXT,班級 TEXT,性別 TEXT,語文 NUMBER,數學 NUMBER,英語 NUMBER);''' # 執行sql語句 cur.execute(sql_text_1)4. 向表中插入數據
建完表-scores之后,只有表的骨架,這時候需要向表中插入數據:
執行以下語句插入單條數據:
# 插入單條數據 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()返回:
備注:獲取查詢結果一般可用.fetchone()方法(獲取第一條),或者用.fetchall()方法(獲取所有條)。
6. 其他操作
對數據庫做改動后(比如建表、插數等),都需要手動提交改動,否則無法將數據保存到數據庫。
# 提交改動的方法 conn.commit()使用完數據庫之后,需要關閉游標和連接:
# 關閉游標 cur.close() # 關閉連接 conn.close()英文原版:sqlite3 — DB-API 2.0 interface for SQLite databases — Python 3.11.1 documentation
總結
以上是生活随笔為你收集整理的python 如何操作数据库 sql sqlite3 怎样操作数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 差分、偏微分方程的解法
- 下一篇: 鲸会务大会管理系统为企业提供数字化会议管