Excelでは扱うのが大変なデータ、DBMSで処理していきたいですよね。わたしは手元で触るときはPostgreSQLを使っています。
はじめてPostgreSQLを使おうと思ったとき、どうしたらいいのかわからなかったので(今もよくわかっていないかも)、メモに残しておくことにしました。
不安な人は、とりあえず本を1冊買っておきましょう!
わたしは『PostgreSQL徹底入門 第4版』を購入して、いつも参考にしています。
◆ まずはPostgreSQLをPCに入れるところから。
PostgreSQLのインストーラーは、ここからダウンロードしましょう。
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
「PostgreSQL」で検索しても、ダウンロードの際には上記のサイトにたどり着くと思います。
インストーラーをダウンロードできたら、開いて、こんな表示が出てきたと思います。

ここからは、内容を特に変更せず、Nextで進んでいって、パスワードを設定して、ポート番号もそのまま(5432)で…
このLocale(ロケール)は、「C」にしておきます。よくわかりませんが、これがいいそうで!

ロケールとは、文字の並べ替えや種類、通過や数字、日付の書式など、言語や地域ごとの動作の違いを取り扱うための仕組みです。
『PostgreSQL徹底入門 第4版』より
◆ pgAdmin(象のアイコン)を立ち上げて、データを入れる。
PostgreSQL、インストールできましたか?できたら、象のアイコンの「pgAdmin」が入っていると思うので、それをクリックして立ち上げましょう。
pgAdminはGUIツール(マウスなどで直感的に操作できるツール)です。ターミナル(コマンドプロンプト)でやるのはよくわからないので、わたしはこのpgAdminにお世話になっています!
さて、ここまできたら、新しいデータベースを作成します。
PostgreSQLのところで右クリックして、「Create→Database…」をクリック。

データベースの名前と、何かコメントを入れておきます。今回はデータベース名を「test」、コメントは「test desu(テスト用です)」にしました。

で、このまま「Save」をするとエラーが出るので、Definition(定義)のタブに移動して、Templateを「template0」にしておきます。なんでかよくわかっていません!


これで「Save」します。

testデータベースができていますね!それでは、この中に新しいテーブルを作成しましょう。テーブルのところで右クリックして、「Query Tool…」をクリックします。

すると、SQLを書くところが出てきます。ここに、新しいテーブルを作成する用のcreate文を書いて実行していく、という流れです。

今回はここ(https://datasetsearch.research.google.com/)で適当にデータを探して見つけた、スーパーマーケットのデータを入れてみようと思います。
そして、create文をどこかで書きます。このpgAdminのところで書いてもいいですが、わたしは慣れたツールで書くようにしています。
毎回データ型がわからなくなって、ここ(https://www.postgresql.jp/document/12/html/datatype.html)で確認しています…。

はい、create文を書きました。これを実行します。▲が横を向いた、動画の再生ボタンみたいなのを押したら実行されますよ!

うまくいったら、下に「successfully」って出るので、これでOKです。Tablesのところで右クリックして、「Refresh…」をクリックして更新したら、

さっき作ったtestテーブルができているのを確認できます。

それではこのテーブルに、データを入れていきましょう。該当テーブルのところで右クリックして、「Import/Export…」をクリック。

するとこんな画面が出てきます。今回はデータを入れるので、一番上のところを「Import」に。
さらに、「Filename」のところの「・・・」ってなっているところをクリックして、入れるデータファイルを選択します。

今回は、この「supermarket_sales – Sheet1.csv」を入れてみます。このファイルをクリックして、「Select」を押して進みます。

今回のデータはヘッダーがあるので、下のほうにある「Header」をYesにしておきます。

で、「OK」をクリックすると読み込みがはじまって…

うまくいけばこんな表示がでます。
赤い表示のエラーが出たら、さっきの画面をもう一度出して、「Encoding(エンコード)」や「Delimiter(区切り文字)」のところをいじったらいけるはず。
あとは、create文で指定したデータ型が違っていたとか、create文で書き忘れたカラムがあった、などが原因かもしれません。
エラーの理由は表示してくれるので、それを見ればわかります。
試しに中身を見てみましょう。今回はそんなに大きなデータじゃないので、ぜんぶ表示させてみました。ちゃんと入ってますね!

これで、SQLを書いて、いろいろデータをいじっていけるようになりました!
