Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mit Python eine Verbindung zu MySQL herstellen

In diesem Artikel werden wir besprechen, wie Sie mit Python eine Verbindung zu MySQL herstellen. Python ist eine der produktivsten und am weitesten verbreiteten Programmiersprachen, die heute verwendet wird. Seine einfache und elegante Syntax macht es ideal für neue Programmierer, während erfahrene Programmierer ihre Freude an der umfangreichen Liste verfügbarer Module und Funktionalitäten haben.

MySQL ist ein robustes Open-Source-SQL-basiertes, relationales Datenbankverwaltungssystem, das in vielen Softwareprogrammen und Webservern verwendet wird. Dieser Artikel soll zeigen, wie man eine Verbindung herstellt, um mit Python eine Verbindung zu MySQL herzustellen und einige grundlegende Aufgaben auszuführen.

Warum Python zur Verbindung mit MySQL verwenden?

Sie fragen sich vielleicht, warum diese Informationen wichtig sind? Die beste Antwort ist, diese beiden Komponenten ergänzen sich hervorragend! Die Fähigkeit von Pythons, Daten mithilfe von Quellinformationen zu manipulieren, ist konkurrenzlos. MySQL oder MariaDB enthalten die Daten, die von Python manipuliert werden können. Die Verwendung dieser beiden Faktoren, um sich gegenseitig zu verstärken und zu ergänzen, erhöht nur die Gesamtsynergie zwischen ihnen.

Schritt 1. Installieren des Anschlussmoduls

Beginnen wir mit der Installation des Anschlussmoduls. Der erste Schritt bei der Verbindung von MySQL mit Python ist die Installation des Pip-Python-Moduls. Wenn Sie pip noch nicht installiert haben, finden Sie detaillierte Anweisungen zur Installation von pip unter mehreren Betriebssystemen in der Liquid Web Knowledge Base. Sobald wir pip installiert haben, müssen wir den mysql-connector-python installieren Treiber mit dem folgenden Befehl.

root@host:~# pip install mysql-connector-python 
Collecting mysql-connector-python
  Downloading mysql_connector_python-8.0.21-cp27-cp27mu-manylinux1_x86_64.whl (16.0 MB)
     |################################| 16.0 MB 13.7 MB/s 
Collecting protobuf>=3.0.0
  Downloading protobuf-3.12.2-cp27-cp27mu-manylinux1_x86_64.whl (1.3 MB)
     |################################| 1.3 MB 17.0 MB/s 
Requirement already satisfied: setuptools in /usr/local/lib/python2.7/dist-packages (from protobuf>=3.0.0->mysql-connector-python) (44.1.1)
Collecting six>=1.9
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Installing collected packages: six, protobuf, mysql-connector-python
Successfully installed mysql-connector-python-8.0.21 protobuf-3.12.2 six-1.15.0

Im obigen Beispiel sucht pip nach anderen Modulen, die der mysql-connector-python-Treiber möglicherweise benötigt, die dann bei Bedarf installiert werden.

Schritt 2. Connector importieren

Der nächste Schritt besteht darin, mysql-connector-python zu importieren Modul mit diesem Befehl in Ihrem Code.

import mysql.connector

Dieser Befehl weist Python an, alle Funktionen und Objekte zu laden und zu aktivieren, die sich auf das MySQL-Connector-Modul beziehen und von diesem verwendet werden.

Schritt 3. MySQL mit dem Server verbinden

Unser nächster Schritt ist der Aufruf von mysql.connector.connect() Methode, um eine Verbindung zum Server herzustellen.

import mysql.connector

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password=’password’
)

Normalerweise verwenden wir bei der Kommunikation mit einer MySQL-Datenbank einen MySQLcursor -Objekt (das Teil des mysql-connector-python-Moduls ist). Stellen Sie sich dieses Objekt als eine Art CLI (Befehlszeilenschnittstelle) vor, in die wir SQL-Abfragen eingeben können, die zur Interaktion mit dem Server verwendet werden. Diese Kommunikation erfolgt über die Cursor-Methode (cursor =db.cursor() ). ), Aufruf des im letzten Schritt erstellten db-Objekts mit der connect-Methode:

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password=’password’'
)

cursor = db.cursor()

Ein db.cursor-Objekt ermöglicht es uns, SQL-Abfragen auszuführen. Diese Abfrage gibt ein Objekt zurück, über das wir mit einer for-Schleife iterieren können so.

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password=’password’'
)

cursor = db.cursor()

cursor.execute("show databases")

for x in cursor:
	print(x)

Es gibt eine bereits vorhandene Datenbank, die in einem früheren KB-Tutorial zu SQL-Ansichten eingerichtet wurde. Es enthält Informationen über eine fiktive Stock-Car-Serie. Unter Verwendung des obigen Skripts würden die Ergebnisse wie folgt aussehen:

# python mysql-test.py 
(u'information_schema',)
(u'races',)
(u'sys',)

Wir können andere Befehle mit dem aktuellen Cursor verwenden (db.cursor() ), um mit dieser Datenbank zu interagieren. Hier ziehen wir eine Liste der Tabellen und Ansichten aus derselben Datenbank.

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password='password'
)

