計算機科学のブログ

SQL - SQLite - Python - 高度なSELECT文 - 新たな目でデータを見る - ORDER BY

Head First SQL ―頭とからだで覚えるSQLの基本Lynn Beighley(著)、 佐藤 直生(監訳)、 松永 多苗子(翻訳)、 オライリージャパンの 6章(高度なSELECT文 - 新たな目でデータを見る)、p.251(自分で考えてみよう)の解答を求めてみる。

schema5.sql

select title, category
from movie_table
where category = 'ファミリー'
order by title;

コード

sample5.py

#! /usr/bin/env python3
import sqlite3

con = sqlite3.connect('sample.db')
cur = con.cursor()

with open(f'schema5.sql') as f:
    cur.execute(f.read())

if (d := cur.description) is not None:
    print([t[0] for t in d])
    for row in cur.fetchall():
        print(row)

cur.close()
con.close()

入出力結果(Terminal, Zsh)

% ./sample5.py
['title', 'category']
('アクティング・アップ', 'ファミリー')
('アクティング・アップ', 'ファミリー')
('アクティング・アップ', 'ファミリー')
('アクティング・アップ', 'ファミリー')
('アフター・ザクラウン・リーブス', 'ファミリー')
('アフター・ザクラウン・リーブス', 'ファミリー')
('アフター・ザクラウン・リーブス', 'ファミリー')
('アフター・ザクラウン・リーブス', 'ファミリー')
('アンディのため息', 'ファミリー')
('アンディのため息', 'ファミリー')
('アンディのため息', 'ファミリー')
('アンディのため息', 'ファミリー')
('アー・ユー・ペイイング・アテンション', 'ファミリー')
('アー・ユー・ペイイング・アテンション', 'ファミリー')
('アー・ユー・ペイイング・アテンション', 'ファミリー')
('アー・ユー・ペイイング・アテンション', 'ファミリー')
('アー・ユー・マイ・マザー?', 'ファミリー')
('アー・ユー・マイ・マザー?', 'ファミリー')
('アー・ユー・マイ・マザー?', 'ファミリー')
('アー・ユー・マイ・マザー?', 'ファミリー')
%