PostgreSQL - Python Interface: A Beginner's Guide

こんにちは、未来のデータベースの魔法使いさんたち!私は、ポストgreSQLとPythonの世界にあなたたちを案内するのがとても楽しみです。コンピュータサイエンスを多年間教えてきた者として、この組み合わせはピーナッツバターとジャムのように、とても美味しいものだと言えます。では、腕をまくって、飛び込んでみましょう!

PostgreSQL - Python

インストール

魔法を起こす前に、道具を準備する必要があります。これは、美食の調理前にキッチンを準備するのと同じです。

1.まず、コンピュータにPostgreSQLがインストールされていることを確認してください。公式のPostgreSQLウェブサイトからダウンロードできます。

2.次に、PostgreSQLと通信するためのPythonモジュールをインストールする必要があります。ターミナルまたはコマンドプロンプトを開き、以下のコマンドを入力します:

pip install psycopg2

このコマンドは、コンピュータに新しいツールを追加するよう依頼することに相当します。これが完了すると、準備は完了です!

Python psycopg2モジュールのAPI

道具が揃ったので、それらが何をできるか簡単に見てみましょう。psycopg2モジュールは、PostgreSQLと対話するための関数セットを提供します。以下は最も一般的なものの表です:

関数 説明
connect() データベースに接続します
cursor() SQLコマンドを実行するためのカーソルオブジェクトを作成します
execute() データベース操作(クエリまたはコマンド)を実行します
fetchone() クエリ結果セットの次の行を取得します
fetchall() クエリ結果のすべて(または残りの)行を取得します
commit() 現在のトランザクションをコミットします
rollback() 保留中のトランザクションの開始地点に戻します
close() データベース接続を閉じます

これが外国語のように見えるかもしれませんが、焦らずに、私たちは詳細にそれぞれを探求していきます!

データベースへの接続

まず、データベースに接続してみましょう。これは、ドアをノックして中に入ることを依頼することに似ています。

import psycopg2

try:
connection = psycopg2.connect(
database="mydb",
user="myuser",
password="mypassword",
host="localhost",
port="5432"
)
print("接続成功!")
except (Exception, psycopg2.Error) as error:
print("PostgreSQLへの接続中にエラー発生", error)

このコードでは、以下のことを行っています:

  1. psycopg2モジュールをインポートします
  2. connect()関数を使用して接続を確立します
  3. データベース名、ユーザー、パスワードなど、必要な詳細を提供します
  4. try-exceptブロックを使用して、潜在的なエラーを処理します

無事に進むと、「接続成功!」が表示されます。おめでとうございます、あなたはデータベースの扉を開いたのです!

テーブルの作成

今では中に入ったので、データを保存するためのテーブルを作成してみましょう。本棚を設置して本を整理するのに似ています。

try:
cursor = connection.cursor()
create_table_query = '''CREATE TABLE books
(ID INT PRIMARY KEY     NOT NULL,
TITLE           TEXT    NOT NULL,
AUTHOR          TEXT    NOT NULL,
PUBLISHED_DATE  DATE);'''
cursor.execute(create_table_query)
connection.commit()
print("テーブル作成成功!")
except (Exception, psycopg2.Error) as error:
print("テーブル作成中にエラー発生", error)
finally:
if connection:
cursor.close()
connection.close()
print("PostgreSQL接続が閉じられました")

ここで起こっていることは以下の通りです:

  1. カーソルオブジェクトを作成します。これはデータベースアシスタントのようなものです
  2. 'books'という名前のテーブルを作成するSQLクエリを定義します
  3. クエリを実行します
  4. 変更を永続化するためにコミットします
  5. 最後に、カーソルと接続を閉じて、データベースの好市民 remainします

INSERT操作

棚に本を追加する時がきました!テーブルにレコードをINSERTします。

try:
cursor = connection.cursor()
insert_query = """ INSERT INTO books (ID, TITLE, AUTHOR, PUBLISHED_DATE)
VALUES (%s, %s, %s, %s)"""
record_to_insert = (1, "To Kill a Mockingbird", "Harper Lee", "1960-07-11")
cursor.execute(insert_query, record_to_insert)
connection.commit()
print("レコードが正常に插入されました")
except (Exception, psycopg2.Error) as error:
print("データ插入中にエラー発生", error)

このコードでは以下のことを行っています:

  1. INSERTクエリを作成し、プレースホルダー(%s)を使用します
  2. 插入する値を定義します
  3. クエリを実行し、値を渡します
  4. 変更をコミットします

SELECT操作

今、棚を確認して、何が入っているか見てみましょう!

try:
cursor = connection.cursor()
select_query = "SELECT * from books"
cursor.execute(select_query)
records = cursor.fetchall()
for row in records:
print("ID:", row[0])
print("TITLE:", row[1])
print("AUTHOR:", row[2])
print("PUBLISHED DATE:", row[3], "\n")
except (Exception, psycopg2.Error) as error:
print("データ取得中にエラー発生", error)

ここで起こっていることは以下の通りです:

  1. 'books'テーブルからすべてのレコードを取得するSELECTクエリを作成します
  2. クエリを実行します
  3. fetchall()を使用してすべての結果を取得します
  4. 各結果をループして詳細を表示します

UPDATE操作

あっ、間違えました。レコードを修正しましょう。

try:
cursor = connection.cursor()
update_query = """Update books set AUTHOR = %s where ID = %s"""
cursor.execute(update_query, ("Nelle Harper Lee", 1))
connection.commit()
print("レコードが正常に更新されました")
except (Exception, psycopg2.Error) as error:
print("データ更新中にエラー発生", error)

このコードでは以下のことを行っています:

  1. UPDATEクエリを作成し、プレースホルダーを使用します
  2. クエリを実行し、新しい値を渡します
  3. 変更をコミットします

DELETE操作

最後に、棚から本を削除する方法を学びましょう。

try:
cursor = connection.cursor()
delete_query = """Delete from books where ID = %s"""
cursor.execute(delete_query, (1,))
connection.commit()
print("レコードが正常に削除されました")
except (Exception, psycopg2.Error) as error:
print("データ削除中にエラー発生", error)
finally:
if connection:
cursor.close()
connection.close()
print("PostgreSQL接続が閉じられました")

ここで起こっていることは以下の通りです:

  1. 削除するためのDELETEクエリを作成し、プレースホルダーを使用します
  2. クエリを実行し、削除するレコードのIDを渡します
  3. 変更をコミットします
  4. 最後に、カーソルと接続を閉じます

そして、ここまでで、PostgreSQLを使用してPythonでデータベースを操作する基本的なことを学びました。練習は完璧を生みますので、さまざまなことを試してみてください。幸せなコーディングを、そしてデータベースは常に完璧な秩序を保ちますように!

Credits: Image by storyset