🧑🏻💻
【SQL】検索の絞り込みと加工
はじめに
以前からSQLはProgeteなどで一通り学んでいましたが、現場でSQLを扱うことになったので、改めてSQLについて調べました。
今回は検索の絞り込みと加工についてまとめています。基本構文4つについてまとめた記事はこちら👇
検索の絞り込み
like
- テーブルからある文字を含むデータを取得したいときに使用する
where カラム名 like '文字列';
%
(ワイルドカード)
- どんな文字列にも一致することを指す記号のこと
-
like
と組み合わせて使用する
where カラム名 like '%文字列%';
like
と%
を使用したクエリ
👇「usersテーブル」から、「cityがFukuで始まる」レコードの「すべてのカラム」のデータをすべて取得する(cityがFukui, Fukuoka, Fukushimaのデータを取得する)
sample
select * from users
where city like 'Fuku%';
not
- テーブルからその条件を満たさないデータを取得する
where not 条件;
not
を使用したクエリ
👇「usersテーブル」から、「ageが5ではない」レコードの「すべてのカラム」のデータをすべて取得する
sample
select * from users
where not age = 5;
and
-
and
で区切られたすべての条件がtrueのデータを取得する
where 条件1 and 条件2;
and
を使用したクエリ
👇「usersテーブル」から、「last_nameがTanaka」かつ「ageが5」のデータをすべて取得する
sample
select * from users
where last_name = 'Tanaka' and age = 5;
or
-
or
で区切られたいずれかの条件がtrueのデータを取得する
where 条件1 or 条件2;
or
を使用したクエリ
👇「usersテーブル」から、「last_nameがTanaka」または「ageが5」のデータをすべて取得する
sample
select * from users
where last_name = 'Tanaka' or age = 5;
between
- 指定された範囲内の値を取得する
where カラム名 between 値1 and 値2;
between
を使用したクエリ
👇「usersテーブル」から、「ageが5〜10」のデータをすべて取得する
sample
select * from users
where age between 5 and 10;
is null
- データが何も保存されていないことを意味する
- nullであるデータを取得する
where カラム名 is null;
is null
を使用したクエリ
👇「usersテーブル」から、「ageがnullである」レコードの「すべてのカラム」のデータを指定して取得する
sample
select * from users
where age is null;
is not null
- nullではないデータを取得する
where カラム名 is not null;
is not null
を使用したクエリ
👇「usersテーブル」から、「ageがnullでない」レコードの「すべてのカラム」のデータを指定して取得する
sample
select * from users
where age is not null;
検索結果の加工
distinct
- 重複したデータを取り除く
select distinct(カラム名)
from テーブル名
distinct
を使用したクエリ
👇「usersテーブル」から、「nameが重複しているデータを取り除いて」取得する
sample
select distinct(name) from users;
order by
- データを並び替える
asc
(昇順/小さい→大きい)、desc
(降順/大きい→小さい)と組み合わせて使う- 指定しなかった場合は、昇順で並び替えられる
order by カラム名 desc
order by
を使用したクエリ
👇「usersテーブル」から、「ageが大きい順に並べ替えて」、すべてのデータを取得する
sample
select * from users
order by age desc;
limit
- 最大で何件データを取得するか指定する
limit 取得するデータの件数
limit
を使用したクエリ
👇「usersテーブル」から、「10このデータを」取得する
sample
select * from users
limit 10;
おわりに
今回はデータの検索と加工についてまとめました。
以下のサイトやProgateで何回も練習して、コードを手に馴染ませたいと思います!
参考
Discussion