Pythonでpsycopg2を使用しPostgreSQLデータベースを作成する

Pythonでpsycopg2を使用しPostgreSQLデータベースを作成してみます。

今回は、psycopg2モジュールを使用します。psycopg2はPythonの標準ライブラリ、モジュールではありませんので、事前にインストールする必要があります。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■psycopg2を使用しPostgreSQLデータベースを作成する

psycopg2を使用しPostgreSQLデータベースを作成しますが、PostgreSQLのインストールは前回行っていますので、その後に新しいデータベースを作成してみます。

なお、現状のPostgreSQL上で作成されているデータベースは上記になります。

■コード

import psycopg2

connection = psycopg2.connect(user="postgres",password="muen0606",host="localhost",port="5432",database="postgres")

connection.autocommit = True

cursor = connection.cursor()

sql = ''' CREATE database db_test '''

cursor.execute(sql)

print("データベースの作成に成功しました")

connection.close()

インポートでpsycopg2を呼び出します。呼び出した後に、connection変数を定義し、その中でpsycopg2.connect()関数を使用し、PostgreSQLデータベースインスタンスへの接続を処理します。この際にPostgreSQLデータベースのデータベース名やパスワード、ホスト名などが必要になります。これらの情報をpsycopg2.connect()関数の括弧内の引数,パラメーターとして渡します。

その後、connection.autocommitで、読み取り/書き込みをTrue(真)にし、バックエンドに送信されるすべてのステートメントが即座に有効します。

有効設定後、connection.cursor()関数で、データベース操作を行うカーソルを作成し、cursor変数に格納します。

格納後、PostgreSQLに接続を行っていますので、操作を行うために、sql変数を定義し、データベースを作成するためのクエリ、コマンドを記述し、格納します。今回は「db_test」というデータベースを作成してみます。

その後、cursor.execute()を使用し、接続したデータベースの操作(クエリまたはコマンド)を実行します。関数の括弧内には、sql変数を渡します。これで設定したクエリ、コマンドで操作が実行され、データベースが作成されます。

作成後、print()関数で「データベースが作成完了」という文字列を出力させます。

出力後、connection.close()関数でPostgreSQLの接続を閉じます。

■実行・検証

このスクリプトを「create_db_test.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると、PostgreSQLへの接続が行われ、データベースを操作し、データベースを作成。作成後、print()関数で、「作成に成功しました」という文字列を出力させることができました。

出力後、SQL Shellで今回作成したデータベースが存在しているのか確認すると、「db_test」というデータベースが存在することを確認できました。

コメント

タイトルとURLをコピーしました