Neste artigo, discutiremos como se conectar ao MySQL usando Python. Python é uma das linguagens de programação mais produtivas e amplamente utilizadas atualmente. Sua sintaxe simples e elegante o torna ideal para novos programadores, enquanto programadores experientes aproveitam a extensa lista de módulos e funcionalidades disponíveis.
MySQL é um robusto sistema de gerenciamento de banco de dados relacional baseado em SQL de código aberto que é usado em muitos programas de software e servidores web. Este artigo tem como objetivo mostrar como se conectar para usar o Python para se conectar ao MySQL e realizar algumas tarefas básicas.
Por que usar Python para se conectar ao MySQL?
Você pode estar se perguntando, por que essa informação é importante? A melhor resposta é que esses dois componentes se complementam de forma brilhante! A capacidade do Python de manipular dados usando informações de origem é incomparável. MySQL ou MariaDB contém os dados que podem ser manipulados pelo Python. Usar esses dois fatores para aprimorar e complementar um ao outro só aumenta a sinergia geral entre eles.
Etapa 1. Instalando o Módulo Conector
Vamos começar instalando o módulo conector. O primeiro passo para conectar o MySQL com o Python é instalar o módulo Pip Python. Se você ainda não tiver o pip instalado, instruções detalhadas para instalar o pip em vários sistemas operacionais podem ser encontradas na Liquid Web Knowledge Base. Depois de instalar o pip, precisamos instalar o mysql-connector-python driver usando o comando a seguir.
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
No exemplo acima, o pip verifica outros módulos que o driver mysql-connector-python pode exigir, que serão instalados se necessário.
Etapa 2. Importar conector
O próximo passo é importar o mysql-connector-python module usando este comando em seu código.
import mysql.connector
Este comando diz ao Python para carregar e habilitar todas as funções e objetos relacionados e usados pelo módulo conector do MySQL.
Etapa 3. Conecte o MySQL ao servidor
Nosso próximo passo é chamar o mysql.connector.connect() método para criar uma conexão com o servidor.
import mysql.connector
db = mysql.connector.connect(
host='localhost',
user=’username’,
password=’password’
)
Normalmente, quando nos comunicamos com um banco de dados MySQL, usamos um MySQLcursor object (que faz parte do módulo mysql-connector-python). Pense nesse objeto como um tipo de CLI (interface de linha de comando) onde podemos digitar consultas SQL usadas para interagir com o servidor. Esta comunicação é realizada usando o método cursor (cursor =db.cursor() ), chamando o objeto db que criamos na última etapa com o método connect:
import mysql.connector
db = mysql.connector.connect(
host='localhost',
user=’username’,
password=’password’'
)
cursor = db.cursor()
Um objeto db.cursor nos permite executar consultas SQL. Esta consulta retorna um objeto sobre o qual podemos iterar com um for loop igual 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)
Existe um banco de dados preexistente que foi configurado em um tutorial anterior da KB sobre SQL Views. Ele contém informações sobre uma série fictícia de stock car. Usando o script acima, os resultados ficariam assim:
# python mysql-test.py
(u'information_schema',)
(u'races',)
(u'sys',)
Podemos usar outros comandos com o cursor atual (db.cursor() ) para interagir com este banco de dados. Aqui, extraímos uma lista das tabelas e visualizações do mesmo banco de dados.
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:O “u” na frente do resultado indica que é uma string Unicode. Inserindo dados com o objeto cursor MySQL
Agora que podemos recuperar a estrutura do banco de dados, podemos usar o objeto cursor para executar outros comandos. Havia uma seção onde os pilotos da temporada de corridas eram inseridos no banco de dados. Foi feito com o uso desta consulta SQL.
insert into drivers (name,car_number) values
('Buddy Baker',28),
('Dale Earnhardt Jr.',8),
('Ricky Rudd',88);
Para executar essa mesma consulta SQL usando Python, simplesmente passamos essa string para o método execute do nosso cursor . Um bom método para praticar o uso disso é atribuir uma variável como o texto da consulta e, em seguida, chamar execute no objeto cursor. Você também tem que instruir o mysql para confirmar as alterações chamando db.commit() assim.
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()
Os resultados:
id | nome | número do carro |
1 | Buddy Baker | 28 |
2 | Dale Earnhardt Jr. | 8 |
3 | Ricky Rudd | 88 |
Quando inserimos várias linhas, a interface oferece o método “executemany” , que nos permite criar um array de valores a serem inseridos e uma string especialmente formatada com o símbolo %s substituindo os valores dos arrays. Este exemplo é idêntico à inserção anterior:
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()
Os valores do array ‘drivers’ são passados um a um para a instrução ‘sql’ e então passados para ‘executemany() '
Usando Selecionar
Como outras instruções SQL, podemos usar o objeto cursor para executar seleções. Após uma seleção, um cursor ganha alguns novos métodos, incluindo fetchall() e buscar() . O fetchall() retorna uma lista de todos os resultados. Cada resultado é uma lista com as colunas correspondentes na ordem em que foram selecionadas. O método fetchone() retorna o próximo resultado do conjunto de resultados.
sql = "select name,car_number from drivers"
cursor.execute(sql)
results = cursor.fetchall()
for x in results:
print(x)
Resultados:
(u'Buddy Baker', 28)
(u'Dale Earnhardt Jr.', 8)
(u'Ricky Rudd', 88)
Se quisermos um resultado de cada vez, podemos usar fetchone()
sql = "select name,car_number from drivers"
cursor.execute(sql)
results = cursor.fetchone()
print(results)
Resultados:
(u'Buddy Baker', 28)
Atualizando e excluindo dados
Assim como o comando insert, os comandos delete e update usam um objeto cursor e devem chamar db.commit(); caso contrário, eles são semelhantes a outros comandos SQL.
Atualizar :
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)
Excluir :
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)
Conclusão
Então, quais são as conclusões deste artigo? Usar o Python para interagir com o MySQL é uma maneira simples e eficaz de manipular dados de maneira que complementam cada sistema.
Tem perguntas? Nós nos orgulhamos de ser os humanos mais úteis em hospedagem™! Nossa equipe de suporte técnico está sempre disponível para ajudar com qualquer problema relacionado a este artigo, 24 horas por dia, 7 dias por semana, 365 dias por ano.
Estamos disponíveis, através de nossos sistemas de tickets em [email protected], por telefone (800-580-4986), ou através de um LiveChat ou qualquer outro método de sua preferência. Nós trabalhamos duro para você para que você possa relaxar.