Conecte-se a um Microsoft SQL Server usando Python e Pyodbc
O Microsoft SQL Server é um sistema de gerenciamento de banco de dados relacional ou RDBMS resumidamente. Como o nome sugere, foi desenvolvido pela Microsoft e está escrito em C/C++
. É uma ferramenta que permite aos seus usuários interagir com bases de dados relacionais utilizando SQL
ou Structured Query Language.
Ao trabalhar com aplicativos do mundo real, temos que lidar com muitos dados. Os dados devem ser atualizados, criados e excluídos a cada segundo, e esses RDBMS são inteligentes e robustos o suficiente para lidar com essas operações de forma rápida e segura.
Agora, os aplicativos são desenvolvidos usando várias linguagens de programação. Isso significa que cada linguagem de programação deve ter uma maneira de se conectar a esses RDBMS e acessar os dados armazenados nos bancos de dados. Essas formas incluem ORMs
ou bibliotecas Object Relational Mapping e Open Database Connectivity ou pacotes ODBC
. São duas coisas muito diferentes e ambas podem ser usadas para se conectar a bancos de dados.
Uma diferença simples entre os dois é que ORM
permite que os desenvolvedores interajam com bancos de dados usando classes Python ou modelos que representam tabelas e gerenciadores de banco de dados (outra classe Python) para realizar consultas sobre os modelos. Por outro lado, ODBC
permite que os desenvolvedores escrevam consultas SQL brutas ou nativas para interagir diretamente com o banco de dados.
Uma vez que Python é uma linguagem de programação famosa e amplamente utilizada, também tem um bom suporte para ORMs
e ODBCs
. E, uma vez que estamos falando sobre conectar-se ao Microsoft SQL Server usando Python e pyodbc
, aprenderemos principalmente sobre ODBCs
, porque pyodbc
é um ODBC
.
Conectando-se a um Microsoft SQL Server usando pyodbc
Para se conectar a um Microsoft SQL Server, primeiro precisamos de alguns detalhes sobre o servidor: o nome do driver, o nome do servidor e o nome do banco de dados. Com as informações acima, uma string especial deve ser criada, a qual será passada para a função connect()
da biblioteca pyodbc
.
O formato da string é o seguinte -
Driver = { < driver_name > }
Server = <server_name >
Database = <database_name >
Trusted_Connection = yes
Usando o método connect()
, uma conexão será estabelecida entre o programa e o servidor, e então, usando essa conexão, as consultas SQL
podem ser realizadas diretamente no banco de dados.
Consulte o seguinte código para o mesmo.
import pyodbc
connection = pyodbc.connect(
"Driver={<driver_name>};Server=<server_name>;Database=<database_name>;Trusted_Connection=yes;"
) # Connection string
cursor = connection.cursor()
cursor.execute("SELECT * FROM <table_name>") # Executing a query
for row in cursor: # Looping over returned rows and printing them
print(f"row = {row}")
Também é possível se conectar a um servidor usando DSN
ou Data Source Name
, um ID de usuário e uma senha. E a string para o mesmo é a seguinte.
DSN = <dsn >
UID = <user >
PWD = <password >
Nesse caso, consulte o código a seguir.
import pyodbc
connection = pyodbc.connect("DSN=<dsn>;UID=<user>;PWD=<password>") # Connection string
cursor = connection.cursor()
cursor.execute("SELECT * FROM <table_name>") # Executing a query
for row in cursor: # Looping over returned rows and printing them
print(f"row = {row}")
Para saber mais sobre drivers do Microsoft SQL Server, conexões e informações necessárias para conectar utilizando a biblioteca, consulte aqui. E, para saber mais sobre a biblioteca em si, consulte a documentação oficial aqui.