Database di Azure per MySQL: usare Python per connettersi ed eseguire query sui datiAzure Database for MySQL: Use Python to connect and query data

Questa guida introduttiva illustra come usare Python per connettersi a un database di Azure per MySQL.This quickstart demonstrates how to use Python to connect to an Azure Database for MySQL. Usa istruzioni SQL per eseguire query, inserire, aggiornare ed eliminare dati nel database dalle piattaforme Mac OS, Ubuntu Linux e Windows.It uses SQL statements to query, insert, update, and delete data in the database from Mac OS, Ubuntu Linux, and Windows platforms. Questo argomento presuppone che si abbia familiarità con lo sviluppo con Python, ma non con Database di Azure per MySQL.This topic assumes that you are familiar with developing using Python and that you are new to working with Azure Database for MySQL.

prerequisitiPrerequisites

Questa guida introduttiva usa le risorse create in una delle guide seguenti come punto di partenza:This quickstart uses the resources created in either of these guides as a starting point:

Installare Python e il connettore MySQLInstall Python and the MySQL connector

Installare Python e il connettore MySQL per Python nel computer.Install Python and the MySQL connector for Python on your own machine. A seconda della piattaforma, seguire le istruzioni nella sezione appropriata:Depending on your platform, follow the steps in the appropriate section:

WindowsWindows

  1. Scaricare e installare Python 2.7 da python.org.Download and Install Python 2.7 from python.org.
  2. Verificare l'installazione di Python avviando il prompt dei comandi.Check the Python installation by launching the command prompt. Eseguire il comando C:\python27\python.exe -V usando l'opzione della V maiuscola per visualizzare il numero di versione.Run the command C:\python27\python.exe -V using the uppercase V switch to see the version number.
  3. Installare il connettore Python per MySQL corrispondente alla versione di Python da mysql.com.Install the Python connector for MySQL from mysql.com corresponding to your version of Python.

Linux (Ubuntu)Linux (Ubuntu)

  1. In Linux (Ubuntu), Python viene in genere installato nell'ambito dell'installazione predefinita.In Linux (Ubuntu), Python is typically installed as part of the default installation.
  2. Verificare l'installazione di Python avviando la shell Bash.Check the Python installation by launching the bash shell. Eseguire il comando python -V usando l'opzione della V maiuscola per visualizzare il numero di versione.Run the command python -V using the uppercase V switch to see the version number.
  3. Verificare l'installazione di PIP eseguendo il comando pip show pip -V per visualizzare il numero di versione.Check the PIP installation by running the pip show pip -V command to see the version number.
  4. PIP può essere incluso in alcune versioni di Python.PIP may be included in some versions of Python. Se PIP non è installato, è possibile installare il pacchetto PIP eseguendo il comando sudo apt-get install python-pip.If PIP is not installed, you may install the PIP package, by running command sudo apt-get install python-pip.
  5. Aggiornare PIP alla versione più recente eseguendo il comando pip install -U pip.Update PIP to the latest version, by running the pip install -U pip command.
  6. Installare il connettore di MySQL per Python e le relative dipendenze usando il comando PIP:Install the MySQL connector for Python, and its dependencies by using the PIP command:

    sudo pip install mysql-connector-python-rf
    

MacOSMacOS

  1. In Mac OS, Python viene in genere installato nell'ambito dell'installazione del sistema operativo predefinita.In Mac OS, Python is typically installed as part of the default OS installation.
  2. Verificare l'installazione di Python avviando la shell Bash.Check the Python installation by launching the bash shell. Eseguire il comando python -V usando l'opzione della V maiuscola per visualizzare il numero di versione.Run the command python -V using the uppercase V switch to see the version number.
  3. Verificare l'installazione di PIP eseguendo il comando pip show pip -V per visualizzare il numero di versione.Check the PIP installation by running the pip show pip -V command to see the version number.
  4. PIP può essere incluso in alcune versioni di Python.PIP may be included in some versions of Python. Se PIP non è installato, è possibile installare il pacchetto PIP.If PIP is not installed, you may install the PIP package.
  5. Aggiornare PIP alla versione più recente eseguendo il comando pip install -U pip.Update PIP to the latest version, by running the pip install -U pip command.
  6. Installare il connettore di MySQL per Python e le relative dipendenze usando il comando PIP:Install the MySQL connector for Python, and its dependencies by using the PIP command:

    pip install mysql-connector-python-rf
    

Ottenere informazioni di connessioneGet connection information

