2018年11月26日月曜日

開発環境

Head First SQL ―頭とからだで覚えるSQLの基本 (Lynn Beighley (著), 佐藤 直生 (監訳)、松永 多苗子 (翻訳)、オライリージャパン)の2章(SELECT文 - 天賦のデータ検索)、エクササイズ(p. 81).を取り組んでみる。

コード(Emacs)

Python 3

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

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

_sqls = [
    '''select * from my_contacts''',
    '''
select email
from my_contacts where profession = 'コンピュータプログラマ'
''',
    '''
select first_name, last_name, location
from my_contacts
where birthday = '1970-04-01'
''',
    '''
select first_name, last_name, location
from my_contacts
where birthday = '1970-04-02'
''',
    '''select first_name, last_name, email
from my_contacts
where location = 'ニュージャージー州グローバーズミル (Grover''s Mill)' and gender = 'M'
''',
    '''
select first_name, last_name, email
from my_contacts
where location = 'ニュージャージー州グローバーズミル (Grover''s Mill)' and gender = 'F'
''',
    '''
select first_name, last_name
from my_contacts
where location = 'サンフランシスコ州'
'''
]

for _sql in _sqls:
    print(_sql)
    try:
        cursor.execute(_sql)
        for row in cursor.fetchall():
            print(row)
        print()
    except Exception as err:
        print(type(err), err)

cursor.close()
conn.close()

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

$ ./sample5.py
select * from my_contacts
('steve@onionflavoredrings.com', datetime.date(1970, 4, 1), 'スティーブ', 'ファンヨン', '国家の破壊', '同国人、ギタープレイヤー', '独身', 'パンクミュージシャン', "ニュージャージー州グローバーズミル (Grover's Mill)", 'M')
('steve@onionflavoredrings.com', datetime.date(1970, 4, 1), 'スティーブ', 'ファンヨン', '国家の破壊', '同国人、ギタープレイヤー', '独身', 'パンクミュージシャン', "Grover's Mill", 'M')
('steve@onionflavoredrings.com', datetime.date(1970, 4, 1), 'スティーブ', 'ファンヨン', '国家の破壊', '同国人、ギタープレイヤー', '独身', 'パンクミュージシャン', "ニュージャージー州グローバーズミル (Grover's Mill)", 'M')
('steve@onionflavoredrings.com', datetime.date(1970, 4, 1), 'スティーブ', 'ファンヨン', '国家の破壊', '同国人、ギタープレイヤー', '独身', 'パンクミュージシャン', "Grover's Mill", 'M')
('steve@onionflavoredrings.com', datetime.date(1970, 4, 1), 'スティーブ', 'ファンヨン', '国家の破壊', '同国人、ギタープレイヤー', '独身', 'パンクミュージシャン', "ニュージャージー州グローバーズミル (Grover's Mill)", 'M')
('steve@onionflavoredrings.com', datetime.date(1970, 4, 1), 'スティーブ', 'ファンヨン', '国家の破壊', '同国人、ギタープレイヤー', '独身', 'パンクミュージシャン', "Grover's Mill", 'M')
('steve@onionflavoredrings.com', datetime.date(1970, 4, 1), 'スティーブ', 'ファンヨン', '国家の破壊', '同国人、ギタープレイヤー', '独身', 'パンクミュージシャン', "ニュージャージー州グローバーズミル (Grover's Mill)", 'M')
('steve@onionflavoredrings.com', datetime.date(1970, 4, 1), 'スティーブ', 'ファンヨン', '国家の破壊', '同国人、ギタープレイヤー', '独身', 'パンクミュージシャン', "Grover's Mill", 'M')
('steve@onionflavoredrings.com', datetime.date(1970, 4, 1), 'スティーブ', 'ファンヨン', '国家の破壊', '同国人、ギタープレイヤー', '独身', 'パンクミュージシャン', "ニュージャージー州グローバーズミル (Grover's Mill)", 'M')
('steve@onionflavoredrings.com', datetime.date(1970, 4, 1), 'スティーブ', 'ファンヨン', '国家の破壊', '同国人、ギタープレイヤー', '独身', 'パンクミュージシャン', "Grover's Mill", 'M')
('steve@onionflavoredrings.com', datetime.date(1970, 4, 1), 'スティーブ', 'ファンヨン', '国家の破壊', '同国人、ギタープレイヤー', '独身', 'パンクミュージシャン', "ニュージャージー州グローバーズミル (Grover's Mill)", 'M')
('steve@onionflavoredrings.com', datetime.date(1970, 4, 1), 'スティーブ', 'ファンヨン', '国家の破壊', '同国人、ギタープレイヤー', '独身', 'パンクミュージシャン', "Grover's Mill", 'M')


select email
from my_contacts where profession = 'コンピュータプログラマ'



select first_name, last_name, location
from my_contacts
where birthday = '1970-04-01'

('スティーブ', 'ファンヨン', "ニュージャージー州グローバーズミル (Grover's Mill)")
('スティーブ', 'ファンヨン', "Grover's Mill")
('スティーブ', 'ファンヨン', "ニュージャージー州グローバーズミル (Grover's Mill)")
('スティーブ', 'ファンヨン', "Grover's Mill")
('スティーブ', 'ファンヨン', "ニュージャージー州グローバーズミル (Grover's Mill)")
('スティーブ', 'ファンヨン', "Grover's Mill")
('スティーブ', 'ファンヨン', "ニュージャージー州グローバーズミル (Grover's Mill)")
('スティーブ', 'ファンヨン', "Grover's Mill")
('スティーブ', 'ファンヨン', "ニュージャージー州グローバーズミル (Grover's Mill)")
('スティーブ', 'ファンヨン', "Grover's Mill")
('スティーブ', 'ファンヨン', "ニュージャージー州グローバーズミル (Grover's Mill)")
('スティーブ', 'ファンヨン', "Grover's Mill")


select first_name, last_name, location
from my_contacts
where birthday = '1970-04-02'


select first_name, last_name, email
from my_contacts
where location = 'ニュージャージー州グローバーズミル (Grover''s Mill)' and gender = 'M'

('スティーブ', 'ファンヨン', 'steve@onionflavoredrings.com')
('スティーブ', 'ファンヨン', 'steve@onionflavoredrings.com')
('スティーブ', 'ファンヨン', 'steve@onionflavoredrings.com')
('スティーブ', 'ファンヨン', 'steve@onionflavoredrings.com')
('スティーブ', 'ファンヨン', 'steve@onionflavoredrings.com')
('スティーブ', 'ファンヨン', 'steve@onionflavoredrings.com')


select first_name, last_name, email
from my_contacts
where location = 'ニュージャージー州グローバーズミル (Grover''s Mill)' and gender = 'F'



select first_name, last_name
from my_contacts
where location = 'サンフランシスコ州'


$

0 コメント:

コメントを投稿