Guia de início rápido: usar Python para conectar e consultar dados no Banco de Dados do Azure para MySQL - Servidor flexível

APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor Flexível

Neste início rápido, você se conecta ao Banco de Dados do Azure para servidor flexível MySQL usando Python. Em seguida, você usa instruções SQL para consultar, inserir, atualizar e excluir dados no banco de dados das plataformas Mac, Ubuntu Linux e Windows.

Este artigo pressupõe que você esteja familiarizado com o desenvolvimento usando Python, mas é novo no trabalho com o Banco de Dados do Azure para o servidor flexível MySQL.

Pré-requisitos

Preparando a estação de trabalho do cliente

Instalar o Python e o conector de MySQL

Instale o Python e o conector MySQL para Python no seu computador usando as seguintes etapas:

Nota

Este guia de início rápido usa uma abordagem de consulta SQL bruta para se conectar ao MySQL. Se você estiver usando um framework web, use o conector recomendado para o framework, por exemplo, mysqlclient for Django.

  1. Baixe e instale o Python 3.7 ou superior para o seu sistema operacional. Certifique-se de adicionar Python ao seu PATH, porque o conector MySQL requer isso.

  2. Abra um prompt de comando ou bash shell e verifique sua versão do Python executando python -V com a opção V maiúscula.

  3. O pip instalador do pacote está incluído nas versões mais recentes do Python. Atualize pip para a versão mais recente executando pip install -U pipo .

    Se pip não estiver instalado, pode transferi-lo e instalá-lo com get-pip.pyo . Para obter mais informações, consulte Instalação.

  4. Use pip para instalar o conector MySQL para Python e suas dependências:

    pip install mysql-connector-python
    

    Você também pode instalar o conector Python para MySQL a partir do mysql.com. Para obter mais informações sobre o MySQL Connector for Python, consulte o MySQL Connector/Python Developer Guide.

Obter informações da ligação

Obtenha as informações de conexão necessárias para se conectar ao Servidor flexível do Banco de Dados do Azure para MySQL no portal do Azure. Você precisa do nome do servidor, do nome do banco de dados e das credenciais de entrada.

  1. Inicie sessão no portal do Azure.

  2. Na barra de pesquisa do portal, procure e selecione a instância de servidor flexível do Banco de Dados do Azure para MySQL que você criou, como mydemoserver.

  3. Na página Visão geral do servidor, anote o Nome do servidor e o Nome de login do administrador do servidor. Se se esquecer da sua palavra-passe, também pode repor a palavra-passe a partir desta página.

Amostras de código

Execute os exemplos de código Python mencionados abaixo

Para cada exemplo de código neste artigo:

  1. Crie um novo arquivo em um editor de texto.

  2. Adicione o exemplo de código ao arquivo. No código, substitua os <mydemoserver>espaços reservados , <myadmin>, <mypassword>, e <mydatabase> pelos valores para seu servidor e banco de dados MySQL.

  3. Salve o arquivo em uma pasta de projeto com uma extensão .py , como C:\pythonmysql\createtable.py ou /home/username/pythonmysql/createtable.py.

  4. Para executar o código, abra um prompt de comando ou bash shell e altere o diretório para a pasta do projeto, por exemplo cd pythonmysql. Digite o python comando seguido do nome do arquivo, por exemplo python createtable.py, e pressione Enter.

    Nota

    No Windows, se python.exe não for encontrado, talvez seja necessário adicionar o caminho Python à variável de ambiente PATH ou fornecer o caminho completo para python.exe, por exemplo C:\python27\python.exe createtable.py.

Criar uma tabela e inserir dados

Use o código a seguir para se conectar ao servidor e ao banco de dados, criar uma tabela e carregar dados usando uma instrução INSERT SQL.

O código importa a biblioteca mysql.connector e usa a função connect() para se conectar ao servidor flexível usando os argumentos na coleção config. O código usa um cursor na conexão e o método cursor.execute() executa a consulta SQL no banco de dados MySQL.

import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal

config = {
  'host':'<mydemoserver>.mysql.database.azure.com',
  'user':'<myadmin>',
  'password':'<mypassword>',
  'database':'<mydatabase>'
}

# 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.")

Ler dados

Utilize o código seguinte para se ligar e ler dados com uma instrução SQL SELECT.

O código importa a biblioteca mysql.connector e usa a função connect() para se conectar ao servidor flexível usando os argumentos na coleção config. O código usa um cursor na conexão e o método cursor.execute() executa a consulta SQL no banco de dados MySQL.

O código lê as linhas de dados usando o método fetchall(), mantém o conjunto de resultados em uma linha de coleta e usa um for iterador para fazer loop sobre as linhas.

import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal

config = {
  'host':'<mydemoserver>.mysql.database.azure.com',
  'user':'<myadmin>',
  'password':'<mypassword>',
  'database':'<mydatabase>'
}

# 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.")

Atualizar dados

Utilize o código seguinte para se ligar e atualizar os dados com uma instrução SQL UPDATE.

O código importa a biblioteca mysql.connector e usa a função connect() para se conectar ao servidor flexível usando os argumentos na coleção config. O código usa um cursor na conexão e o método cursor.execute() executa a consulta SQL no banco de dados MySQL.

import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal

config = {
  'host':'<mydemoserver>.mysql.database.azure.com',
  'user':'<myadmin>',
  'password':'<mypassword>',
  'database':'<mydatabase>'
}

# 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.")

Eliminar dados

Utilize o código seguinte para se ligar e remover os dados com uma instrução SQL DELETE.

O código importa a biblioteca mysql.connector e usa a função connect() para se conectar ao servidor flexível usando os argumentos na coleção config. O código usa um cursor na conexão e o método cursor.execute() executa a consulta SQL no banco de dados MySQL.

import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal

config = {
  'host':'<mydemoserver>.mysql.database.azure.com',
  'user':'<myadmin>',
  'password':'<mypassword>',
  'database':'<mydatabase>'
}

# 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.")

Próximos passos