開発環境
- 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 コメント:
コメントを投稿