SQL 基本まとめ

docker、postgresを使用。環境構築はググってください。
※dockerのインストール、postgresのイメージの読み込みは完了済

コマンドプロンプトを開く

コンテナにアクセスするコマンド


docker exec -it コンテナ名 bash

作成したDBにユーザーとしてアクセスする


psql -U ユーザー名 testdb1

テーブルを作成する


create table testtable1 (
  id       integer primary key
, name text       not null unique
,  age   integer
);

テーブル操作系の基本文

INSERT:テーブルに新しいレコードを作成する


insert into テーブル名(カラム1, カラム2, カラム3)
values (値1. 値2, 値3);

INSERT:まとめて新しいレコードを作成することができる


insert into テーブル名 (id, name, age)
values (101. 'Taro', 26),(102. 'Jiro', 24),(102. 'Saburo', 20);

SELECT:レコードを検索する

SELECT文はSELECTを除いて上から順番に実行され、
最後にselectが実行される

select
カラム名
from テーブル名
where 条件式(フィルター)
order by  カラム名 (desc)
※降順ならdescを後ろにつける。
 limit 3(3行まで表示する)
offset 1(1行飛ばす)

※ORDER BYを使用しないとSELECT文で抽出したデータの
並び順は保持されないので注意すること

カラム名を複数指定して並び替えることも可能だが
重複する値を持つカラムを指定してしまうと毎回並び順が変わってしまう

UPDATE:レコードを修正する


update テーブル名
set カラム名=値
where 条件式(対象者絞り込み)
※絞り込みを行わないとすべてのレコードが更新されてしまうので要注意

しかし、UPDATE文は一度に複数行を更新するのはとても苦手!

DELETE:テーブルやレコードを削除する

delete from テーブル名

delete fromテーブル名
where カラム名 = 値

集約関数

sum(カラム名) 合計する
avg(カラム名) 平均を求める
max(カラム名) 最大値を取得する
min(カラム名) 最小値を取得する
count( * ) レコード数を数える、NULLも含む
count(カラム名) NULLを除くカラム名の行数

sum avg max min は受け取ったすべてがNULLなら戻り値もNULLになる
count はNULLを受け取っても0になる
→結果をNULLにしたい場合 coalesce(min(カラム名), 0)


この記事が気に入ったらサポートをしてみませんか?