記憶の外付けHDD

切実に頭にUSBのコネクターがほしいです。なるべくtype-cでお願いしたいです。(忘れないように、プログラミング学習で学んだことを投稿してます)

2019/09/25_数学、32点(簡単なpostgresqlとsql文)

はじめに

今日も個人開発をしました。

この個人開発で、自分に課していることがあります。

SQL文を打つ!!(SQLクライアントを使わない)

※ 先週、yokohama.rbさんに参加したとき、SQLはできて当たり前」というありがたい話を聞いたので…

ってことで、今日はテーブルの中身をターミナルだけで確認するまでを書きます!
(DBはpostgresqlを使用してます。)

postgresqlの使い方

とりあえず、中学校の中間試験のテスト結果をtest_resultというデータベースに、科目ごとのテーブルを作成している。という例で説明します。

1)データベース一覧を表示

データベース一覧をターミナルで以下のように記載

psql -l

2)データベースの選択

一覧からデータベースを選択する。 ここでは、データベースtest_resultを選択します。

psql test_result

test_result=#と表示される

3)データベース内のテーブル一覧を表示する

データベースtest_result内のテーブル一覧を表示

\dt

4)テーブルを選択する

テーブルのカラムや設定を確認する。 ここでは、mathsテーブルを選択します。

\d maths

SQL

さきほどに引き続き、中間テストの結果データベースの例を使います。

前提

test_result=#のようになっていないと、SQL文を入力できないっぽいです。
つまり、最低限、2)データベースの選択までやらないとダメ。

テーブル全体の全レコードを表示

全カラムの全レコードを表示するとき

select * from maths;

解説

  • select カラム名で取得するカラムを指定
    • 全カラムは*と書く
  • from テーブル名で取得元のテーブル名を指定
    • 今回はmathsテーブルを選択
  • 文末に;を書く

カラム名→テーブル名という記載順、なんだか不思議ですよね。)

カラムを指定してレコードを取得

mathsテーブルから、nameカラムの全レコードを取得するとき

select name from maths

解説

  • 1つ前とだいたい同じ。
    • 違うのは、nameカラムを指定したこと。
  • 文末に;を書く。(大切なので2回目)

カラムを指定して、特定のレコードを取り出す。

select score from maths where name = 'ddaawwaa';

=> 32

解説

(私、ddaawwaが中学生のとき、数学で32点を取ったのは、実話です。)

参考

PostgreSQL入門 (全16回) - プログラミングならドットインストール

あとがき

以上