2018年12月22日土曜日

開発環境

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

コード(Emacs)

Python 3

#!/usr/bin/env python3
import psycopg2 as sql

conn = sql.connect(database='gregs_list', user='kamimura')
cursor = conn.cursor()


_sql = 'delete from clown_info'
cursor.execute(_sql)


def p():
    _sql = 'select * from clown_info'
    cursor.execute(_sql)
    print(', '.join([column[0] for column in cursor.description]))
    for row in cursor.fetchall():
        print(row)


_sql = '''insert into clown_info values(%s, %s, %s, %s)'''
values = [
    ('エルシー',
     'チェリーヒル・シニアセンター',
     '女性、赤い髪、緑色のドレス、巨大な足',
     'ゴム風船、小さな車'),
    ('スナッグルズ',
     'ディクソンパーク',
     '女性、黄色いシャツ、赤いバギーパンツ',
     'ホルン、傘'),
    ('ミスター・ホボ',
     'オークランド病院',
     '男性、葉巻、黒髪、小さな帽子',
     'バイオリン'),
    ('ジッポ',
     'ミルストーンモール',
     '女性、オレンジ色のスーツ、バギーパンツ',
     'ダンス'),
    ('ボンゾ',
     None,
     '男性、女装、水玉模様のドレス',
     '歌、ダンス'),
    ('スニッフルズ',
     'トレイシーズ',
     '男性、緑と紫のスーツ、先のとがった鼻',
     None)
]

cursor.executemany(_sql, values)
conn.commit()

p()

_sqls = [
    '''
update clown_info
set activities = '歌'
where name = 'ジッポ'
''',
    '''
update clown_info
set appearance = '青いバギーパンツ'
where name = 'スナッグルズ'
''',
    '''
update clown_info
set last_seen = 'ボールマート'
where name = 'ボンゾ'
''',
    '''
update clown_info
set activities = '小さな車'
where name = 'スニッフルズ'
''',
    '''
update clown_info
set last_seen = 'ディクソンパーク'
where name = 'ミスター・ホボ'
'''
]

for _sql in _sqls:
    print(_sql)
    cursor.execute(_sql)
    conn.commit()
    p()

cursor.close()
conn.close()

入出力結果(Terminal, cmd(コマンドプロンプト), Jupyter(IPython))

$ ./sample5.py
name, last_seen, appearance, activities
('エルシー', 'チェリーヒル・シニアセンター', '女性、赤い髪、緑色のドレス、巨大な足', 'ゴム風船、小さな車')
('スナッグルズ', 'ディクソンパーク', '女性、黄色いシャツ、赤いバギーパンツ', 'ホルン、傘')
('ミスター・ホボ', 'オークランド病院', '男性、葉巻、黒髪、小さな帽子', 'バイオリン')
('ジッポ', 'ミルストーンモール', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス')
('ボンゾ', None, '男性、女装、水玉模様のドレス', '歌、ダンス')
('スニッフルズ', 'トレイシーズ', '男性、緑と紫のスーツ、先のとがった鼻', None)

update clown_info
set activities = '歌'
where name = 'ジッポ'

name, last_seen, appearance, activities
('エルシー', 'チェリーヒル・シニアセンター', '女性、赤い髪、緑色のドレス、巨大な足', 'ゴム風船、小さな車')
('スナッグルズ', 'ディクソンパーク', '女性、黄色いシャツ、赤いバギーパンツ', 'ホルン、傘')
('ミスター・ホボ', 'オークランド病院', '男性、葉巻、黒髪、小さな帽子', 'バイオリン')
('ボンゾ', None, '男性、女装、水玉模様のドレス', '歌、ダンス')
('スニッフルズ', 'トレイシーズ', '男性、緑と紫のスーツ、先のとがった鼻', None)
('ジッポ', 'ミルストーンモール', '女性、オレンジ色のスーツ、バギーパンツ', '歌')

update clown_info
set appearance = '青いバギーパンツ'
where name = 'スナッグルズ'

name, last_seen, appearance, activities
('エルシー', 'チェリーヒル・シニアセンター', '女性、赤い髪、緑色のドレス、巨大な足', 'ゴム風船、小さな車')
('ミスター・ホボ', 'オークランド病院', '男性、葉巻、黒髪、小さな帽子', 'バイオリン')
('ボンゾ', None, '男性、女装、水玉模様のドレス', '歌、ダンス')
('スニッフルズ', 'トレイシーズ', '男性、緑と紫のスーツ、先のとがった鼻', None)
('ジッポ', 'ミルストーンモール', '女性、オレンジ色のスーツ、バギーパンツ', '歌')
('スナッグルズ', 'ディクソンパーク', '青いバギーパンツ', 'ホルン、傘')

update clown_info
set last_seen = 'ボールマート'
where name = 'ボンゾ'

name, last_seen, appearance, activities
('エルシー', 'チェリーヒル・シニアセンター', '女性、赤い髪、緑色のドレス、巨大な足', 'ゴム風船、小さな車')
('ミスター・ホボ', 'オークランド病院', '男性、葉巻、黒髪、小さな帽子', 'バイオリン')
('スニッフルズ', 'トレイシーズ', '男性、緑と紫のスーツ、先のとがった鼻', None)
('ジッポ', 'ミルストーンモール', '女性、オレンジ色のスーツ、バギーパンツ', '歌')
('スナッグルズ', 'ディクソンパーク', '青いバギーパンツ', 'ホルン、傘')
('ボンゾ', 'ボールマート', '男性、女装、水玉模様のドレス', '歌、ダンス')

update clown_info
set activities = '小さな車'
where name = 'スニッフルズ'

name, last_seen, appearance, activities
('エルシー', 'チェリーヒル・シニアセンター', '女性、赤い髪、緑色のドレス、巨大な足', 'ゴム風船、小さな車')
('ミスター・ホボ', 'オークランド病院', '男性、葉巻、黒髪、小さな帽子', 'バイオリン')
('ジッポ', 'ミルストーンモール', '女性、オレンジ色のスーツ、バギーパンツ', '歌')
('スナッグルズ', 'ディクソンパーク', '青いバギーパンツ', 'ホルン、傘')
('ボンゾ', 'ボールマート', '男性、女装、水玉模様のドレス', '歌、ダンス')
('スニッフルズ', 'トレイシーズ', '男性、緑と紫のスーツ、先のとがった鼻', '小さな車')

update clown_info
set last_seen = 'ディクソンパーク'
where name = 'ミスター・ホボ'

name, last_seen, appearance, activities
('エルシー', 'チェリーヒル・シニアセンター', '女性、赤い髪、緑色のドレス、巨大な足', 'ゴム風船、小さな車')
('ジッポ', 'ミルストーンモール', '女性、オレンジ色のスーツ、バギーパンツ', '歌')
('スナッグルズ', 'ディクソンパーク', '青いバギーパンツ', 'ホルン、傘')
('ボンゾ', 'ボールマート', '男性、女装、水玉模様のドレス', '歌、ダンス')
('スニッフルズ', 'トレイシーズ', '男性、緑と紫のスーツ、先のとがった鼻', '小さな車')
('ミスター・ホボ', 'ディクソンパーク', '男性、葉巻、黒髪、小さな帽子', 'バイオリン')
$

0 コメント:

コメントを投稿