Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Conectando-se ao MySQL usando Python


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.