SQL - SQLite - DELEtE文とUPDATE文 - 役に立つ変更 - insert文とdelete文
Head First SQL ―頭とからだで覚えるSQLの基本、 Lynn Beighley(著)、 佐藤 直生(監訳)、 松永 多苗子(翻訳)、 オライリージャパンの 3章(DELEtE文とUPDATE文 - 役に立つ変更)、p.136(自分で考えてみよう)の解答を求めてみる。
コード
sample4.py
#! /usr/bin/env python3
import sqlite3
con = sqlite3.connect('drinks.db')
cur = con.cursor()
def p():
sql = '''select * from drink_info'''
cur.execute(sql)
for row in cur.fetchall():
print(row)
sqls = [
"""
insert into drink_info values
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
""",
"""delete from drink_info where calories = 171""",
"""
insert into drink_info values
('ブラックソーン', 3, 8.4, '金', 'Y', 33),
('グレイハウンド', 4, 14, '金', 'Y', 50)
""",
"""delete from drink_info where color = '黄'""",
"""
insert into drink_info values
('オーマイゴッシュ', 4.5, 8.6, '橙', 'Y', 35)
""",
"""delete from drink_info where cost = 3.5""",
"""
insert into drink_info values
('ブルームーン', 3.5, 3.2, '青', 'Y', 12)
""",
"""delete from drink_info where cost = 2.5""",
]
for sql in sqls:
cur.execute(sql)
con.commit()
print(sql.strip())
p()
cur.close()
con.close()
入出力結果(Terminal, Zsh)
% ./sample4.py
insert into drink_info values
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('ブラックソーン', 3.0, 3.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.0, 14.0, '黄', 'Y', 50)
('インディアンサマー', 2.8, 7.2, '茶', 'N', 30)
('ブルフロッグ', 2.6, 21.5, '黄褐色', 'Y', 80)
('ソーダアンドイット', 3.8, 4.7, '赤', 'N', 19)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
delete from drink_info where calories = 171
('ブラックソーン', 3.0, 3.4, '黄', 'Y', 33)
('ブルームーン', 2.5, 3.2, '青', 'Y', 12)
('オーマイゴッシュ', 3.5, 8.6, '橙', 'Y', 35)
('ライムフィズ', 2.5, 5.4, '緑', 'Y', 24)
('ホットゴールド', 3.2, 32.1, '橙', 'N', 135)
('ローンツリー', 3.6, 4.2, '赤', 'Y', 17)
('グレイハウンド', 4.0, 14.0, '黄', 'Y', 50)
('インディアンサマー', 2.8, 7.2, '茶', 'N', 30)
('ブルフロッグ', 2.6, 21.5, '黄褐色', 'Y', 80)
('ソーダアンドイット', 3.8, 4.7, '赤', 'N', 19)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
insert into drink_info values
('ブラックソーン', 3, 8.4, '金', 'Y', 33),
('グレイハウンド', 4, 14, '金', 'Y', 50)
('ブラックソーン', 3.0, 3.4, '黄', 'Y', 33)
('ブルームーン', 2.5, 3.2, '青', 'Y', 12)
('オーマイゴッシュ', 3.5, 8.6, '橙', 'Y', 35)
('ライムフィズ', 2.5, 5.4, '緑', 'Y', 24)
('ホットゴールド', 3.2, 32.1, '橙', 'N', 135)
('ローンツリー', 3.6, 4.2, '赤', 'Y', 17)
('グレイハウンド', 4.0, 14.0, '黄', 'Y', 50)
('インディアンサマー', 2.8, 7.2, '茶', 'N', 30)
('ブルフロッグ', 2.6, 21.5, '黄褐色', 'Y', 80)
('ソーダアンドイット', 3.8, 4.7, '赤', 'N', 19)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('ブラックソーン', 3.0, 8.4, '金', 'Y', 33)
('グレイハウンド', 4.0, 14.0, '金', 'Y', 50)
delete from drink_info where color = '黄'
('ブルームーン', 2.5, 3.2, '青', 'Y', 12)
('オーマイゴッシュ', 3.5, 8.6, '橙', 'Y', 35)
('ライムフィズ', 2.5, 5.4, '緑', 'Y', 24)
('ホットゴールド', 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)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('ブラックソーン', 3.0, 8.4, '金', 'Y', 33)
('グレイハウンド', 4.0, 14.0, '金', 'Y', 50)
insert into drink_info values
('オーマイゴッシュ', 4.5, 8.6, '橙', 'Y', 35)
('ブルームーン', 2.5, 3.2, '青', 'Y', 12)
('オーマイゴッシュ', 3.5, 8.6, '橙', 'Y', 35)
('ライムフィズ', 2.5, 5.4, '緑', 'Y', 24)
('ホットゴールド', 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)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('ブラックソーン', 3.0, 8.4, '金', 'Y', 33)
('グレイハウンド', 4.0, 14.0, '金', 'Y', 50)
('オーマイゴッシュ', 4.5, 8.6, '橙', 'Y', 35)
delete from drink_info where cost = 3.5
('ブルームーン', 2.5, 3.2, '青', 'Y', 12)
('ライムフィズ', 2.5, 5.4, '緑', 'Y', 24)
('ホットゴールド', 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)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('ブラックソーン', 3.0, 8.4, '金', 'Y', 33)
('グレイハウンド', 4.0, 14.0, '金', 'Y', 50)
('オーマイゴッシュ', 4.5, 8.6, '橙', 'Y', 35)
insert into drink_info values
('ブルームーン', 3.5, 3.2, '青', 'Y', 12)
('ブルームーン', 2.5, 3.2, '青', 'Y', 12)
('ライムフィズ', 2.5, 5.4, '緑', 'Y', 24)
('ホットゴールド', 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)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('ブラックソーン', 3.0, 8.4, '金', 'Y', 33)
('グレイハウンド', 4.0, 14.0, '金', 'Y', 50)
('オーマイゴッシュ', 4.5, 8.6, '橙', 'Y', 35)
('ブルームーン', 3.5, 3.2, '青', 'Y', 12)
delete from drink_info where cost = 2.5
('ホットゴールド', 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)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('キスオンザリップス', 5.5, 42.5, '紫', 'Y', 170)
('ブラックソーン', 3.0, 8.4, '金', 'Y', 33)
('グレイハウンド', 4.0, 14.0, '金', 'Y', 50)
('オーマイゴッシュ', 4.5, 8.6, '橙', 'Y', 35)
('ブルームーン', 3.5, 3.2, '青', 'Y', 12)
%