SQL - SQLite - SELECT - 天賦のデータ検索 - where句, 多くの方法
Head First SQL ―頭とからだで覚えるSQLの基本、 Lynn Beighley(著)、 佐藤 直生(監訳)、 松永 多苗子(翻訳)、 オライリージャパンの 2章(SELECT - 天賦のデータ検索)、p.74(自分で考えてみよう)の解答を求めてみる。
コード
sample6.py
#! /usr/bin/env python3
import sqlite3
con = sqlite3.connect('drinks.db')
cur = con.cursor()
sql = '''
select * from easy_drinks;
'''
cur.execute(sql)
for row in cur.fetchall():
print(row)
wheres = [
'''
drink_name = 'キスオンザリップス'
''',
'''
second = 'あんず果汁'
''',
'''
amount2 = 7
''',
'''
directions = '氷の上に注いで、ストローを付ける'
''',
'''
drink_name = 'ブルフロッグ'
''',
'''
main = 'アイスティー'
''',
'''
second = 'レモネード'
''',
]
for where in wheres:
sql = f'''
select drink_name
from easy_drinks
where {where};
'''
print(sql)
cur.execute(sql)
for row in cur.fetchall():
print(row)
cur.close()
con.close()
入出力結果(Terminal, Zsh)
% ./sample6.py
('ブラックソーン', 'トニックウォーター', 1.5, 'パイナップルジュース', 1.0, '氷と一緒にかきまぜ、濾してカクテルにグラスに入れ、レモンを一絞り加える')
('ブルームーン', 'ソーダ', 1.0, 'ブルーベリージュース', 0.75, '氷と一緒にかきまぜ、濾してカクテルにグラスに入れ、レモンを一絞り加える')
('オーマイゴッシュ', '桃果汁', 1.5, 'パイナップルジュース', 1.0, '氷と一緒にかきまぜ、濾してショットグラスに入れる')
('ライムフィズ', 'スプライト', 2.0, 'ライムジュース', 0.75, '氷と一緒にかきまぜ、濾してカクテルグラスに入れる')
('キスオンザリップス', 'チェリージュース', 3.0, 'あんず果汁', 7.0, '氷の上に注いで、ストローを付ける')
('ホットゴールド', '桃果汁', 1.5, 'オレンジジュース', 6.0, '熟したオレンジジュースをマグカップに注いで、桃果汁を加える')
('ローンツリー', 'ソーダ', 1.5, 'チェリージュース', 0.75, '氷と一緒にかきまぜ、濾してカクテルグラスに入れる')
('グレイハウンド', 'ソーダ', 2.0, 'グレープフルーツジュース', 5.0, '氷の上に注いで、よく混ぜる')
('インディアンサマー', 'アップルジュース', 1.5, 'ホットティー', 6.0, 'ジュースをマグカップに加え、ホットティーで仕上げる')
('ブルフロッグ', 'アイスティー', 1.5, 'レモネード', 5.0, '氷の上に注いでライムを一切れ加える')
('ソーダアンドイット', 'ソーダ', 2.0, 'グレープジュース', 1.0, '氷を入れずに、カクテルグラスでシェイクする')
select drink_name
from easy_drinks
where
drink_name = 'キスオンザリップス'
;
('キスオンザリップス',)
select drink_name
from easy_drinks
where
second = 'あんず果汁'
;
('キスオンザリップス',)
select drink_name
from easy_drinks
where
amount2 = 7
;
('キスオンザリップス',)
select drink_name
from easy_drinks
where
directions = '氷の上に注いで、ストローを付ける'
;
('キスオンザリップス',)
select drink_name
from easy_drinks
where
drink_name = 'ブルフロッグ'
;
('ブルフロッグ',)
select drink_name
from easy_drinks
where
main = 'アイスティー'
;
('ブルフロッグ',)
select drink_name
from easy_drinks
where
second = 'レモネード'
;
('ブルフロッグ',)
%