Python stellt verschiedene Module für die Arbeit mit Datenbanken zur Verfügung, darunter sqlite3, MySQLdb und psycopg2. Diese Module ermöglichen eine einfache Datenbankinteraktion zur Speicherung, Abrufung und Manipulation von Daten effizient. Sie können Datenbanken effektiv und effizient konstruieren, ändern und verwalten, wenn Sie über ein grundlegendes Verständnis der Python-Sprache und der SQL-Syntax verfügen.
Schritte zur Erstellung einer Datenbank mit Python
Schritt 1
Installieren Sie einen Datenbankadapter, der dem von Ihnen verwendeten Datenbankmanagementsystem entspricht. Wenn Sie beispielsweise SQLite verwenden möchten, können Sie das sqlite3-Modul installieren. Für MySQL können Sie das MySQLdb-Modul installieren, und für PostgreSQL können Sie psycopg2 installieren. In diesem Tutorial betrachten wir SQLite, MongoDB und MySQLdb. Um SQLite in Ihrem Python-Code zu verwenden, importieren Sie das sqlite3-Modul:
import sqlite3
Sobald Sie das entsprechende Modul installiert haben, müssen Sie eine Verbindung zur Datenbank herstellen, die als Brücke zwischen dem Python-Code und der Datenbank dient und es Ihnen ermöglicht, Befehle zu senden und Ergebnisse zu empfangen. Beispielsweise können Sie in SQLite eine Verbindung mit dem folgenden Code herstellen.
Um beispielsweise eine Verbindung zu einer Datenbank namens school.db herzustellen, verwenden Sie den unten angegebenen Code:
conn = sqlite3.connect('school.db')
Schritt 2
Erstelle Tabellen in der Datenbank. Um Tabellen in einer Datenbank zu erstellen, musst du SQL-Anweisungen mit dem Cursor-Objekt schreiben, das aus der Verbindung erhalten wurde. Zum Beispiel, um eine Tabelle namens „employees“ mit Spalten „id“, „username“, Gehalt, Abteilung und „email“ zu erstellen, verwendest du den folgenden Code:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
username TEXT,
email,
salary REAL,
department TEXT
)
''')
Schritt 3
Füge, aktualisiere und hole Daten aus der Datenbank mithilfe von SQL-Befehlen und dem Cursor-Objekt. Um Daten in die Tabellen einzufügen, kannst du den SQL-Befehl „INSERT INTO“ verwenden. Speichere die Daten mithilfe der Methode `commit()`. Zum Beispiel fügt der folgende Code Daten in die „employees“-Tabelle ein:
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()
Schritt 4
Holen Sie Daten aus den Tabellen. Um Daten aus den Tabellen abzurufen, können Sie den SQL-Befehl „SELECT“ verwenden. Zum Beispiel, um alle Benutzer aus der „users“-Tabelle abzurufen, können Sie den folgenden Code verwenden:
cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
for row in rows:
print(row)
Schritt 5
Erstelle Ansichten durch Ausführen einer CREATE VIEW-Anweisung und verwende die Methode `execute()` des Cursor-Objekts, um eine CREATE VIEW-Anweisung auszuführen.
# Führe die CREATE VIEW-Anweisung aus
cursor.execute('''
CREATE VIEW employees_view AS
SELECT name, age, department, email, FROM employees;
''')
Schritt 6
Schließe die Verbindung. Sobald du mit der Arbeit in der Datenbank fertig bist, ist es wichtig, die Verbindung zu schließen, um Ressourcen freizugeben. Du kannst die Verbindung schließen, indem du die Methode close() des Verbindungsobjekts verwendest. Zum Beispiel:
conn.commit()
conn.close()
Beispiel für MySQLdb
Um eine Datenbank in MySQLdb zu erstellen, importieren Sie das MYSQLdb-Modul und stellen eine Verbindung zur Datenbank her, indem Sie die `connect()`-Methode verwenden. Sie können einen Cursor erstellen und ihn zum Ausführen von SQL-Befehlen verwenden. Die `execute()`-Methode wird verwendet, um eine Tabelle zu erstellen und Daten in sie einzufügen. Nachdem die Änderungen bestätigt wurden, verwenden wir den Cursor, um Daten aus der Tabelle auszuwählen und alle Daten mit der `fetchall()`-Methode abzurufen. Schließlich schließen wir den Cursor und die Verbindung zur Datenbank.
import MySQLdb
# Verbindung zur Datenbank herstellen
conn = MySQLdb.connect(host="localhost", user="std", passwd="@12343!J", db="school.db")
# Cursor erstellen zum Ausführen von SQL-Befehlen
cursor = conn.cursor()
# Tabelle erstellen
cursor.execute("""
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
salary DECIMAL(10,2),
department VARCHAR(255)
)
""")
# Daten in die Tabelle einfügen
cursor.execute("""
INSERT INTO employees (name, salary, department)
VALUES
("Joseph", 70000, "IT"),
("Jane", 80000, "Marketing")
""")
# Änderungen an der Datenbank bestätigen
conn.commit()
# Daten aus der Tabelle auswählen
cursor.execute("SELECT * FROM employees")
# Alle Daten abrufen
employees = cursor.fetchall()
# Daten ausgeben
for employee in employees:
print(employee)
# Cursor und Verbindung schließen
cursor.close()
conn.close()
Beispiel für MongoDB
Importieren Sie das pymongo-Modul und stellen Sie eine Verbindung zur Datenbank her, indem Sie die `MongoClient()`-Klasse verwenden. Sie erhalten dann einen Verweis auf die Datenbank und die Sammlung, die einer Tabelle in SQL entspricht. Die `insert_many()`-Methode wird verwendet, um Daten in die Sammlung einzufügen. Die `find()`-Methode wird verwendet, um Daten aus der Sammlung abzufragen, und die Daten werden mithilfe einer for-Schleife abgerufen. Schließlich wird die Verbindung zur Datenbank mithilfe der `close()`-Methode geschlossen.
from pymongo import MongoClient
# Verbindung zur Datenbank herstellen
client = MongoClient("mongodb://localhost:27017/")
# Verweis auf die Datenbank erhalten
db = client["school.db"]
# Verweis auf die Sammlung (äquivalent zu einer Tabelle in SQL) erhalten
collection = db["employees"]
# Daten in die Sammlung einfügen
employee1 = { "name": "Joseph", "salary": 70000, "department": "IT" }
employee2 = { "name": "Jane", "salary": 80000, "department": "Marketing" }
collection.insert_many([employee1, employee2])
# Daten aus der Sammlung abfragen
employees = collection.find()
# Daten ausgeben
for employee in employees:
print(employee)
# Verbindung schließen
client.close()
Schlussfolgerung
Zusammenfassend bietet Python verschiedene Module zur Interaktion mit unterschiedlichen Datenbanken, wie MySQL und MongoDB. Das MySQLdb-Modul wird zur Interaktion mit einer MySQL-Datenbank verwendet, und das pymongo-Modul zur Interaktion mit einer MongoDB-Datenbank. Beide Module erleichtern Entwicklern das Ausführen gängiger Datenbankoperationen wie das Erstellen von Tabellen, das Einfügen von Daten, das Abfragen von Daten und mehr. Mit der Einfachheit und Benutzerfreundlichkeit von Python ist es zu einer beliebten Wahl für die Entwicklung datenbankgesteuerter Anwendungen geworden. Ob Sie Anfänger oder erfahrener Entwickler sind, die Verwendung dieser Module wird die Arbeit mit Datenbanken in Python zu einem Kinderspiel machen.
Source:
https://dzone.com/articles/an-overview-of-creating-databases-with-python-2