開発環境
- OS X Mavericks - Apple、たまにFreeBSD 10(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python 3.4(プログラミング言語)
- SQLite (RDBMS(Relational Database Management System))
Head First SQL ―頭とからだで覚えるSQLの基本 (Lynn Beighley(著)、 佐藤 直生 (監訳)、 松永 多苗子 (翻訳)、オライリージャパン)の2章(SELECT 文: 天賦のデータ検索)、自分で考えてみよう(p.107)を解いてみる。
自分で考えてみよう(p.107)
コード(BBEdit, Emacs)
sample107.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)
cursor.execute("""SELECT * FROM drink_info""")
print(tuple(map(lambda header: header[0], cursor.description)))
p('全て')
cursor.execute("""
SELECT drink_name FROM drink_info
WHERE calories > 60 OR calories < 30
""")
p('calories > 60 OR calories < 30')
cursor.execute("""
SELECT drink_name FROM drink_info
WHERE drink_name BETWEEN 'オ' AND 'ケ'
""")
p("drink_name BETWEEN 'オ' AND 'ケ''")
cursor.execute("""
SELECT drink_name FROM drink_info
WHERE calories BETWEEN 60 AND 30
""")
p('無し')
connection.close()
入出力結果(Terminal, IPython)
$ ./sample107.py
('drink_name', 'cost', 'carbs', 'color', 'ice', 'calories')
全て
('ブラックソーン', 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)
calories > 60 OR calories < 30
('ブルームーン',)
('ライムフィズ',)
('キスオンザリップス',)
('ホットゴールド',)
('ローンツリー',)
('ブルフロッグ',)
('ソーダアンドイット',)
drink_name BETWEEN 'オ' AND 'ケ''
('オーマイゴッシュ',)
('キスオンザリップス',)
('グレイハウンド',)
無し
$
0 コメント:
コメントを投稿