Mysql
 sql >> Base de données >  >> RDS >> Mysql

Se connecter à MySQL avec Python

Dans cet article, nous expliquerons comment se connecter à MySQL à l'aide de Python. Python est l'un des langages de programmation les plus productifs et les plus largement utilisés aujourd'hui. Sa syntaxe simple et élégante le rend idéal pour les nouveaux programmeurs, tandis que les programmeurs expérimentés apprécient la longue liste de modules et de fonctionnalités disponibles.

MySQL est un système de gestion de base de données relationnelle basé sur SQL open source robuste qui est utilisé dans de nombreux logiciels et serveurs Web. Cet article vise à montrer comment se connecter pour utiliser Python pour se connecter à MySQL et effectuer certaines tâches de base.

Pourquoi utiliser Python pour se connecter à MySQL ?

Vous vous demandez peut-être pourquoi cette information est-elle importante ? La meilleure réponse est que ces deux composants se complètent brillamment ! La capacité des Pythons à manipuler des données à l'aide d'informations sourcées est inégalée. MySQL ou MariaDB contient les données qui peuvent être manipulées par Python. L'utilisation de ces deux facteurs pour s'améliorer et se compléter ne fait qu'augmenter la synergie globale entre eux.

Étape 1. Installation du module de connexion

Commençons par installer le module connecteur. La première étape pour connecter MySQL à Python consiste à installer le module Pip Python. Si pip n'est pas déjà installé, des instructions détaillées pour l'installation de pip sous plusieurs systèmes d'exploitation sont disponibles dans la base de connaissances Web Liquid. Une fois pip installé, nous devons ensuite installer le mysql-connector-python pilote à l'aide de la commande suivante.

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

Dans l'exemple ci-dessus, pip recherche d'autres modules dont le pilote mysql-connector-python peut avoir besoin, qui seront ensuite installés si nécessaire.

Étape 2. Importer le connecteur

L'étape suivante consiste à importer le mysql-connector-python module en utilisant cette commande dans votre code.

import mysql.connector

Cette commande indique à Python de charger et d'activer toutes les fonctions et tous les objets liés et utilisés par le module de connecteur MySQL.

Étape 3. Connectez MySQL au serveur

Notre prochaine étape consiste à appeler le mysql.connector.connect() méthode pour créer une connexion au serveur.

import mysql.connector

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

Habituellement, lors de la communication avec une base de données MySQL, nous utilisons un MySQLcursor objet (qui fait partie du module mysql-connector-python). Considérez cet objet comme un type de CLI (interface de ligne de commande) où nous pouvons taper des requêtes SQL utilisées pour interagir avec le serveur. Cette communication est réalisée à l'aide de la méthode du curseur (cursor =db.cursor() ), en appelant l'objet db que nous avons créé à la dernière étape avec la méthode connect :

import mysql.connector

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

cursor = db.cursor()

Un objet db.cursor nous permet d'exécuter des requêtes SQL. Cette requête renvoie un objet sur lequel nous pouvons itérer avec une boucle for comme ça.

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)

Il existe une base de données préexistante qui a été configurée dans un précédent didacticiel de la base de connaissances sur les vues SQL. Il contient des informations sur une série de voitures de stock fictives. En utilisant le script ci-dessus, les résultats ressembleraient à ceci :

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

Nous pouvons utiliser d'autres commandes avec le curseur courant (db.cursor() ) pour interagir avec cette base de données. Ici, nous extrayons une liste des tables et des vues de la même base de données.

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',)
Remarque :Le « u » devant le résultat indique qu'il s'agit d'une chaîne Unicode.

Insérer des données avec l'objet curseur MySQL

Maintenant que nous pouvons récupérer la structure de la base de données, nous pouvons utiliser l'objet curseur pour exécuter d'autres commandes. Il y avait une section où les pilotes de la saison de course étaient insérés dans la base de données. Cela a été fait avec cette requête SQL.

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

Pour exécuter cette même requête SQL en utilisant Python, nous passons simplement cette chaîne à la méthode d'exécution de notre curseur . Une bonne méthode pour s'entraîner consiste à affecter une variable comme texte de la requête, puis à appeler execute sur l'objet curseur. Vous devez également demander à mysql de valider les modifications en appelant db.commit() comme ceci.

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()

Les résultats :

id nom

numéro de voiture

1 Copain Boulanger

28

2

Dale Earnhardt Jr

8
3

Ricky Rudd

88

Lorsque nous insérons plusieurs lignes, l'interface propose la méthode "executemany" , ce qui nous permet de créer un tableau de valeurs à insérer et une chaîne spécialement formatée avec le symbole %s remplaçant les valeurs des tableaux. Cet exemple est identique à l'encart précédent :

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()

Les valeurs du tableau 'drivers' sont passées une par une dans l'instruction 'sql' puis passées dans 'executemany() '

Utiliser Sélectionner

Comme d'autres instructions SQL, nous pouvons utiliser l'objet curseur pour exécuter des sélections. Après une sélection, un curseur gagne quelques nouvelles méthodes, y compris fetchall() et fetchone() . Le fetchall() renvoie une liste de tous les résultats. Chaque résultat est une liste avec les colonnes correspondantes dans l'ordre dans lequel elles ont été sélectionnées. La méthode fetchone() renvoie le résultat suivant du jeu de résultats.

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()

for x in results:
        print(x)

Résultats :

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

Si nous voulons un résultat à la fois, nous pouvons utiliser fetchone()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchone()

print(results)

Résultats :

(u'Buddy Baker', 28)

Mettre à jour et supprimer des données

Tout comme la commande insert, les commandes delete et update utilisent un objet curseur et doivent appeler db.commit(); sinon, elles sont similaires aux autres commandes SQL.

Mettre à jour :

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)

Supprimer :

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)

Conclusion

Alors, quels sont les plats à emporter de cet article? L'utilisation de Python pour interagir avec MySQL est un moyen simple et efficace de manipuler les données de manière complémentaire à chaque système.

Avoir des questions? Nous sommes fiers d'être The Most Helpful Humans In Hosting™ ! Notre personnel d'assistance technique est toujours disponible pour vous aider à résoudre tout problème lié à cet article, 24 heures sur 24, 7 jours sur 7, 365 jours par an.

Nous sommes disponibles, via nos systèmes de billetterie à [email protected], par téléphone (au 800-580-4986), ou via un LiveChat ou toute autre méthode que vous préférez. Nous travaillons dur pour vous afin que vous puissiez vous détendre.