1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【チュートリアル】Azure SQL DBを構築してPythonでクエリを発行する

Posted at

きっかけ

Azure SQL DBを構築し、それに対してPythonでクエリを発行するチュートリアルをここに示す。公式ドキュメントにも記載があるのだが、複数の記事に跨っているため、本記事にてまとめておく。

Azure SQL Databaseの構築

まず、Azure上でDB及びDBサーバーを構築する。これに関しては公式チュートリアルにてまとめられているので、そちらを参考にしてほしい。

必要なパッケージのインストール

Pythonでクエリを発行するために必要なパッケージのインストールを行う。なお、Homebrew と Pythonは事前にインストール済みの前提である。もしインストールしていない場合はこちらの記事を参考にすること。

SQLCMDのインストール

SQL DBに対してCLIで実行できるようにSQLCMDをインストールします。

$ brew update
$ brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
$ HOMEBREW_NO_ENV_FILTERING=1 ACCEPT_EULA=Y brew install msodbcsql17 mssql-tools

pyodbcのインストール

Python用のODBC ドライバーであるpyodbcをインストールします。

$ pip install pyodbc

接続情報の確認

DB接続に必要なサーバー名を取得します。

  • Azure portalのホーム画面からSQL データベースを選択する(もしくはportal上で検索する)
  • 対象のDBを選択し、概要ページを表示する
  • サーバー名をコピーする(画像例を載せているが、値は作成者ごとに異なる)

スクリーンショット-2020-10-16-11.38.24.png

  • 下記スクリプトのファイルを作成する。
sqltest.py

import pyodbc
server = '<server>.database.windows.net'
database = '<database>'
username = '<username>'
password = '<password>'   
driver= '{ODBC Driver 17 for SQL Server}'

with pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+ password) as conn:
    with conn.cursor() as cursor:
        cursor.execute("SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName FROM [SalesLT].[ProductCategory] pc JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid")
        row = cursor.fetchone()
        while row:
            print (str(row[0]) + " " + str(row[1]))
            row = cursor.fetchone()
  • <>で囲まれた部分は適切な値に書き換える。なお、Azure SQL Databaseの構築チュートリアルを行なってDBを作成していた場合は下記のようになる
    • : 先ほど確認したサーバー名(mysqlserver108.database.windows.net)
    • : mySampleDatabase
    • : azureuser
    • : 各自設定したパスワード
  • スクリプトを実行する

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?