Compartilhar via


Início Rápido: Conectar-se com o driver mssql-python para Python

Neste início rápido, você conecta um script Python a um banco de dados criado e carregado com dados de exemplo. Use o mssql-python driver do Python para se conectar ao banco de dados e executar operações básicas, como ler e gravar dados.

O mssql-python driver não requer nenhuma dependência externa em computadores Windows. O driver instala tudo o que precisa com uma única pip instalação, permitindo que você use a versão mais recente do driver para novos scripts sem quebrar outros scripts que você não tem tempo para atualizar e testar.

Documentação mssql-python | Código-fonte mssql-python | Pacote (PyPi) | Visual Studio Code

Pré-requisitos

  • Python 3

    • Se você ainda não possui o Python, instale o runtime do Python e o gerenciador de pacotes Índice de Pacotes do Python (PyPI) de python.org.

    • Prefere não usar seu próprio ambiente? Abra como um devcontainer usando o GitHub Codespaces.

  • (Opcional) CLI (Interface de Linha de Comando do Azure)

  • Um banco de dados no SQL Server, no Banco de Dados SQL do Azure ou no Banco de Dados SQL no Fabric com o AdventureWorks2025 esquema de exemplo e uma cadeia de conexão válida.

Configuração

Siga estas etapas para configurar seu ambiente de desenvolvimento para desenvolver um aplicativo usando o mssql-python driver Python.

Observação

Esse driver usa o protocolo TDS (Tabular Data Stream), que é habilitado por padrão no SQL Server, no Banco de Dados SQL no Fabric e no Banco de Dados SQL do Azure. Não é necessária configuração adicional.

Instalar o pacote mssql-python

Obtenha o mssql-python pacote do PyPI.

  1. Abra um prompt de comando em um diretório vazio.

  2. Instale o pacote mssql-python.

    pip install mssql-python
    

Instalar o pacote python-dotenv

Obtenha o python-dotenv de PyPI.

  1. No mesmo diretório, instale o python-dotenv pacote.

    pip install python-dotenv
    

Verifique os pacotes instalados

Você pode usar a ferramenta de linha de comando PyPI para verificar se os pacotes pretendidos estão instalados.

  1. Verifique a lista de pacotes instalados com pip list.

    pip list
    

Criar um Banco de Dados SQL

Este início rápido requer o esquema AdventureWorks2025 Lightweight , no Microsoft SQL Server, no banco de dados SQL no Fabric ou no Banco de Dados SQL do Azure.

Executar o código

Criar um novo arquivo

  1. Crie um arquivo chamado app.py.

  2. Adicione um módulo docstring.

    """
    Connects to a SQL database using mssql-python
    """
    
  3. Importar pacotes, incluindo mssql-python.

    from os import getenv
    from dotenv import load_dotenv
    from mssql_python import connect
    
  4. Use a função mssql-python.connect para se conectar a um banco de dados SQL.

    load_dotenv()
    conn = connect(getenv("SQL_CONNECTION_STRING"))
    
  5. No diretório atual, crie um novo arquivo chamado .env.

  6. No arquivo .env, adicione uma entrada para sua cadeia de conexão chamada SQL_CONNECTION_STRING. Substitua o exemplo aqui pelo valor real da cadeia de conexão.

    SQL_CONNECTION_STRING="Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"
    

    Dica

    A cadeia de conexão usada aqui depende em grande parte do tipo de banco de dados SQL ao qual você está se conectando. Se você estiver se conectando a um Banco de Dados SQL do Azure ou a um banco de dados SQL no Fabric, use a cadeia de conexão ODBC na guia cadeias de conexão. Talvez seja necessário ajustar o tipo de autenticação dependendo do seu cenário. Para obter mais informações sobre cadeias de conexão e sua sintaxe, consulte a referência de sintaxe da cadeia de conexão.

Executar uma consulta

Use uma cadeia de caracteres de consulta SQL para executar uma consulta e analisar os resultados.

  1. Crie uma variável para a cadeia de caracteres de consulta SQL.

    SQL_QUERY = """
    SELECT
    TOP 5 c.CustomerID,
    c.CompanyName,
    COUNT(soh.SalesOrderID) AS OrderCount
    FROM
    SalesLT.Customer AS c
    LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID
    GROUP BY
    c.CustomerID,
    c.CompanyName
    ORDER BY
    OrderCount DESC;
    """
    
  2. Use cursor.execute para recuperar um conjunto de resultados de uma consulta em relação ao banco de dados.

    cursor = conn.cursor()
    cursor.execute(SQL_QUERY)
    

    Observação

    Essencialmente, essa função aceita qualquer consulta e retorna um conjunto de resultados que pode ser iterado com o uso de cursor.fetchone().

  3. Use cursor.fetchall com um loop foreach para obter todos os registros do banco de dados. Em seguida, imprima os registros.

    records = cursor.fetchall()
    for r in records:
      print(f"{r.CustomerID}\t{r.OrderCount}\t{r.CompanyName}")
    
  4. Salve o app.py arquivo.

Dica

Para usar a Autenticação do Microsoft Entra no macOS, você precisa estar conectado executando az login por meio da CLI (Interface de Command-Line) do Azure.

  1. Abra um terminal e teste o aplicativo.

    python app.py
    

    Esta é a saída esperada.

    29485   1       Professional Sales and Service
    29531   1       Remarkable Bike Store
    29546   1       Bulk Discount Store
    29568   1       Coalition Bike Company
    29584   1       Futuristic Bikes
    

Inserir uma linha como uma transação

Execute uma instrução INSERT com segurança e passe parâmetros. Passar parâmetros como valores protege seu aplicativo contra ataques de injeção de SQL .

  1. Adicione uma importação de randrange da biblioteca random no topo de app.py.

    from random import randrange
    
  2. No final de app.py, adicione o código para gerar um número de produto aleatório.

    productNumber = randrange(1000)
    

    Dica

    Gerar um número de produto aleatório aqui garante que você possa executar essa amostra várias vezes.

  3. Crie uma cadeia de caracteres de instrução SQL.

    SQL_STATEMENT = """
    INSERT SalesLT.Product (
    Name,
    ProductNumber,
    StandardCost,
    ListPrice,
    SellStartDate
    ) OUTPUT INSERTED.ProductID
    VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)
    """
    
  4. Execute a instrução usando cursor.execute.

    cursor.execute(
       SQL_STATEMENT,
       (
          f'Example Product {productNumber}',
          f'EXAMPLE-{productNumber}',
          100,
          200
       )
    )
    
  5. Busque o resultado único usando cursor.fetchone, imprima o identificador exclusivo do resultado e confirme a operação como uma transação usando connection.commit.

    result = cursor.fetchone()
    print(f"Inserted Product ID : {result['ProductID']}")
    conn.commit()
    

    Dica

    Opcionalmente, você pode usar connection.rollback para reverter a transação.

  6. Feche o cursor e a conexão usando cursor.close e connection.close.

    cursor.close()
    conn.close()
    
  7. Salve o app.py arquivo e teste o aplicativo novamente.

    python app.py
    

    Esta é a saída esperada.

    Inserted Product ID : 1001
    

Próxima etapa

Visite o mssql-python repositório GitHub do driver para obter mais exemplos, e para contribuir com ideias ou relatar problemas.