cursor = db.cursor()


cursor.execute("use races")
cursor.execute("show tables")
for x in cursor:
        print(x)


The output results look like this.

# python mysql-test.py 
(u'all_finishes',)
(u'drivers',)
(u'finishes',)
(u'race_winners',)
(u'races',)
(u'standings_leader',)
(u'tracks',)
Hinweis:Das „u“ vor dem Ergebnis zeigt an, dass es sich um einen Unicode-String handelt.

Einfügen von Daten mit dem MySQL-Cursor-Objekt

Nachdem wir nun die Struktur der Datenbank abrufen können, können wir das Cursorobjekt verwenden, um andere Befehle auszuführen. Es gab einen Bereich, in dem die Fahrer für die Rennsaison in die Datenbank eingefügt wurden. Dies geschah mit dieser SQL-Abfrage.

insert into drivers (name,car_number) values
  ('Buddy Baker',28),
  ('Dale Earnhardt Jr.',8),
  ('Ricky Rudd',88);

Um dieselbe SQL-Abfrage mit Python auszuführen, übergeben wir diese Zeichenfolge einfach an die Ausführungsmethode unseres Cursors . Eine gute Übungsmethode besteht darin, eine Variable als Text der Abfrage zuzuweisen und dann execute für das Cursorobjekt aufzurufen. Sie müssen mysql auch anweisen, die Änderungen zu übernehmen, indem Sie db.commit() wie folgt aufrufen.

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password='password'
)

cursor = db.cursor()
cursor.execute("use races")


query = "insert into drivers (name,car_number) values ('Buddy Baker',28),('Dale Earnhardt Jr.',8),('Ricky Rudd',88);"

cursor.execute(query)

db.commit()

Die Ergebnisse:

id name

Autonummer

1 Buddy Baker

28

2

Dale Earnhardt Jr.

8
3

Ricky Rudd

88

Wenn wir mehrere Zeilen einfügen, bietet die Schnittstelle die Methode „executemany“ an , was es uns ermöglicht, ein Array von einzufügenden Werten und eine speziell formatierte Zeichenfolge mit dem %s-Symbol zu erstellen, das die Werte aus den Arrays ersetzt. Dieses Beispiel ist identisch mit dem vorherigen insert:

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password='password'
)

cursor = db.cursor()
cursor.execute("use races")


query = "insert into drivers (name,car_number) values ('Buddy Baker',28),('Dale Earnhardt Jr.',8),('Ricky Rudd',88);"

cursor.execute(query)

db.commit()

Die Werte aus dem Array „drivers“ werden nacheinander an die „sql“-Anweisung und dann an „executemany()“ übergeben ’

Verwenden von Auswählen

Wie andere SQL-Anweisungen können wir das Cursor-Objekt verwenden, um Auswahlen auszuführen. Nach einer Auswahl erhält ein Cursor einige neue Methoden, einschließlich fetchall() und fetchone() . fetchall() gibt eine Liste aller Ergebnisse zurück. Jedes Ergebnis ist eine Liste mit den entsprechenden Spalten in der Reihenfolge, in der sie ausgewählt wurden. Die Methode fetchone() gibt das nächste Ergebnis aus der Ergebnismenge zurück.

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()

for x in results:
        print(x)

Ergebnisse:

(u'Buddy Baker', 28)
(u'Dale Earnhardt Jr.', 8)
(u'Ricky Rudd', 88)

Wenn wir jeweils nur ein Ergebnis wünschen, können wir fetchone() verwenden

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchone()

print(results)

Ergebnisse:

(u'Buddy Baker', 28)

Aktualisieren und Löschen von Daten

Ähnlich wie der Insert-Befehl verwenden die Delete- und Update-Befehle ein Cursor-Objekt und müssen db.commit() aufrufen; ansonsten ähneln sie anderen SQL-Befehlen.

Aktualisieren :

sql = "update drivers set car_number = 1 where car_number = 88"
cursor.execute(sql)
db.commit()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()
for x in results:
        print(x)

(u'Buddy Baker', 28)
(u'Dale Earnhardt Jr.', 8)
(u'Ricky Rudd', 1)

Löschen :

sql = "delete from drivers where car_number = 8"
cursor.execute(sql)
db.commit()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()
for x in results:
        print(x)

(u'Buddy Baker', 28)
(u'Ricky Rudd', 1)

Schlussfolgerung

Also, was sind die Takeaways dieses Artikels? Die Verwendung von Python zur Interaktion mit MySQL ist eine einfache und effektive Möglichkeit, Daten so zu manipulieren, dass sie jedes System ergänzen.

Habe Fragen? Wir sind stolz darauf, The Most Helpful Humans In Hosting™ zu sein! Unser technisches Support-Personal steht Ihnen jederzeit zur Verfügung, um Ihnen bei Problemen mit diesem Artikel zu helfen, 24 Stunden am Tag, 7 Tage die Woche, 365 Tage im Jahr.

Wir sind über unser Ticketsystem unter [email protected], telefonisch (unter 800-580-4986) oder über einen LiveChat oder eine andere von Ihnen bevorzugte Methode erreichbar. Wir arbeiten hart für Sie, damit Sie sich entspannen können.