SELECT

記事
IT・テクノロジー

SELECT

cur = con.execute("SELECT文")

結果を取得

行リスト = cur.fetchall()
1行目
行 = cur.fetchone()
行を Row オブジェクトとして取得
import sqlite3

with sqlite3.connect(DBパス, detect_types=sqlite3.PARSE_DECLTYPES) as con:
    con.row_factory = sqlite3.Row
    cur = con.execute(SQL文)
    行リスト = cur.fetchall()
Row は {列1: 値1, ... } の辞書のように扱える
※ for 変数 in 行: のループ時に変数には 列の値 が入る
     列名の配列を取得するには 行.keys()

列の値のタプル
 行数
len(行リスト)

ループ

for 行 in con.execute("SELECT文"):
データ量が多い場合
while rows := con.fetchmany(100):
    for row in rows:

SQL

 グループ化

SELECT A列, SUM(B列) FROM テーブル
GROUP BY A列
集計した列で並べ替え
SELECT A列, SUM(B列) AS 別名 FROM テーブル
GROUP BY A列
OEDER BY 別名

 サブクエリ

(サブクエリ)
テーブル
SELECT ...
FROM (サブクエリ)
SELECT ...
FROM ...
WHERE ... IN (
  サブクエリのSELECT文
)

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す