Einleitung
MySQL ist eine der beliebtesten relationalen Datenbanken und wird häufig in der Webentwicklung und in Unternehmenslösungen eingesetzt. Für die Arbeit mit MySQL in Python wird oft der Treiber PyMySQL verwendet – eine reine Python-Implementierung des MySQL-Protokolls. Er ist einfach zu bedienen, wird aktiv gewartet und ist mit gängigen Bibliotheken wie SQLAlchemy und Pandas kompatibel.
PyMySQL ist ein MySQL-Treiber, der es ermöglicht, eine Verbindung zur Datenbank herzustellen, SQL-Abfragen auszuführen, Transaktionen zu verwalten und sich ohne komplexe Konfiguration in Web-Frameworks zu integrieren. Im Gegensatz zu anderen Treibern ist PyMySQL vollständig in Python geschrieben, was ihn plattformunabhängig und einfach zu installieren macht.
Was ist PyMySQL?
PyMySQL ist eine Client-Bibliothek für Python, die das MySQL-Client/Server-Protokoll implementiert. Sie bietet eine Schnittstelle zur Verbindung mit einem MySQL-Server und zur Ausführung von SQL-Abfragen. Die Bibliothek folgt der Spezifikation Python Database API 2.0 (PEP 249), was die Kompatibilität mit anderen Python-Anwendungen gewährleistet.
Hauptmerkmale von PyMySQL
- Reines Python: Keine externen C/C++-Abhängigkeiten erforderlich
- Kompatibilität: Unterstützt MySQL Version 5.5 und höher
- Sicherheit: Integrierter Schutz vor SQL-Injection
- Leistung: Optimiert für schnelle Abfrageausführung
- Einfachheit: Intuitive API
Installation und Verbindung zu MySQL
Installation
pip install pymysql
Für zusätzliche Funktionen wird außerdem empfohlen:
pip install pymysql[rsa] # für RSA-Authentifizierung
Verbindung zur Datenbank
import pymysql
connection = pymysql.connect(
host='localhost',
user='root',
password='password',
database='test_db',
port=3306,
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
DictCursor gibt Ergebnisse als Wörterbücher statt Tupel zurück, was die Arbeit mit Daten erleichtert.
Verbindungsparameter
| Parameter | Beschreibung | Typ | Standard |
|---|---|---|---|
host |
Host des MySQL-Servers | str | 'localhost' |
port |
Port des Servers | int | 3306 |
user |
Benutzername | str | None |
password |
Passwort | str | None |
database |
Datenbankname | str | None |
charset |
Zeichensatz | str | 'utf8mb4' |
autocommit |
Automatisches Commit | bool | False |
cursorclass |
Cursor-Klasse | class | Cursor |
Datenbank und Tabellen erstellen
# Datenbank erstellen
with connection.cursor() as cursor:
cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")
# Tabelle erstellen
with connection.cursor() as cursor:
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
age INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
""")
connection.commit()
CRUD-Operationen mit PyMySQL
Daten einfügen
# Einzelnen Datensatz einfügen
with connection Auch in der Bibliothek
Redis-Client für Node.js: ioredis – vollständige Anleitung
gRPC für TypeScript: Bibliotheken, Einrichtung und Codebeispiele
Maschinelles Lernen mit Go: Überblick über Bibliotheken für Golang
ORM für JavaScript (Node.js): Vergleich von Sequelize, TypeORM, Prisma