Ottenere le informazioni di connessione necessarie per connettersi al database di Azure per MySQL.Get the connection information needed to connect to the Azure Database for MySQL. Sono necessari il nome del server completo e le credenziali di accesso.You need the fully qualified server name and login credentials.

  1. Accedere al Portale di Azure.Log in to the Azure portal.
  2. Nel menu a sinistra nel portale di Azure fare clic su Tutte le risorse e quindi cercare il server creato, ad esempio mydemoserver.From the left-hand menu in Azure portal, click All resources, and then search for the server you have created (such as mydemoserver).
  3. Fare clic sul nome del server.Click the server name.
  4. Nel pannello Panoramica del server prendere nota dei valori riportati in Nome server e Nome di accesso dell'amministratore server.From the server's Overview panel, make a note of the Server name and Server admin login name. Se si dimentica la password, in questo pannello è anche possibile reimpostarla.If you forget your password, you can also reset the password from this panel. Nome del server del database di Azure per MySQLAzure Database for MySQL server name

Eseguire il codice PythonRun Python code

  • Incollare il codice in un file di testo e quindi salvarlo in una cartella di progetto con estensione py, ad esempio C:\pythonmysql\createtable.py o /home/username/pythonmysql/createtable.py.Paste the code into a text file, and then save the file into a project folder with file extension .py (such as C:\pythonmysql\createtable.py or /home/username/pythonmysql/createtable.py).
  • Per eseguire il codice, avviare il prompt dei comandi o la shell Bash.To run the code, launch the command prompt or Bash shell. Passare alla cartella del progetto cd pythonmysql.Change directory into your project folder cd pythonmysql. Per eseguire l'applicazione, digitare quindi il comando python seguito dal nome del file python createtable.py.Then type the python command followed by the file name python createtable.py to run the application. Nel sistema operativo Windows, se python.exe non viene trovato, potrebbe essere necessario specificare il percorso completo del file eseguibile oppure aggiungere il percorso di Python nella variabile di ambiente PATH.On the Windows OS, if python.exe is not found, you may need to provide the full path to the executable or add the Python path into the path environment variable. C:\python27\python.exe createtable.py

Connettersi, creare tabelle e inserire datiConnect, create table, and insert data

Usare il codice seguente per connettersi al server, creare una tabella e caricare i dati usando un'istruzione SQL INSERT.Use the following code to connect to the server, create a table, and load the data by using an INSERT SQL statement.

Nel codice viene importata la libreria mysql.connector.In the code, the mysql.connector library is imported. La funzione connect() viene usata per connettersi a Database di Azure per MySQL usando gli argomenti di connessione presenti nella raccolta di configurazione.The connect() function is used to connect to Azure Database for MySQL using the connection arguments in the config collection. Il codice usa un cursore per la connessione, mentre il metodo cursor.execute() esegue la query SQL sul database MySQL.The code uses a cursor on the connection, and method cursor.execute() executes the SQL query against MySQL database.

Sostituire i parametri host, user, password e database con i valori specificati al momento della creazione del server e del database.Replace the host, user, password, and database parameters with the values that you specified when you created the server and database.

import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal
config = {
  'host':'mydemoserver.mysql.database.azure.com',
  'user':'myadmin@mydemoserver',
  'password':'yourpassword',
  'database':'quickstartdb'
}

# Construct connection string
try:
   conn = mysql.connector.connect(**config)
   print("Connection established")
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with the user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  cursor = conn.cursor()

  # Drop previous table of same name if one exists
  cursor.execute("DROP TABLE IF EXISTS inventory;")
  print("Finished dropping table (if existed).")

  # Create table
  cursor.execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
  print("Finished creating table.")

  # Insert some data into table
  cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("banana", 150))
  print("Inserted",cursor.rowcount,"row(s) of data.")
  cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("orange", 154))
  print("Inserted",cursor.rowcount,"row(s) of data.")
  cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("apple", 100))
  print("Inserted",cursor.rowcount,"row(s) of data.")

  # Cleanup
  conn.commit()
  cursor.close()
  conn.close()
  print("Done.")

Leggere i datiRead data

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL SELECT.Use the following code to connect and read the data by using a SELECT SQL statement.

