例文を使って繰り返し業務を時短

【Python】PythonからPostgreSQLを操作

pythonを利用してPostgreSQLを操作する python

PythonからPostgreSQLを操作する方法

PythonからPostgreSQLを操作するためには、まず psycopg2 ライブラリをインストールする必要があります。次に、以下の手順に従って操作を行うことができます。

1.ライブラリをインポートする

import psycopg2

2.PostgreSQLに接続する

conn = psycopg2.connect(
    host="localhost",
    database="mydatabase",
    user="myusername",
    password="mypassword"
)

上記の例では、ローカルのホストにある mydatabase という名前のデータベースに myusername というユーザー名と mypassword というパスワードで接続しています。

3.カーソルを作成する

cur = conn.cursor()

4.SQLクエリを実行する

cur.execute("SELECT * FROM mytable")

上記の例では、mytable テーブルからすべての列を取得しています。

5.結果を取得する

rows = cur.fetchall()

上記の例では、cur.fetchall() を使用して、実行したクエリからすべての結果を取得しています。

6.変更をコミットする

conn.commit()

7.接続を閉じる

cur.close()
conn.close()

上記の例では、カーソルと接続を閉じています。

その他の例をご紹介

*PythonからPostgreSQLへ接続もできますし、MySQLやGCPのBigQueryにも接続できます。他にも、色々なデータベースを操作できます。


SELECT 特定のカラム、集計関数(集計対象カラム)  
FROM テーブル名
WHERE 条件式
GROUP BY 特定のカラム
HAVING 集計関数(集計対象カラム)で条件式
ORDER BY ソート条件

#売上金額が1000円以上の商品名のみ抽出
SELECT
    商品名
    , sum(売上金額)
FROM 売上実績
GROUP BY 商品名
HAVING sum(売上金額) >= 1000

*HAVINGはGROUP BYとORDER BYの間に表記


HAVINGとWHEREの違い

*データに対して抽出を行う

#実行の順番(順番を誤って表記するとエラー)
#「どのテーブルの、どのデータを、どうグルーピングし、
   グルーピングしたデータをどう抽出し、どのカラムを表示するか」の流れ
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY

*WHEREはGROUP BYされる前のデータに抽出条件を付けくわえる

*HAVINGはGROUP BYされた後のデータに抽出条件を 付けくわえる

WHEREとHAVINGを同時に使う

#「Tシャツ以外の売上金額の合計を集計し、売上金額が1000円以下のみのデータ」を出力
#WHEREの!=は否定:ジャケット以外のデータを抽出
SELECT
    商品名
    , sum(売上金額)
FROM
    実績管理表
WHERE
    商品名 !='Tシャツ'
GROUP BY
    商品名
HAVING
    sum(売上金額) <= 1000

コメント

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