2014年7月31日木曜日

開発環境

Head First SQL ―頭とからだで覚えるSQLの基本 (Lynn Beighley(著)、 佐藤 直生 (監訳)、 松永 多苗子 (翻訳)、オライリージャパン)の3章(DELETE文とUPDATE文: 役に立つ変更)、自分で考えてみよう(p.136)を解いてみる。

自分で考えてみよう(p.136)

コード(BBEdit, Emacs)

sample136.py

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

import sqlite3

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

def p(msg):
    print(msg)
    for row in cursor.fetchall():
        print(row)

def p_all():
    cursor.execute("""SELECT * FROM drink_info""")
    print(tuple(map(lambda header: header[0], cursor.description)))
    p('drink_info')

p_all()

cursor.execute("""
INSERT INTO drink_info VALUES(
'キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
""")
cursor.execute("""
DELETE FROM drink_info
WHERE drink_name = 'キスオンザリップス' AND
calories <> 170
""")

cursor.execute("""
INSERT INTO drink_info VALUES(
'ブラックソーン', 3, 8.4, '金', 'Y', 33)
""")
cursor.execute("""
INSERT INTO drink_info VALUES(
'グレイハウンド', 4, 14, '金', 'Y', 50)
""")
cursor.execute("""
DELETE FROM drink_info
WHERE color = '黄'
""")

cursor.execute("""
INSERT INTO drink_info VALUES(
'オーマイゴッシュ', 4.5, 8.6, '橙', 'Y', 35)
""")
cursor.execute("""
DELETE FROM drink_info
WHERE cost = 3.5
""")

cursor.execute("""
INSERT INTO drink_info VALUES(
'ブルームーン', 3.5, 8.6, '青', 'Y', 35)
""")
cursor.execute("""
INSERT INTO drink_info VALUES(
'ライムフィズ', 3.5, 5.4, '緑', 'Y', 24)
""")
cursor.execute("""
DELETE FROM drink_info
WHERE cost = 2.5
""")

p_all()

connection.commit()
connection.close()

入出力結果(Terminal, IPython)

$ ./sample136.py
('drink_name', 'cost', 'carbs', 'color', 'ice', 'calories')
drink_info
('ブラックソーン', 3, 8.4, '黄', 'Y', 33)
('ブルームーン', 2.5, 3.2, '青', 'Y', 12)
('オーマイゴッシュ', 3.5, 8.6, '橙', 'Y', 35)
('ライムフィズ', 2.5, 5.4, '緑', 'Y', 24)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 171)
('ホットゴールド', 3.2, 32.1, '橙', 'N', 135)
('ローンツリー', 3.6, 4.2, '赤', 'Y', 17)
('グレイハウンド', 4, 14, '黄', 'Y', 50)
('インディアンサマー', 2.8, 7.2, '茶', 'N', 30)
('ブルフロッグ', 2.6, 21.5, '黄褐色', 'Y', 80)
('ソーダアンドイット', 3.8, 4.7, '赤', 'N', 19)
('drink_name', 'cost', 'carbs', 'color', 'ice', 'calories')
drink_info
('ホットゴールド', 3.2, 32.1, '橙', 'N', 135)
('ローンツリー', 3.6, 4.2, '赤', 'Y', 17)
('インディアンサマー', 2.8, 7.2, '茶', 'N', 30)
('ブルフロッグ', 2.6, 21.5, '黄褐色', 'Y', 80)
('ソーダアンドイット', 3.8, 4.7, '赤', 'N', 19)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('ブラックソーン', 3, 8.4, '金', 'Y', 33)
('グレイハウンド', 4, 14, '金', 'Y', 50)
('オーマイゴッシュ', 4.5, 8.6, '橙', 'Y', 35)
('ブルームーン', 3.5, 8.6, '青', 'Y', 35)
('ライムフィズ', 3.5, 5.4, '緑', 'Y', 24)
$

0 コメント:

コメントを投稿