2018年12月20日木曜日

開発環境

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

コード(Emacs)

Python 3

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

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

_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 = [
    ('ミスター・ホボ',
     'オークランド病院',
     '男性、葉巻、黒髪、小さな帽子',
     'バイオリン'),
    ('ミスター・ホボ',
     'ディクソンパーク',
     '男性、葉巻、黒髪、小さな帽子',
     'バイオリン'),
    ('ミスター・ホボ',
     'トレイシーズ',
     '男性、葉巻、黒髪、小さな帽子',
     'バイオリン')
]

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

_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 = '''
delete from clown_info
where name = 'ミスター・ホボ'
and last_seen <> 'トレイシーズ'
'''

cursor.execute(_sql)
conn.commit()

_sql = 'select * from clown_info'

cursor.execute(_sql)
print(', '.join([column[0] for column in cursor.description]))
for row in cursor.fetchall():
    print(row)

cursor.close()
conn.close()

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

$ ./sample4.py
name, last_seen, appearance, activities
('ボンゾ', 'ボールマート', '男性、女装、水玉模様のドレス', '歌、ダンス')
('スニッフルズ', 'トレイシーズ', '男性、緑と紫のスーツ、先の尖った鼻', '小さな車')
('ミスター・ホボ', 'ディクソンパーク', '男性、葉巻、黒髪、小さな帽子', 'バイオリン')
('ジッポ', 'ミルストーンモール', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'オークランド病院', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'トレイシーズ', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'ボールマート', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'ミルストーンモール', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'オークランド病院', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
name, last_seen, appearance, activities
('ボンゾ', 'ボールマート', '男性、女装、水玉模様のドレス', '歌、ダンス')
('スニッフルズ', 'トレイシーズ', '男性、緑と紫のスーツ、先の尖った鼻', '小さな車')
('ミスター・ホボ', 'ディクソンパーク', '男性、葉巻、黒髪、小さな帽子', 'バイオリン')
('ミスター・ホボ', 'オークランド病院', '男性、葉巻、黒髪、小さな帽子', 'バイオリン')
('ミスター・ホボ', 'ディクソンパーク', '男性、葉巻、黒髪、小さな帽子', 'バイオリン')
('ミスター・ホボ', 'トレイシーズ', '男性、葉巻、黒髪、小さな帽子', 'バイオリン')
('ジッポ', 'ミルストーンモール', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'オークランド病院', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'トレイシーズ', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'ボールマート', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'ミルストーンモール', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'オークランド病院', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
name, last_seen, appearance, activities
('ボンゾ', 'ボールマート', '男性、女装、水玉模様のドレス', '歌、ダンス')
('スニッフルズ', 'トレイシーズ', '男性、緑と紫のスーツ、先の尖った鼻', '小さな車')
('ミスター・ホボ', 'トレイシーズ', '男性、葉巻、黒髪、小さな帽子', 'バイオリン')
('ジッポ', 'ミルストーンモール', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'オークランド病院', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'トレイシーズ', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'ボールマート', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'ミルストーンモール', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
('ジッポ', 'オークランド病院', '女性、オレンジ色のスーツ、バギーパンツ', 'ダンス、歌')
$

0 コメント:

コメントを投稿