Nel codice viene importata la libreria mysql.connector.In the code, the mysql.connector library is imported. La funzione connect() viene usata per connettersi a Database di Azure per MySQL usando gli argomenti di connessione presenti nella raccolta di configurazione.The connect() function is used to connect to Azure Database for MySQL using the connection arguments in the config collection. Il codice usa un cursore per la connessione, mentre il metodo cursor.execute() esegue l'istruzione SQL sul database MySQL.The code uses a cursor on the connection, and method cursor.execute() executes the SQL statement against MySQL database. Le righe di dati vengono lette usando il metodo fetchall().The data rows are read using method fetchall(). Il set di risultati viene conservato in una riga della raccolta e viene usata un'istruzione di iterazione for per eseguire il ciclo sulle righe.The result set is kept in a collection row and a for iterator is used to loop over the rows.

Sostituire i parametri host, user, password e database con i valori specificati al momento della creazione del server e del database.Replace the host, user, password, and database parameters with the values that you specified when you created the server and database.

import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal
config = {
  'host':'mydemoserver.mysql.database.azure.com',
  'user':'myadmin@mydemoserver',
  'password':'yourpassword',
  'database':'quickstartdb'
}

# Construct connection string
try:
   conn = mysql.connector.connect(**config)
   print("Connection established")
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with the user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  cursor = conn.cursor()

  # Read data
  cursor.execute("SELECT * FROM inventory;")
  rows = cursor.fetchall()
  print("Read",cursor.rowcount,"row(s) of data.")

  # Print all rows
  for row in rows:
    print("Data row = (%s, %s, %s)" %(str(row[0]), str(row[1]), str(row[2])))

  # Cleanup
  conn.commit()
  cursor.close()
  conn.close()
  print("Done.")

Aggiornare i datiUpdate data

Usare il codice seguente per connettersi e aggiornare i dati usando un'istruzione SQL UPDATE.Use the following code to connect and update the data by using an UPDATE SQL statement.

Nel codice viene importata la libreria mysql.connector.In the code, the mysql.connector library is imported. La funzione connect() viene usata per connettersi a Database di Azure per MySQL usando gli argomenti di connessione presenti nella raccolta di configurazione.The connect() function is used to connect to Azure Database for MySQL using the connection arguments in the config collection. Il codice usa un cursore per la connessione, mentre il metodo cursor.execute() esegue l'istruzione SQL sul database MySQL.The code uses a cursor on the connection, and method cursor.execute() executes the SQL statement against MySQL database.

Sostituire i parametri host, user, password e database con i valori specificati al momento della creazione del server e del database.Replace the host, user, password, and database parameters with the values that you specified when you created the server and database.

import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal
config = {
  'host':'mydemoserver.mysql.database.azure.com',
  'user':'myadmin@mydemoserver',
  'password':'yourpassword',
  'database':'quickstartdb'
}

# Construct connection string
try:
   conn = mysql.connector.connect(**config)
   print("Connection established")
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with the user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  cursor = conn.cursor()

  # Update a data row in the table
  cursor.execute("UPDATE inventory SET quantity = %s WHERE name = %s;", (200, "banana"))
  print("Updated",cursor.rowcount,"row(s) of data.")

  # Cleanup
  conn.commit()
  cursor.close()
  conn.close()
  print("Done.")

Eliminare i datiDelete data

Usare il codice seguente per connettersi e rimuovere i dati usando un'istruzione SQL DELETE.Use the following code to connect and remove data by using a DELETE SQL statement.

Nel codice viene importata la libreria mysql.connector.In the code, the mysql.connector library is imported. La funzione connect() viene usata per connettersi a Database di Azure per MySQL usando gli argomenti di connessione presenti nella raccolta di configurazione.The connect() function is used to connect to Azure Database for MySQL using the connection arguments in the config collection. Il codice usa un cursore per la connessione, mentre il metodo cursor.execute() esegue la query SQL sul database MySQL.The code uses a cursor on the connection, and method cursor.execute() executes the SQL query against MySQL database.

Sostituire i parametri host, user, password e database con i valori specificati al momento della creazione del server e del database.Replace the host, user, password, and database parameters with the values that you specified when you created the server and database.

import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal
config = {
  'host':'mydemoserver.mysql.database.azure.com',
  'user':'myadmin@mydemoserver',
  'password':'yourpassword',
  'database':'quickstartdb'
}

# Construct connection string
try:
   conn = mysql.connector.connect(**config)
   print("Connection established.")
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with the user name or password.")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist.")
  else:
    print(err)
else:
  cursor = conn.cursor()

  # Delete a data row in the table
  cursor.execute("DELETE FROM inventory WHERE name=%(param1)s;", {'param1':"orange"})
  print("Deleted",cursor.rowcount,"row(s) of data.")

  # Cleanup
  conn.commit()
  cursor.close()
  conn.close()
  print("Done.")

Passaggi successiviNext steps