開発環境
- OS X Mavericks - Apple、たまにFreeBSD 10(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python (プログラミング言語)
- SQLite (RDBMS(Relational Database Management System))
Head First SQL ―頭とからだで覚えるSQLの基本 (Lynn Beighley(著)、 佐藤 直生 (監訳)、 松永 多苗子 (翻訳)、オライリージャパン)の2章(SELECT 文: 天賦のデータ検索)、エクササイズ(p.59)を解いてみる。
エクササイズ(p.59)
コード(BBEdit, Emacs)
sample59.py
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import sqlite3
connection = sqlite3.connect('drinks.sqlite')
cursor = connection.cursor()
cursor.execute("""
CREATE TABLE easy_drinks(
drink_name VARCHAR(20),
main VARCHAR(20),
amount1 DEC,
second VARCHAR(20),
amount2 DEC,
directions VARCHAR(100)
)""")
cursor.execute("""
INSERT into easy_drinks VALUES(
'ブラックソーン', 'トニックウォーター', 1.5, 'パイナップルジュース', 1,
'氷と一緒にかきまぜ、濾してカクテルグラスに入れ、レモンを一搾り加える')""")
cursor.execute("""
INSERT into easy_drinks VALUES(
'ブルームーン', 'ソーダ', 1.5, 'ブルーベリージュース', 0.75,
'氷と一緒にかきまぜ、濾してカクテルグラスに入れ、レモンを一搾り加える')""")
cursor.execute("""
INSERT into easy_drinks VALUES(
'オーマイゴッシュ', '桃果汁', 1, 'パイナップルジュース', 1,
'氷と一緒にかきまぜ、濾してショットグラスに入れる')""")
cursor.execute("""
INSERT into easy_drinks VALUES(
'ライムフィズ', 'スプライト', 1.5, 'ライムジュース', 0.75,
'氷と一緒にかきまぜ、濾してカクテルグラスに入れる')""")
cursor.execute("""
INSERT into easy_drinks VALUES(
'キスオンザリップス', 'チェリージュース', 2, 'あんず果汁', 7,
'氷の上に注いで、ストローを付ける')""")
cursor.execute("""
INSERT into easy_drinks VALUES(
'ホットゴールド', '桃果汁', 3, 'オレンジジュース', 6,
'熟したオレンジジュースをマグカップに注いで、桃果汁を加える')""")
cursor.execute("""
INSERT into easy_drinks VALUES(
'ローンツリー', 'ソーダ', 1.5, 'チェリージュース', 0.75,
'氷と一緒にかきまぜ、濾してカクテルグラスに入れる')""")
cursor.execute("""
INSERT into easy_drinks VALUES(
'グレイハウンド', 'ソーダ', 1.5, 'グレープフルーツジュース', 5,
'氷の上に注いで、よく混ぜる')""")
cursor.execute("""
INSERT into easy_drinks VALUES(
'インディアンサマー', 'アップルジュース', 2, 'ホットティー', 6,
'ジュースをマグカップに加え、ホットティーで仕上げる')""")
cursor.execute("""
INSERT into easy_drinks VALUES(
'ブルフロッグ', 'アイスティー', 1.5, 'レモネード', 5,
'氷の上に注いでライムを一切れ加える')""")
cursor.execute("""
INSERT into easy_drinks VALUES(
'ソーダアンドイット', 'ソーダ', 2, 'グレープジュース', 1,
'氷を入れずに、カクテルグラスでシェイクする')""")
cursor.execute("""SELECT * FROM easy_drinks""")
for row in cursor.fetchall():
print(row)
connection.commit()
connection.close()
入出力結果(Terminal, IPython)
$ ./sample59.py
('ブラックソーン', 'トニックウォーター', 1.5, 'パイナップルジュース', 1, '氷と一緒にかきまぜ、濾してカクテルグラスに入れ、レモンを一搾り加える')
('ブルームーン', 'ソーダ', 1.5, 'ブルーベリージュース', 0.75, '氷と一緒にかきまぜ、濾してカクテルグラスに入れ、レモンを一搾り加える')
('オーマイゴッシュ', '桃果汁', 1, 'パイナップルジュース', 1, '氷と一緒にかきまぜ、濾してショットグラスに入れる')
('ライムフィズ', 'スプライト', 1.5, 'ライムジュース', 0.75, '氷と一緒にかきまぜ、濾してカクテルグラスに入れる')
('キスオンザリップス', 'チェリージュース', 2, 'あんず果汁', 7, '氷の上に注いで、ストローを付ける')
('ホットゴールド', '桃果汁', 3, 'オレンジジュース', 6, '熟したオレンジジュースをマグカップに注いで、桃果汁を加える')
('ローンツリー', 'ソーダ', 1.5, 'チェリージュース', 0.75, '氷と一緒にかきまぜ、濾してカクテルグラスに入れる')
('グレイハウンド', 'ソーダ', 1.5, 'グレープフルーツジュース', 5, '氷の上に注いで、よく混ぜる')
('インディアンサマー', 'アップルジュース', 2, 'ホットティー', 6, 'ジュースをマグカップに加え、ホットティーで仕上げる')
('ブルフロッグ', 'アイスティー', 1.5, 'レモネード', 5, '氷の上に注いでライムを一切れ加える')
('ソーダアンドイット', 'ソーダ', 2, 'グレープジュース', 1, '氷を入れずに、カクテルグラスでシェイクする')
$ sqlite3 drinks.sqlite
-- Loading resources from /Users/kamimura/.sqliterc
SQLite version 3.8.4.3 2014-04-03 16:53:12
Enter ".help" for usage hints.
sqlite> PRAGMA table_info(easy_drinks);
PRAGMA table_info(easy_drinks);
cid name type notnull dflt_value pk
---------- ---------- ----------- ---------- ---------- ----------
0 drink_name VARCHAR(20) 0 0
1 main VARCHAR(20) 0 0
2 amount1 DEC 0 0
3 second VARCHAR(20) 0 0
4 amount2 DEC 0 0
5 directions VARCHAR(100 0 0
sqlite> .quit
.quit
$
0 コメント:
コメントを投稿