PythonでPostgreSQLを操作する方法!psycopg2の基本と実践を初心者向けに解説
生徒
「Pythonでデータベースを使いたいんですが、PostgreSQLって難しそうで不安です…」
先生
「大丈夫ですよ。Pythonにはpsycopg2という便利な仕組みがあって、手順を守れば初心者でも安全に操作できます。」
生徒
「パソコン操作もあまり慣れていないんですが、それでも理解できますか?」
先生
「画面の向こうにノートを広げて書く感覚で考えれば大丈夫です。では基本から一緒に見ていきましょう。」
1. PostgreSQLとPythonの関係とは?
PostgreSQLは、たくさんの情報をきちんと整理して保存できるデータベースです。紙のノートに表を書いて管理する代わりに、パソコンの中で安全に保管するイメージをすると分かりやすいです。Pythonは、そのノートに文字を書いたり消したりするためのペンの役割を持ちます。PythonからPostgreSQLを操作することで、データの追加や検索を自動で行えるようになります。
2. psycopg2とは何かをやさしく理解しよう
psycopg2は、PythonとPostgreSQLをつなぐための橋のような存在です。人と人が会話するときに言葉が必要なように、PythonがPostgreSQLにお願いをするときの共通言語がpsycopg2です。この仕組みを使うことで、難しい操作を覚えなくても、安全にデータベースへ指示を出せます。
3. データベースへ接続する基本の流れ
最初に行うのが接続です。これは倉庫の扉を開ける作業に似ています。正しい鍵を使わないと中に入れません。接続では、データベース名やユーザー名などを指定します。一度つながれば、データを読む準備が整います。
import psycopg2
conn = psycopg2.connect(
dbname="sampledb",
user="user",
password="password",
host="localhost"
)
4. SQLを使ってデータを取得する
SQLは、データベースに対して「これを見せてください」とお願いする文章です。psycopg2では、このSQLをPythonの中に書いて実行します。カーソルという仕組みを使うと、結果を一行ずつ取り出せます。
cur = conn.cursor()
cur.execute("SELECT name FROM users")
rows = cur.fetchall()
for row in rows:
print(row)
('田中',)
('佐藤',)
5. データを追加する処理を体験しよう
データの追加は、ノートに新しい行を書き足す作業です。INSERTというSQLを使います。間違った内容を書かないように、プレースホルダを使って安全に値を渡すのが大切です。
cur.execute(
"INSERT INTO users (name, age) VALUES (%s, %s)",
("山田", 20)
)
conn.commit()
6. 更新と削除の考え方
更新は既にある情報を書き換えること、削除は不要な行を消すことです。どちらも元に戻せない操作なので、条件をしっかり指定します。特定の人だけを対象にすることで、安心して操作できます。
cur.execute(
"UPDATE users SET age = %s WHERE name = %s",
(21, "山田")
)
conn.commit()
7. エラーを防ぐために覚えておきたいこと
操作中に失敗するとエラーが発生します。これは、鍵が違ったり、存在しない棚を探したときに起こります。処理が終わったら、必ず接続を閉じることでトラブルを防げます。後片付けをする感覚で覚えてください。
cur.close()
conn.close()
8. 初心者がつまずきやすいポイント
よくある失敗は、接続情報の入力ミスや、commitを忘れることです。特にcommitをしないと、ノートに書いたつもりでも保存されません。操作の一つ一つに意味があると理解すると、落ち着いて対処できるようになります。