Mysql
 sql >> Database >  >> RDS >> Mysql

Connessione a MySQL usando Python

In questo articolo, discuteremo di come connettersi a MySQL usando Python. Python è uno dei linguaggi di programmazione più produttivi e ampiamente utilizzati oggi in uso. La sua sintassi semplice ed elegante lo rende ideale per i nuovi programmatori, mentre i programmatori esperti apprezzano l'ampio elenco di moduli e funzionalità disponibili.

MySQL è un robusto sistema di gestione di database relazionali open source basato su SQL che viene utilizzato in molti programmi software e server Web. Questo articolo mira a mostrare come connettersi per utilizzare Python per connettersi a MySQL ed eseguire alcune attività di base.

Perché usare Python per connettersi a MySQL?

Ti starai chiedendo, perché queste informazioni sono importanti? La risposta migliore è che queste due componenti si completano brillantemente a vicenda! La capacità di Python di manipolare i dati utilizzando le informazioni di origine non ha rivali. MySQL o MariaDB contengono i dati che possono essere manipolati da Python. L'uso di questi due fattori per migliorarsi e completarsi a vicenda non fa che aumentare la sinergia complessiva tra di loro.

Fase 1. Installazione del modulo connettore

Iniziamo installando il modulo connettore. Il primo passo per connettere MySQL con Python è installare il modulo Pip Python. Se non hai già installato pip, puoi trovare istruzioni dettagliate per l'installazione di pip in più sistemi operativi nella Knowledge Base di Liquid Web. Una volta installato pip, dobbiamo installare mysql-connector-python driver utilizzando il comando seguente.

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

Nell'esempio sopra, pip verifica la presenza di altri moduli che potrebbero essere richiesti dal driver mysql-connector-python, che verranno quindi installati se necessario.

Passaggio 2. Importa connettore

Il passaggio successivo consiste nell'importare mysql-connector-python modulo usando questo comando all'interno del tuo codice.

import mysql.connector

Questo comando dice a Python di caricare e abilitare tutte le funzioni e gli oggetti relativi e utilizzati dal modulo del connettore MySQL.

Passaggio 3. Connetti MySQL al server

Il nostro prossimo passo è chiamare mysql.connector.connect() metodo per creare una connessione al server.

import mysql.connector

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

Di solito, quando comunichiamo con un database MySQL, utilizziamo un MySQLcursor oggetto (che fa parte del modulo mysql-connector-python). Pensa a questo oggetto come a un tipo di CLI (interfaccia della riga di comando) in cui possiamo digitare query SQL utilizzate per interagire con il server. Questa comunicazione viene eseguita utilizzando il metodo cursor (cursor =db.cursor() ), richiamando l'oggetto db che abbiamo creato nell'ultimo passaggio con il metodo connect:

import mysql.connector

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

cursor = db.cursor()

Un oggetto db.cursor ci consente di eseguire query SQL. Questa query restituisce un oggetto su cui possiamo scorrere con un ciclo for così.

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)

Esiste un database preesistente che è stato impostato in un precedente tutorial KB sulle viste SQL. Contiene informazioni su una serie immaginaria di stock car. Utilizzando lo script sopra, i risultati sarebbero simili a questo:

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

Possiamo usare altri comandi con il cursore corrente (db.cursor() ) per interagire con questo database. Qui estraiamo un elenco di tabelle e viste dallo stesso database.

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',)
Nota:la "u" davanti al risultato indica che si tratta di una stringa Unicode.

Inserimento di dati con l'oggetto MySQL Cursor

Ora che possiamo recuperare la struttura del database, possiamo usare l'oggetto cursore per eseguire altri comandi. C'era una sezione dove venivano inseriti nel database i piloti per la stagione agonistica. È stato fatto utilizzando questa query SQL.

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

Per eseguire la stessa query SQL usando Python, basta passare questa stringa al metodo di esecuzione del nostro cursore . Un buon metodo per esercitarsi nell'utilizzo di questo è assegnare una variabile come testo della query e quindi chiamare l'esecuzione sull'oggetto cursore. Devi anche istruire mysql per eseguire il commit delle modifiche chiamando db.commit() in questo modo.

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

I risultati:

id nome

numero dell'auto

1 Buddy Baker

28

2

Dale Earnhardt Jr.

8
3

Ricky Rudd

88

Quando inseriamo più righe, l'interfaccia offre il metodo "executemany" , che ci permette di creare un array di valori da inserire e una stringa formattata in modo speciale con il simbolo %s che sostituisce i valori degli array. Questo esempio è identico all'inserto precedente:

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

I valori dell'array "driver" vengono passati uno per uno nell'istruzione "sql" e quindi passati in "executemany() '

Utilizzo di Seleziona

Come altre istruzioni SQL, possiamo usare l'oggetto cursore per eseguire selezioni. Dopo una selezione, un cursore acquisisce alcuni nuovi metodi, incluso fetchall() e fetchone() . Il fetchall() restituisce un elenco di tutti i risultati. Ogni risultato è un elenco con le colonne corrispondenti nell'ordine in cui sono state selezionate. Il metodo fetchone() restituisce il risultato successivo dal set di risultati.

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()

for x in results:
        print(x)

Risultati:

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

Se vogliamo un risultato alla volta, possiamo usare fetchone()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchone()

print(results)

Risultati:

(u'Buddy Baker', 28)

Aggiornamento ed eliminazione dei dati

Proprio come il comando di inserimento, i comandi di eliminazione e aggiornamento utilizzano un oggetto cursore e devono chiamare db.commit(); in caso contrario, sono simili ad altri comandi SQL.

Aggiorna :

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)

Elimina :

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)

Conclusione

Allora, quali sono gli asporto di questo articolo? L'uso di Python per interagire con MySQL è un modo semplice ed efficace per manipolare i dati in modo da integrare ogni sistema.

Hai domande? Siamo orgogliosi di essere gli esseri umani più utili nell'hosting™! Il nostro personale di supporto tecnico è sempre disponibile per qualsiasi problema relativo a questo articolo, 24 ore al giorno, 7 giorni alla settimana 365 giorni all'anno.

Siamo disponibili, tramite i nostri sistemi di ticketing all'indirizzo [email protected], per telefono (800-580-4986), o tramite una LiveChat o qualsiasi metodo tu preferisca. Lavoriamo sodo per te affinché tu possa rilassarti.