2014年7月18日金曜日

開発環境

Head First SQL ―頭とからだで覚えるSQLの基本 (Lynn Beighley(著)、 佐藤 直生 (監訳)、 松永 多苗子 (翻訳)、オライリージャパン)の2章(SELECT 文: 天賦のデータ検索)、自分で考えてみよう(飲み物当てクイズ(p.60))を解いてみる。

自分で考えてみよう(飲み物当てクイズ(p.60))

コード(BBEdit, Emacs)

sample60.py

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

import sqlite3

def p(items):
    for item in items:
        print(item)
    print('')

connection = sqlite3.connect('drinks.sqlite')
cursor = connection.cursor()

# ライムフィズ

# エラー
try:
    cursor.execute("""SELECT * FROM easy_drinks WHERE main = ソーダ""")
    p(cursor.fetchall())
except Exception as err:
    print(type(err), err)

# ホットゴールド、インディアンサマー

try:
    print('ホットゴールド?')
    cursor.execute(
        '''SELECT * FROM easy_drinks where second = "オレンジジュース"''')
    p(cursor.fetchall())
except Exception as err:
    print(type(err), err)

# オーマイゴッシュ

try:
    print('ブルームーン、ライムフィズ、ローンツリー?')
    cursor.execute(
        """SELECT * FROM easy_drinks WHERE amount2 < '1'""")
    p(cursor.fetchall())
except Exception as err:
    print(type(err), err)

try:
    print('オーマイゴッシュ、ホットゴールド?')
    cursor.execute(
        """SELECT * FROM easy_drinks WHERE main > 'トニックウォーター'""")
    p(cursor.fetchall())
except Exception as err:
    print(type(err), err)

try:
    print('ブラックソーン、ライムフィズ、ローンツリー、グレイハウンド、' +
          'ブルフロッグ?')
    cursor.execute(
        """SELECT * FROM easy_drinks WHERE amount1 = '1.5'""")
    p(cursor.fetchall())
except Exception as err:
    print(type(err), err)

connection.close()

入出力結果(Terminal, IPython)

$ ./sample60.py 
<class 'sqlite3.OperationalError'> no such column: ソーダ
ホットゴールド?
('ホットゴールド', '桃果汁', 3, 'オレンジジュース', 6, '熟したオレンジジュースをマグカップに注いで、桃果汁を加える')

ブルームーン、ライムフィズ、ローンツリー?
('ブルームーン', 'ソーダ', 1.5, 'ブルーベリージュース', 0.75, '氷と一緒にかきまぜ、濾してカクテルグラスに入れ、レモンを一搾り加える')
('ライムフィズ', 'スプライト', 1.5, 'ライムジュース', 0.75, '氷と一緒にかきまぜ、濾してカクテルグラスに入れる')
('ローンツリー', 'ソーダ', 1.5, 'チェリージュース', 0.75, '氷と一緒にかきまぜ、濾してカクテルグラスに入れる')

オーマイゴッシュ、ホットゴールド?
('オーマイゴッシュ', '桃果汁', 1, 'パイナップルジュース', 1, '氷と一緒にかきまぜ、濾してショットグラスに入れる')
('ホットゴールド', '桃果汁', 3, 'オレンジジュース', 6, '熟したオレンジジュースをマグカップに注いで、桃果汁を加える')

ブラックソーン、ライムフィズ、ローンツリー、グレイハウンド、ブルフロッグ?
('ブラックソーン', 'トニックウォーター', 1.5, 'パイナップルジュース', 1, '氷と一緒にかきまぜ、濾してカクテルグラスに入れ、レモンを一搾り加える')
('ブルームーン', 'ソーダ', 1.5, 'ブルーベリージュース', 0.75, '氷と一緒にかきまぜ、濾してカクテルグラスに入れ、レモンを一搾り加える')
('ライムフィズ', 'スプライト', 1.5, 'ライムジュース', 0.75, '氷と一緒にかきまぜ、濾してカクテルグラスに入れる')
('ローンツリー', 'ソーダ', 1.5, 'チェリージュース', 0.75, '氷と一緒にかきまぜ、濾してカクテルグラスに入れる')
('グレイハウンド', 'ソーダ', 1.5, 'グレープフルーツジュース', 5, '氷の上に注いで、よく混ぜる')
('ブルフロッグ', 'アイスティー', 1.5, 'レモネード', 5, '氷の上に注いでライムを一切れ加える')

$

0 コメント:

コメントを投稿