次の方法で共有


クイックスタート: Python を使用して Azure SQL データベースまたは Azure SQL Managed Instance のデータベースにクエリの実行

適用対象:Azure SQL データベースAzure SQL Managed InstanceAzure Synapse Analytics

このクイックスタートでは、Python を使用して Azure SQL Database、Azure SQL Managed Instance、または Synapse SQL データベースに接続し、T-SQL ステートメントを使用してデータに対してクエリを実行します。

mssql-python のドキュメント | mssql-python ソース コード | パッケージ (PyPi)

前提条件

このクイック スタートを完了するには、次のものが必要です。

セットアップ中

次の手順に従って、 mssql-python Python ドライバーを使用してアプリケーションを開発するように開発環境を構成します。

このドライバーは、 表形式データ ストリーム (TDS) プロトコルを使用します。このプロトコルは、SQL Server、ファブリックの SQL データベース、Azure SQL Database で既定で有効になっています。 追加の構成は必要ありません。

mssql-python パッケージをインストールする

PyPI から mssql-python パッケージ を取得します。

  1. 空のディレクトリでコマンド プロンプトを開きます。

  2. mssql-python パッケージをインストールします。

    pip install mssql-python
    

python-dotenv パッケージをインストールする

PyPI から python-dotenv を取得します。

  1. 同じディレクトリに、 python-dotenv パッケージをインストールします。

    pip install python-dotenv
    

インストールしたパッケージを確認する

PyPI コマンド ライン ツールを使用して、目的のパッケージがインストールされていることを確認できます。

  1. pip listを使用して、インストールされているパッケージの一覧を確認します。

    pip list
    

新しいファイルを作成する

  1. 現在のディレクトリに、 .envという名前の新しいファイルを作成します。

  2. .env ファイル内に、SQL_CONNECTION_STRINGという名前の接続文字列のエントリを追加します。 ここでの例を実際の接続文字列の値に置き換えます。

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

    ヒント

    ここで使用される接続文字列は、接続先の SQL データベースの種類によって大きく異なります。 Fabric で Azure SQL Database または SQL データベースに接続する場合は、[接続文字列] タブから ODBC 接続文字列を使用します。シナリオによっては、認証の種類の調整が必要になる場合があります。 接続文字列とその構文の詳細については、「 DSN と接続文字列のキーワードと属性」を参照してください。

  3. 任意のテキスト エディターで新しいファイル (sqltest.py) を作成します。

  4. 次のコードを追加します。

    from os import getenv
    from dotenv import load_dotenv
    from mssql_python import connect
    
    load_dotenv()
    
    with connect(getenv("SQL_CONNECTION_STRING")) as conn:
        with conn.cursor() as cursor:
            cursor.execute("SELECT TOP 3 name, collation_name FROM sys.databases")
            rows = cursor.fetchall()
            for row in rows:
                print(row.name, row.collation_name)
    

コードの実行

  1. コマンド プロンプトで、次のコマンドを実行します。

    python sqltest.py
    
  2. データベースとその照合順序が返されていることを確認し、コマンド ウィンドウを閉じます。

    エラーが発生した場合:

    • 使用しているサーバー名、データベース名、ユーザー名、パスワードが正しいことを確認してください。

    • ローカル環境からコードを実行している場合、アクセスしようとしている Azure リソースのファイアウォールが、お使いの環境の IP アドレスからのアクセスを許可するように構成されていることを確認してください。