Como acessar bancos de dados SQL Server usando Python
Tutorial de acesso a bancos de dados SQL Server usando Python
A linguagem Python possui suporte a uma grande quantidade de sistemas de bancos de dados, por meio do uso de bibliotecas específicas para cada SGBD.
Neste tutorial vou mostrar como usar uma biblioteca de código aberto para acessar um banco de dados Microsoft SQL Server a partir de um script em Python, realizando a conexão ao banco e, posteriormente, uma consulta simples em uma de suas tabelas.
Para acessar bancos de dados SQL Server usando Python, podemos usar a biblioteca pyodbc. Esta biblioteca permite, na verdade, acessar diversos bancos de dados ODBC, sendo o SQL Server apenas um deles.
Vamos ao tutorial passo a passo.
Python e SQL Server
1. Instalar o driver de acesso ao SQL Server
Antes de começar, precisamos instalar a biblioteca ODBC para Python. Podemos usar o pip ou o conda para instalá-la com um dos seguintes comandos:
$ pip install pyodbc # ou
$ conda install pyodbc
2. Importamos a biblioteca necessária e criamos uma nova conexão com o banco de dados
import pyodbc
# String de conexão com o banco de dados
conn = pyodbc.connect('Driver={SQL Server};'
'Server=nome_servidor;'
'Database=nome_banco_dados;'
'Trusted_Connection=yes;')
Substituimos nome_servidor e nome_banco_dados pelo nome do servidor e do banco de dados ao qual desejamos nos conectar (por exemplo, localhost e db_biblioteca, respectivamente).
Se precisamos usar a autenticação SQL Server, em vez de autenticação do Windows, a string de conexão fica assim:
conn = pyodbc.connect('Driver={SQL Server};' 'Server=nome_servidor;' 'Database=nome_banco_dados;' 'UID=usuário;' 'PWD=senha')
Substituimos usuário e senha pelo nome de usuário e senha de acesso ao SQL Server.
3. Agora criamos um objeto do tipo cursor e o empregamos para executar os comandos SQL desejados
# Criar um objeto cursor cursor = conn.cursor() # Comando SQL a executar cursor.execute('SELECT * FROM nome_tabela') # Buscar todos os resultados for row in cursor: print(row)
Devemos substituir nome_tabela pelo nome da tabela que desejamos consultar. Também é possível executar comandos SQL de atualização, inserção e exclusão usando o método execute.
4. Por fim fechamos a conexão com o banco de dados:
conn.close()
Essa instrução irá encerrar a conexão com o banco de dados SQL Server.
Exemplo completo
Vamos usar o banco de dados db_biblioteca neste exemplo, acessando a tabela de livros (tbl_livros) e retornando todas as linhas dessa tabela. O servidor SQL Server em questão utiliza autenticação do Windows:
import pyodbc # Conexão com o banco de dados conn = pyodbc.connect('Driver={SQL Server};' 'Server=localhost;' 'Database=db_biblioteca;' 'Trusted_Connection=yes;') # Criar o objeto cursor cursor = conn.cursor() # Executar a consulta SQL cursor.execute('SELECT * FROM tbl_livro') # Busca todos os resultados for row in cursor: print(row)
Resultado:
Inserir novas linhas no banco de dados
E se quisermos inserir novos registros em uma tabela?
Neste caso podemos criar um dicionário contendo pares chave:valor representando os nomes das colunas da tabela e os respectivos dados a serem inseridos, e então criar uma consulta SQL para enviar esses dados ao banco, como no exemplo a seguir, onde eu crio um novo registro na tabela de autores:
# Criar um dicionário com os dados a inserir no banco autor = { "ID_Autor": 10, "Nome_Autor": "Fábio", "Sobrenome_Autor": "dos Reis" } # Criar a consulta SQL sql_query = f"INSERT INTO tbl_autores (ID_Autor, Nome_Autor, Sobrenome_Autor) VALUES (?, ?, ?)" # Cursor para executar a consulta cursor = conn.cursor() # Executar a consulta cursor.execute(sql_query, autor["ID_Autor"], autor["Nome_Autor"], autor["Sobrenome_Autor"]) # Confirmar a transação (comitar) conn.commit() # Encerrar a conexão conn.close()
No exemplo acima, o cursor é criado usando a conexão estabelecida na etapa anterior. Em seguida, a consulta é executada usando o método execute() do cursor. Certifique-se de passar os valores a serem inseridos na consulta como argumentos para o método execute().
Por fim, é importante confirmar a transação usando o método commit() da conexão. Se você não fizer isso, os dados inseridos não serão salvos no banco de dados.
É isso aí! Este foi um tutorial básico para acesso a bancos de dados SQL Server usando a linguagem Python com a biblioteca pyodbc. Existem muitas outras opções de configuração e métodos disponíveis na biblioteca pyodbc, e algumas delas serão discutidas nos próximos tutoriais dessa série.
.
Escreva um comentário