Python 提供了多種模塊用於處理數據庫,包括 sqlite3、MySQLdb 和 psycopg2。這些模塊使得與數據庫的交互變得簡單,能夠高效地存儲、檢索和操作數據。只要具備基本的 Python 語言和 SQL 語法知識,就能有效地構建、修改和管理數據庫。
使用 Python 創建數據庫的步驟
步驟 1
安裝與您想要使用的數據庫管理系統相匹配的數據庫適配器。例如,如果您打算使用 SQLite,可以安裝 sqlite3 模塊。對於 MySQL,可以安裝 MySQLdb 模塊,而對於 PostgreSQL,則可以安裝 psycopg2。在本教程中,我們將考慮 SQLite、MongoDB 和 MySQLdb。要在 Python 代碼中使用 SQLite,請導入 sqlite3 模塊:
import sqlite3
安裝適當的模塊後,您需要創建一個數據庫連接,這作為 Python 代碼與數據庫之間的橋樑,允許您發送命令並接收結果。例如,在 SQLite 中,您可以使用以下代碼創建連接。
對於名為 school.db 的數據庫,連接方式如下所示:
conn = sqlite3.connect('school.db')
步驟 2
在資料庫中建立表格。要建立資料庫表格,您需要使用從連接獲得的游標物件撰寫 SQL 語句。例如,要建立一個名為 “employees” 的表格,包含 “id”、”username”、”salary”、”department” 和 “email” 等欄位,您可以使用以下程式碼:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
username TEXT,
email,
salary REAL,
department TEXT
)
''')
步驟 3
使用 SQL 命令和游標物件向資料庫插入、更新和檢索數據。要向表格添加數據,您可以使用 “INSERT INTO” SQL 語句。使用 `commit()` 方法保存數據。例如,以下程式碼將數據插入到 “employees” 表中:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO employees (username, email, salary, department) VALUES ('Joseph', 'joseph@gmail,com' 70000, 'IT')")
conn.commit()
步驟 4
從表格中檢索數據。要從表格中檢索數據,您可以使用 “SELECT” SQL 語句。例如,要從 “users” 表中檢索所有用戶,您可以使用以下程式碼:
cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
for row in rows:
print(row)
步驟 5
通過執行 CREATE VIEW 語句創建視圖,並使用游標物件的 `execute()` 方法來執行 CREATE VIEW 語句。
# 執行 CREATE VIEW 語句
cursor.execute('''
CREATE VIEW employees_view AS
SELECT name, age, department, email, FROM employees;
''')
步驟 6
關閉連接。一旦您完成對資料庫的操作,重要的是要關閉連接以釋放資源。您可以使用連接物件的 close() 方法來關閉連接。例如:
conn.commit()
conn.close()
MySQLdb 示例
要在MySQLdb中建立資料庫,首先導入MYSQLdb模組,並使用`connect()`方法連接到資料庫。接著建立一個游標,用於執行SQL命令。使用`execute()`方法來建立表格及插入資料。提交變更後,我們透過游標從表格中選擇資料,並使用`fetchall()`方法獲取所有資料。最後,關閉游標和資料庫連接。
import MySQLdb
# 連接到資料庫
conn = MySQLdb.connect(host="localhost", user="std", passwd="@12343!J", db="school.db")
# 建立游標以執行SQL命令
cursor = conn.cursor()
# 建立表格
cursor.execute("""
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
salary DECIMAL(10,2),
department VARCHAR(255)
)
""")
# 向表格插入資料
cursor.execute("""
INSERT INTO employees (name, salary, department)
VALUES
("Joseph", 70000, "IT"),
("Jane", 80000, "Marketing")
""")
# 提交資料庫變更
conn.commit()
# 從表格選擇資料
cursor.execute("SELECT * FROM employees")
# 獲取所有資料
employees = cursor.fetchall()
# 打印資料
for employee in employees:
print(employee)
# 關閉游標和連接
cursor.close()
conn.close()
MongoDB示例
導入pymongo模組,並使用`MongoClient()`類別連接到資料庫。接著獲取資料庫及集合(相當於SQL中的表格)的引用。使用`insert_many()`方法向集合插入資料。使用`find()`方法查詢集合中的資料,並透過for循環獲取資料。最後,使用`close()`方法關閉資料庫連接。
from pymongo import MongoClient
# 連接到資料庫
client = MongoClient("mongodb://localhost:27017/")
# 獲取資料庫引用
db = client["school.db"]
# 獲取集合引用(相當於SQL中的表格)
collection = db["employees"]
# 向集合插入資料
employee1 = { "name": "Joseph", "salary": 70000, "department": "IT" }
employee2 = { "name": "Jane", "salary": 80000, "department": "Marketing" }
collection.insert_many([employee1, employee2])
# 從集合查詢資料
employees = collection.find()
# 打印資料
for employee in employees:
print(employee)
# 關閉連接
client.close()
結論
總而言之,Python提供了多種模塊以與不同類型的資料庫進行互動,如MySQL和MongoDB。MySQLdb模塊用於與MySQL資料庫互動,而pymongo模塊則用於與MongoDB資料庫互動。這兩個模塊使得開發者能夠輕鬆執行諸如建立表格、插入數據、查詢數據等常見的資料庫操作。憑藉Python的簡潔性和易用性,它已成為開發數據庫驅動應用程式的熱門選擇。無論您是初學者還是經驗豐富的開發者,使用這些模塊將使在Python中操作資料庫變得輕而易舉。
Source:
https://dzone.com/articles/an-overview-of-creating-databases-with-python-2