開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- PostgreSQL (ORDBMS(object-relational database management system))
- Python 3.7 (プログラミング言語)
- psycopg2 (パッケージ)
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 コメント:
コメントを投稿