23
22

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.

PythonからSQL Serverを動かそう!~接続編~

Last updated at Posted at 2021-04-21

#目次
0.この記事を書いた経緯
1.対象読者
2.環境
3.手順
4.苦労した点
5.まとめ
6.参考サイト

#0-この記事を書いた経緯
PythonとSQL Serverの学習の備忘録として書きました。
この記事を読むと、SQL Serverに作成したDBの値をPythonで取り出して表示することができるようになります。

#1-対象読者
Pythonを実行出来る環境がある方
(Visual Studio Code等)
pipでライブラリをインストールできる方
PythonとDBを一通り学習された初学者の方
DBをソースコードから動かしてみたい方

#2-環境
Python 3.9.4
SQL Server 2019 (Express)
SSMS(SQL Server Management Studio) 18.9(日本語版)
pyodbc 4.0.30

※すべてlocal環境(Windows10 64bit)で動作させています。

#3-手順
(1)環境構築
・「Python」,「SQL Server」,「SSMS(SQL Server Management Studio)」のインストール
※本記事ではインストールの手順については詳しく説明はしませんのでよく調べてダウンロードして下さい。下記に参考URLを置いておきます。

・DBの準備
SSMSを立ち上げます。今回はWindows認証で接続します。
windows_permission.png

立ち上げたら「データベース」を右クリックして「新しいデータベース」を押下します。
create_db1.png

押下すると以下のウィンドウが立ちあがるので任意の名前を入力します。入力したら「OK」を押します。
create_db2.png

戻るとデータベースができているので今度は画面の階層までフォルダを展開して、「テーブル」を右クリックします。「新規作成」から「テーブル」を押下します。
create_db3.png

以下の画像のようにテーブルを作成します(あくまで1例)。
※id列のプロパティの「テーブルデザイナー」の「IDENTITY」の指定を「はい」にすると自動でidが追加されます。
create_db4.png

保存するとテーブルの名前を要求されるので任意の名前を入力します。
create_db5.png

オブジェクトエクスプローラーの画像の更新マークを押下します。
create_db5A.png

押下して「テーブル」まで展開するとテーブルが作成されているのがわかります。
create_db6.png

データベースに任意の値を入力します。テーブルを右クリックして「上位200行の編集」を押下します。
create_db7.png

適当な値を入力します。
create_db8.png

・TCP/IPの設定
スタートメニューから「SQL Server構成マネージャー」を開き「SQL Serverネットワークの構成」を展開し、「SQLEXPRESSのプロトコル」の「TCP/IP」を有効にします。
「IPアドレスタグ」を開き、一番下にある「IPALL」の「TCPポート」を「1433」に設定します。
参考にした記事

・pyodbcのインストール
pyodbcとはMicrosoftが推奨しているPython 用の SQL ドライバーです。今回はpyodbcを使用するのでインストールをします。インストールについてはこちらを参考に行ってください。

以上で準備は完了です。

(2)コードの用意

main.py
import pprint
import pyodbc

def login():
	driver='{SQL Server}'
	server = '(1)SQLServerが稼働しているサーバー名'
	database = '(2)データベース名'
	trusted_connection='yes'

	connect= pyodbc.connect('DRIVER='+driver+';SERVER='+server+';DATABASE='+database+';PORT=1433;Trusted_Connection='+trusted_connection+';')
	cursor = connect.cursor()
	cursor.execute( "SELECT * FROM (3)Table_1" )
	rows = cursor.fetchall()
	pprint.pprint( rows )

	cursor.close()
	connect.close()

if __name__ == '__main__':login()

(3)コードの内容
コードの(1)、(2)、(3)には以下の画像の(1)、(2)、(3)の値を入力します。
create_db9.png

コードを実行すると以下のようになり、値を取り出せました。

実行結果
[(1, 'a', 1000, '2021-03-01'), (2, 'b', 2000, '2021-04-01')]

#4-苦労した点
別の環境で「SQL Server構成マネージャー」を探した際に、スタートメニューにありませんでした。結局場所についてはこちらを参考にしたら見つかりました。

#5-まとめ
DBをPythonから動かすことに成功しました。次はWebアプリケーションのGUIから値を操作することを目標に開発しようと思います。
次回記事

#6-参考サイト

・各種ソフトウェアのインストール
Download Python | Python.org
オンプレミスまたはクラウドで SQL Server をお試しください
SQL Server Management Studio (SSMS) のダウンロード
手順 1:pyodbc Python 開発用に開発環境を構成する

・DBの環境構築
pyodbcでWindows認証でSQLServerにリモート接続する方法
Python環境にpyodbcをインストールしてSQLServerに接続する手順
Configure the Windows Firewall to Allow SQL Server Access

23
22
1

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
23
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?