🧑🏻‍💻

【SQL】検索の絞り込みと加工

2023/08/11に公開

はじめに

以前からSQLはProgeteなどで一通り学んでいましたが、現場でSQLを扱うことになったので、改めてSQLについて調べました。
今回は検索の絞り込みと加工についてまとめています。基本構文4つについてまとめた記事はこちら👇
https://zenn.dev/miya_akari/articles/858d4c1f6408de

検索の絞り込み

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 カラム名 between1 and2;

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で何回も練習して、コードを手に馴染ませたいと思います!
https://sqlab.net/

参考

https://www.w3schools.com/sql/default.asp
https://qiita.com/tatsuya4150/items/69c2c9d318e5b93e6ccd

Discussion