Como efetuar consultas SQL simples no MySQL com Python

Consultas SQL simples no MySQL com Python

Na lição passada mostrei como criar um script em Python que se conecta a um banco de dados MySQL, por meio do uso do módulo mysql-connector-python, e realizamos um teste simples de conexão com um banco de nome db_MeusLivros. O que faremos agora é realizar uma consulta SQL a uma das tabelas desse banco, retornando os dados armazenados. Para tal continuaremos a empregar o módulo mysql.connector.

Código

No código a seguir, logo após criar um objeto de conexão (con), criamos uma variável chamada consulta_sql, que irá armazenar a declaração SQL a ser executada no banco de dados (a consulta), e então criamos um objeto cursor para realizar a consulta desejada. Passamos a variável SQL para o cursor logo após.

Com o método fetchall() retornamos todas as linhas obtidas na consulta para uma variável (array) que batizamos como linhas, e então podemos iterar por essa variável para ler os dados de cada coluna presente no resultado da consulta, linha a linha.

A propriedade rowcount mostra o número total de linhas retornadas no resultset.

Finalmente, fechamos o cursor e a conexão ao banco de dados. Veja o código a seguir:

import mysql.connector
from mysql.connector import Error

try:
    con = mysql.connector.connect(host='localhost',database='db_MeusLivros',user='root',password='abc123**')

    consulta_sql = "select * from tbl_autores"
    cursor = con.cursor()
    cursor.execute(consulta_sql)
    linhas = cursor.fetchall()
    print("Número total de registros retornados: ", cursor.rowcount)

    print("\nMostrando os autores cadastrados")
    for linha in linhas:
        print("Id:", linha[0])
        print("Nome:", linha[1])
        print("Sobrenome:", linha[2], "\n")
except Error as e:
    print("Erro ao acessar tabela MySQL", e)
finally:
    if (con.is_connected()):
        con.close()
        cursor.close()
        print("Conexão ao MySQL encerrada")

Resultado:

Consulta a banco de dados MySQL com Python

(resultado truncado)

É isso aí! Consulta SQL realizada com sucesso em uma tabela no MySQL, a partir de um script escrito em Python.

No próximo artigo prosseguimos com a execução declarações SQL no banco por meio desta conexão, incluindo a inserção de linhas, consultas mais elaboradas (incluindo INNER JOIN) e outras operações de CRUD comuns.

Até!

Sobre Fábio dos Reis (1223 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

4 Comentários em Como efetuar consultas SQL simples no MySQL com Python

  1. Luiz Carlos da Rosa // 14/07/2021 em 9:32 // Responder

    Explanação muito clara!
    Sugestão: consulta (select) de periodo (data inicial e data final) entre datas usando o Python / Mysql, sendo que as datas são oriundas de variáveis. Como ficaria a sql?

  2. muito obrigado, comecei a mexer com sql a uns dias e tava apanhando para aprender isso

  3. Eldio Cadore // 07/05/2023 em 12:50 // Responder

    Olá Fábio, eu usei uma função em python bem comum para ler os registros de uma tabela, o problema é que ao gerar o pdf ele exibe (imprime) apenas o conteudo de uma pagina, enquanto que o cur.rowcount diz que há 17424 registros, mas no pdf aparecem apenas 62 se não estou enganado. usei o “for i in range(0, len(dados_lidos)):” para ler até o tamanho do banco, inclusive ao printar dados_lidos ele exibe por completo no terminal. Já pesquisei bastante e nada, não consegui sair disso.
    Se puder dar uma luz, grato.

Escreva um comentário

Seu e-mail não será divulgado


*