Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonとpsycopg2でPostgreSQLを操作する入門ガイド

このチュートリアルでは、PythonからPostgreSQLを操作する方法を学びます。作業を始める前に必要な準備があるので、まずは環境を整えていきましょう。

事前準備

1. PostgreSQLのインストール

まずは公式ガイドに従ってPostgreSQLをインストールしてください。お使いのOSごとの手順は、公式サイトで詳しく確認できます。

2. psycopg2のインストール

次に、PythonからPostgreSQLへ接続して操作するためのモジュールpsycopg2をインストールします。以下のコマンドを実行しましょう。

pip install psycopg2

3. サンプルデータベースの作成

pgAdminを開き、動作確認用のサンプルデータベースを作成しておきます。この記事では「testing」という名前のデータベースを使用します。

データベース操作の基本手順

psycopg2を使ったデータベース操作は、基本的に以下の流れで行います。

  • psycopg2モジュールをインポートする
  • データベース名・ユーザー名・パスワードをそれぞれ別の変数に格納する
  • psycopg2.connect(database=name, user=name, password=password)メソッドでデータベースに接続する
  • SQLコマンドを実行するためのカーソルオブジェクトを生成する
  • クエリを作成し、cursor.execute(query)メソッドで実行する
  • 結果が存在する場合はcursor.fetchall()メソッドで情報を取得する
  • connection.close()メソッドで接続を閉じる

サンプルコード

それでは、実際にテーブルの作成からデータの挿入・取得までを行うコードを見てみましょう。

# psycopg2モジュールをインポート
import psycopg2

# 接続情報を変数に格納
database = 'testing'
user = 'postgres'
password = 'C&o%Z?bc'

# データベースに接続
connection = psycopg2.connect(database=database, user=user, password=password)

# カーソルを生成
cursor = connection.cursor()

# テーブルを作成するクエリ
create_table = "CREATE TABLE testing_members (id SERIAL PRIMARY KEY, name VARCHAR(25) NOT NULL)"

# クエリを実行
cursor.execute(create_table)

# テーブルに挿入するサンプルデータ
testing_members = ['Python', 'C', 'JavaScript', 'React', 'Django']

# testing_membersテーブルへのデータ挿入
for testing_member in testing_members:
    populate_db = f"INSERT INTO testing_members (name) VALUES ('{testing_member}')"
    cursor.execute(populate_db)
    # 変更をデータベースに保存(コミット)
    connection.commit()

# 全件取得するクエリ
fetch_all = "SELECT * FROM testing_members"
cursor.execute(fetch_all)

# すべての行を取得
rows = cursor.fetchall()

# 取得したデータを表示
for row in rows:
    print(f"{row[0]} {row[1]}")

# 接続を閉じる
connection.close()

実行結果

上記のコードを実行すると、次のような出力が得られます。SERIAL型によりidが自動的に採番されていることがわかります。

1 Python
2 C
3 JavaScript
4 React
5 Django

補足:プレースホルダーを使った安全なクエリ

実際の開発では、f文字列で値を直接埋め込む代わりに、プレースホルダー(%s)を使ったパラメータ化クエリが推奨されます。これによりSQLインジェクションのリスクを防げます。

populate_db = "INSERT INTO testing_members (name) VALUES (%s)"
cursor.execute(populate_db, (testing_member,))

まとめ

今回は、psycopg2を使ってPythonからPostgreSQLに接続し、テーブル作成・データ挿入・データ取得・接続解除までの一連の流れを解説しました。基本の手順を押さえておけば、より複雑なデータベース操作にも応用できます。チュートリアルについて不明な点があれば、コメント欄でお気軽にお尋ねください。

  1. Android MessagesをPCで使おう!Web版の初期設定と知って得する便利機能5選

    Googleは巨大なプラットフォームであり、世界有数の検索エンジンであることは言うまでもありません。しかし、その実力は検索だけにとどまりません。日常生活をより快適にしてくれる多彩なサービスを数多く提供しています。そんなGoogleが、Android Messagesアプリのアップデートをリリースしました。これにより、任意のWebブラウザからSMSメッセージを送受信できるようになり、AndroidユーザーはPCやMacから手軽にメッセージのやり取りが可能になりました。 利用に必要なのは、最新版にアップデートしたAndroid Messagesアプリだけ。以下では、Web版Android Mess

  2. Xen 仮想化の開始

    Zで綴られるZenは、8時間保持した後、雪の中でおしっこをしているときに頭頂部にある典型的な感覚です. Xen は X で綴られており、KVM と同様に、企業市場を対象としていますが、家庭でもビジネスでもセットアップを検討できるオープンソースの仮想化テクノロジです。 KVM に関するいくつかのチュートリアルがあり、導入記事、ストレージとネットワーク (ブリッジ ネットワークを含む) のセットアップと構成の方法、および VirtualBox との競合の解決方法をカバーしています。ここで、Xen についてもう少し学びましょう。同様に、仮想マシンをインストールして実行するために必要な最初の手順、