開発環境
- 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 コメント:
コメントを投稿