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)