2019/09/25_数学、32点(簡単なpostgresqlと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
解説
- レコードを特定するときは、where句を使用する
- 今回は
where name = ddaawwaa
でnameがddaawwaaのscoreカラム内の数学の点数を取得しようとしてます。 - 他の指定の方法は、以下のサイトにわかりやすくまとまってます。
SELECT構文:WHEREで検索条件を設定する - SMART 開発者のためのウェブマガジン
- 今回は
- 文末に
;
を書く。(大切なので3回目)
(私、ddaawwaが中学生のとき、数学で32点を取ったのは、実話です。)
参考
PostgreSQL入門 (全16回) - プログラミングならドットインストール
あとがき
- 科目ごとにデータベース作るのって、あんまり良くない気がしたけど、理由は不明です。明らかにデータベース設計の知見がないなーと思いました。
開発してて、「Sequel Pro、便利だったなー。」と思ったとき、この本のことを思い出しました。
不便益という発想~ごめんなさい、もしあなたがちょっとでも 行き詰まりを感じているなら、 不便をとり入れてみてはどうですか?(しごとのわ) | 川上浩司 |本 | 通販 | Amazonでも、読んだわけではないです…すいません…
以上