久しぶりにプログラミングというか技術的なことをやってみたので、備忘録として投稿。
データベース使えるようになったらマイコンで取得したデータを蓄積ができるかな?と思ってやってみました。
https://qiita.com/camopy/items/ba36508d57b4f05a580f
実験環境はWindows10
Windowsにした理由は目の前のPCがWindows10だからという安直な考え、、、
PythonはAnacondaが既に入ってたのでそれを流用
#0.DBの選定:PostgreSQL
データベースの種類は色々あるけど、昔いじったことのあるPostgreをインストールしてみた。
特に、Postgreじゃないといけないということではない(ハズ、、、)
#1.PostgresSQLのインストール
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
このサイトからいっちゃん新しい11.5を選択。
とりあえず、新しけりゃOKな気がするので、これも安直に決定。
インストールも適当にポチポチとしていく。
自分は以下のサイトを見ながらやりました。
参考:https://itsakura.com/pgadmin4-db-create
勝手にリンク貼ってすみません。
#2.Postgreのドライバ(psycopg2)の入手
Anacondaをインストールすると色々なものが入ってくる。
その中のAnavonda Navigaterを使用してドライバをインストールした。
コマンドでも入るけど、なんか見やすいのでこれを使用した。
詳細は省くが
1.Anavonda Navigaterを起動
2.Enviromentsタブをクリック
3.デフォルトのrootを選択
(環境を別にしたい場合、Createボタンクリックし新しい環境をつくる)
4.プルダウンメニューのinstalledをAllにして検索ボックスにpsycopg2をいれると
お目当てのものが出てくるので、それをインストール。
#3.プログラミング
ついにお目当てのプログラミング。
まぁ簡単なので見りゃわかるかもしれない
(自分はcursorとかよくわかってない、、、)
import psycopg2
connection = psycopg2.connect("host=127.0.0.1 port=5432 dbname=testdb user=postgres password=設定したパスワード")
cur = connection.cursor()
cur.execute("SELECT * FROM テーブル名;")
#cur.execute("INSERT INTO テーブル名(name, id, romaji) VALUES('hello', 2, 'world');")
print(cur.fetchone())
cur.close()
connection.commit()
connection.close()
10分くらい悩んだのが、インサートの方法
インサート文を実行し、pgAdminで確認しても反映されないという現象。
これは単純にコミットを実行してなかっただけで
connection.commit()
を実行したら反映されました。
今日はここまで