開発環境
- macOS Mojave - Apple
- Emacs (Text Editor)
- PostgreSQL (ORDBMS(object-relational database management system))
- Python 3.7 (プログラミング言語)
- psycopg2(パッケージ)
Head First SQL ―頭とからだで覚えるSQLの基本 (Lynn Beighley (著), 佐藤 直生 (監訳)、松永 多苗子 (翻訳)、オライリージャパン)の1章(データとテーブル - あらゆるものにふさわしい場所)、自分で考えてみよう(p. 39).を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3
import psycopg2 as sql
conn = sql.connect(database='gregs_list', user='kamimura')
cursor = conn.cursor()
_sqls = [
'''
INSERT INTO my_contacts
(last_name, first_name, email, gender, birthday,
profession, location, status, interests, seeking)
VALUES
('アンダーソン','ジリアン','jill_anderson@breakneckpizza.com','F','1980-09-05',
'テクニカルライター','カヤック乗り、爬虫類','恋人、友達')
)''', # valuesに住所がない。
'''
INSERT INTO my_contacts
(last_name, first_name, email, gender, birthday,
profession, location, status, interests, seeking)
VALUES
('アンダーソン','ジリアン','jill_anderson@breakneckpizza.com','F','1980-09-05',
'テクニカルライター','カリフォルニア州パロアルト','独身','カヤック乗り、爬虫類','恋人、友達')
)''', # emailがない。
'''
INSERT INTO my_contacts
(last_name, first_name, email, gender, birthday,
profession, location, status, interests, seeking)
VALUES
('アンダーソン','ジリアン','jill_anderson@breakneckpizza.com','F','1980-09-05',
'テクニカルライター' 'カリフォルニア州パロアルト','独身','カヤック乗り、爬虫類','恋人、友達')
)''', # valuesのテクニカルライターの後のコンマが抜けている。
'''
INSERT INTO my_contacts
(last_name, first_name, email, gender, birthday,
profession, location, status, interests, seeking)
values
('アンダーソン','ジリアン','jill_anderson@breakneckpizza.com','F','1980-09-05',
'テクニカルライター','カリフォルニア州パロアルト','独身','カヤック乗り、爬虫類','恋人、友達)
)''' # valuesの恋人、友達がシングルクォートで閉じられてない。
]
for _sql in _sqls:
try:
cursor.execute(_sql)
except Exception as err:
print(type(err), err)
conn.commit()
cursor.close()
conn.close()
入出力結果(Terminal, Jupyter(IPython))
$ ./sample3.py
<class 'psycopg2.ProgrammingError'> syntax error at or near ")"
LINE 8: )
^
<class 'psycopg2.ProgrammingError'> syntax error at or near ")"
LINE 8: )
^
<class 'psycopg2.ProgrammingError'> syntax error at or near "'カリフォルニア州パロアルト'"
LINE 7: 'テクニカルライター' 'カリフォルニア州パロアルト','独身','カ...
^
<class 'psycopg2.ProgrammingError'> unterminated quoted string at or near "'恋人、友達)
)"
LINE 7: ...ルニア州パロアルト','独身','カヤック乗り、爬虫類','恋人、友...
^
$
0 コメント:
コメントを投稿