使用Python建立資料庫概覽

Python 提供了多種模塊用於處理數據庫,包括 sqlite3、MySQLdb 和 psycopg2。這些模塊使得與數據庫的交互變得簡單,能夠高效地存儲、檢索和操作數據。只要具備基本的 Python 語言和 SQL 語法知識,就能有效地構建、修改和管理數據庫。

使用 Python 創建數據庫的步驟

步驟 1

安裝與您想要使用的數據庫管理系統相匹配的數據庫適配器。例如,如果您打算使用 SQLite,可以安裝 sqlite3 模塊。對於 MySQL,可以安裝 MySQLdb 模塊,而對於 PostgreSQL,則可以安裝 psycopg2。在本教程中,我們將考慮 SQLite、MongoDB 和 MySQLdb。要在 Python 代碼中使用 SQLite,請導入 sqlite3 模塊:

Python

 

import sqlite3

安裝適當的模塊後,您需要創建一個數據庫連接,這作為 Python 代碼與數據庫之間的橋樑,允許您發送命令並接收結果。例如,在 SQLite 中,您可以使用以下代碼創建連接。

對於名為 school.db 的數據庫,連接方式如下所示:

Python

 

conn = sqlite3.connect('school.db')

步驟 2

在資料庫中建立表格。要建立資料庫表格,您需要使用從連接獲得的游標物件撰寫 SQL 語句。例如,要建立一個名為 “employees” 的表格,包含 “id”、”username”、”salary”、”department” 和 “email” 等欄位,您可以使用以下程式碼:

Python

 

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” 表中:

Python

 

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” 表中檢索所有用戶,您可以使用以下程式碼:

Python

 

cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
for row in rows:

    print(row)

步驟 5

通過執行 CREATE VIEW 語句創建視圖,並使用游標物件的 `execute()` 方法來執行 CREATE VIEW 語句。

Python

 

# 執行 CREATE VIEW 語句
cursor.execute('''

CREATE VIEW employees_view AS

SELECT name, age, department, email, FROM employees;

''')

步驟 6 

關閉連接。一旦您完成對資料庫的操作,重要的是要關閉連接以釋放資源。您可以使用連接物件的 close() 方法來關閉連接。例如:

Python

 

conn.commit()
conn.close()

MySQLdb 示例

要在MySQLdb中建立資料庫,首先導入MYSQLdb模組,並使用`connect()`方法連接到資料庫。接著建立一個游標,用於執行SQL命令。使用`execute()`方法來建立表格及插入資料。提交變更後,我們透過游標從表格中選擇資料,並使用`fetchall()`方法獲取所有資料。最後,關閉游標和資料庫連接。

Python

 

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()`方法關閉資料庫連接。

Python

 

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