Pythonのpsycopg2を用いてElephantSQLインスタンスのテーブル内にレコードを挿入する

スポンサーリンク

Pythonのpsycopg2を用いてElephantSQLインスタンスのテーブル内にレコードを挿入してみます。

この記事は「Pythonのpsycopg2を用いてElephantSQLのインスタンスにテーブルを作成する」という記事の続きとなっており、事前にpsycopg2をインストールした状態となっています。

なお、レコードとは、フィールドの集合であり、データ型が異なる可能性があり、通常は一定の数と順序になっている。フィールドは、データベースの列に含まれる単一のデータ項目(区分けしたときの1つ1つアイテム)で、例えば名前、住所、電話番号などが含まれる。

■Python

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

■psycopg2を用いてElephantSQLインスタンスのテーブル内にレコードを挿入する

では、早速psycopg2を用いてElephantSQLインスタンスのテーブル内にレコードを挿入するスクリプトを書いていきます。

■コード

import psycopg2

conn = psycopg2.connect('postgres://****@*****.db.elephantsql.com/dsppyfom(取得したURL)')

cur = conn.cursor()

cur.execute('''INSERT INTO test01 (ID, Name,Address) VALUES (%s, %s, %s)''', (1, "田中","大阪"))

conn.commit()

conn.close()

今回はimportを用いてpsycopg2モジュールを呼び出します。その後、connという変数を定義し、その中でpsycopg2.connect()を用います。括弧内に引数,パラメータとして、ElephantSQLから取得したURLを貼り付けます。これで、サーバーへの接続を確立し、データベースセッションで、新しいオブジェクトを返します。なお、データベースセッションは、1つまたは複数のトランザクションで構成されている。トランザクションは、一連の情報交換と関連する作業、今回の場合はデータベースの更新などである。

その後、cur変数を定義し、その中でconn.cursor()を用います。これでカーソルオブジェクトが返されます。このカーソルオブジェクトを用いて、データベース セッションでPostgreSQLコマンドを実行できるようになります。

カーソルオブジェクトを作成後、cur.execute()を用います。括弧内には、引数,パラメータとして、データベースを操作するためにクエリまたはコマンドを渡します。今回はINSERT文を用いて、前回作成した「test01」というテーブル内のID, Name,Addressという列(カラム)に「1, “田中”,”大阪”」という値をそれぞれ挿入する文を記述します。これでクエリまたはコマンドが実行されます。

実行されますが、このままだとテーブル内にレコードを挿入する作業が保留中となってしまうので、conn.commit()を用います。これで保留中のトランザクションをデータベースにコミットさせます(確定させます)。

最後に、conn.close()を用いてサーバーへの接続を閉じます。

■実行・検証

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

実行してみると、今回のスクリプトではprint()を用いてテーブルの作成完了といった文字列の出力は記述していないので、何も出力されません。

何も出力されませんが、ElephantSQLの「instance」ページから作成したインスタンスの「Name」をクリックし、左側メニューから「BROWSER」をクリックし、入力欄にSELECT文を入力。その後、「Execute」ボタンをクリックし、データを取得してみると、psycopg2を用いてElephantSQLインスタンスのテーブル内にレコードが挿入されていることが確認できました。

コメント

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