日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

從入門到精通:Python中SQLite數據庫的實戰指南!

來源: 責編: 時間:2023-11-08 17:04:06 343觀看
導讀在Python中使用SQLite進行數據庫操作時,我們將深入研究SQLite數據庫的創建、表格管理、數據插入、查詢、更新和刪除等關鍵主題,幫助你全面了解如何使用SQLite進行數據庫操作。連接到SQLite數據庫SQLite是一種嵌入式數據

E0K28資訊網——每日最新資訊28at.com

在Python中使用SQLite進行數據庫操作時,我們將深入研究SQLite數據庫的創建、表格管理、數據插入、查詢、更新和刪除等關鍵主題,幫助你全面了解如何使用SQLite進行數據庫操作。E0K28資訊網——每日最新資訊28at.com

連接到SQLite數據庫

SQLite是一種嵌入式數據庫引擎,它允許在應用程序中創建和管理本地數據庫文件。E0K28資訊網——每日最新資訊28at.com

Python提供了sqlite3模塊,可用于連接到SQLite數據庫。E0K28資訊網——每日最新資訊28at.com

import sqlite3# 連接到數據庫(如果不存在則會創建)conn = sqlite3.connect('mydatabase.db')

上述代碼創建了一個名為mydatabase.db的SQLite數據庫文件(如果該文件不存在),并與該數據庫建立連接。可以根據需要更改數據庫文件的名稱。E0K28資訊網——每日最新資訊28at.com

創建表格

在SQLite數據庫中,數據以表格的形式存儲。要創建表格,使用SQL語句。E0K28資訊網——每日最新資訊28at.com

以下是一個示例,創建一個名為"students"的表格:E0K28資訊網——每日最新資訊28at.com

# 創建一個名為"students"的表格cursor = conn.cursor()cursor.execute('''    CREATE TABLE IF NOT EXISTS students (        id INTEGER PRIMARY KEY,        name TEXT NOT NULL,        age INTEGER    )''')conn.commit()

上述代碼創建了一個包含id、name和age字段的"students"表格。cursor.execute()用于執行SQL語句,conn.commit()用于提交更改。E0K28資訊網——每日最新資訊28at.com

插入數據

要向表格中插入數據,使用INSERT INTO語句。E0K28資訊網——每日最新資訊28at.com

以下是一個插入數據的示例:E0K28資訊網——每日最新資訊28at.com

# 插入一名學生的信息cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", ('Alice', 25))conn.commit()

上述代碼將一名名為Alice的學生信息插入到"students"表格中。E0K28資訊網——每日最新資訊28at.com

查詢數據

使用SELECT語句,從表格中檢索數據。E0K28資訊網——每日最新資訊28at.com

以下是一個查詢數據的示例:E0K28資訊網——每日最新資訊28at.com

# 查詢所有學生的信息cursor.execute("SELECT * FROM students")students = cursor.fetchall()for student in students:    print(student)

上述代碼執行SELECT語句并將結果存儲在students變量中,然后通過循環打印每個學生的信息。E0K28資訊網——每日最新資訊28at.com

更新和刪除數據

更新數據,使用UPDATE語句。E0K28資訊網——每日最新資訊28at.com

刪除數據,使用DELETE語句。E0K28資訊網——每日最新資訊28at.com

以下是更新和刪除數據的示例:E0K28資訊網——每日最新資訊28at.com

# 更新學生信息cursor.execute("UPDATE students SET age = ? WHERE name = ?", (26, 'Alice'))conn.commit()# 刪除學生信息cursor.execute("DELETE FROM students WHERE name = ?", ('Alice',))conn.commit()

上述代碼分別將學生Alice的年齡更新為26歲,并從表格中刪除了名為Alice的記錄。E0K28資訊網——每日最新資訊28at.com

異常處理

在進行數據庫操作時,務必使用異常處理來處理可能發生的錯誤。E0K28資訊網——每日最新資訊28at.com

例如,如果數據庫文件無法創建或打開,或者SQL語句執行失敗,都應該處理這些異常情況。E0K28資訊網——每日最新資訊28at.com

try:    conn = sqlite3.connect('mydatabase.db')    # 數據庫操作except sqlite3.Error as e:    print("SQLite error:", e)finally:    conn.close()

數據庫事務

SQLite支持事務,這是一組數據庫操作的單元,要么全部成功,要么全部失敗。E0K28資訊網——每日最新資訊28at.com

使用commit()提交事務,使用rollback()回滾事務。E0K28資訊網——每日最新資訊28at.com

# 開始一個事務conn = sqlite3.connect('mydatabase.db')cursor = conn.cursor()try:    # 執行一些數據庫操作    cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", ('Bob', 30))    cursor.execute("UPDATE students SET age = ? WHERE name = ?", (31, 'Bob'))        # 提交事務    conn.commit()except sqlite3.Error:    # 發生錯誤,回滾事務    conn.rollback()finally:    conn.close()

數據庫索引

索引是數據庫中用于加速數據檢索的重要組成部分。在表格上創建索引以提高查詢性能。E0K28資訊網——每日最新資訊28at.com

# 在"students"表格的"name"字段上創建索引cursor.execute("CREATE INDEX IF NOT EXISTS idx_name ON students (name)")conn.commit()

數據庫備份和恢復

定期備份數據庫以防止數據丟失是一個好習慣。通過復制數據庫文件來創建備份,或者使用SQLite的備份命令。E0K28資訊網——每日最新資訊28at.com

import shutil# 創建數據庫備份shutil.copy2('mydatabase.db', 'mydatabase_backup.db')

安全性考慮

在將用戶提供的數據插入到數據庫之前,務必進行適當的輸入驗證和數據清理,以防止SQL注入攻擊。E0K28資訊網——每日最新資訊28at.com

user_input = input("Enter a student name: ")# 使用參數化查詢來避免SQL注入cursor.execute("INSERT INTO students (name) VALUES (?)", (user_input,))conn.commit()

總結

SQLite是一種輕量級的嵌入式數據庫引擎,適用于各種應用程序,從小型工具到大型數據驅動應用程序。SQLite是一個強大且靈活的數據庫引擎,對于許多應用程序都非常適用。E0K28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-17796-0.html從入門到精通:Python中SQLite數據庫的實戰指南!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 從小白到測試專家:掌握Pytest的實用技巧和優秀實踐

下一篇: Python 既是解釋型語言,也是編譯型語言

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 双流县| 彭泽县| 昭苏县| 高要市| 灵璧县| 富锦市| 灵川县| 古浪县| 尼玛县| 岳阳市| 上思县| 武清区| 岳池县| 嘉鱼县| 延津县| 巴林左旗| 海口市| 芒康县| 富川| 黄山市| 吴堡县| 泰宁县| 贺州市| 楚雄市| 文水县| 韶山市| 光泽县| 巢湖市| 集贤县| 富民县| 新竹县| 东乡族自治县| 哈尔滨市| 崇文区| 丹江口市| 平山县| 建水县| 奉贤区| 玉树县| 罗山县| 台南市|