SQL

SQL – SELECTで絞り込んだものに、もうひと工夫加えてみる

0

SELECT文を使って、行を絞り込んだのはいいけど、例えば「値段が高い順に表示させたい」「日付が最新順になるように表示させたい」とか色々とやりたいことが出てくる。そんなときに、検索結果を自分の思い通りに加工して表示させることができる。

加工するための文一覧

文名 できること
DISTINCT 検索結果から重複した行を除外したいときに使う
ORDER BY 検索結果の順序を並び替える
OFFSET – FETCH 検索結果から件数を限定して(ex.3件だけ)取得したいときに使う
UNION 検索結果にほかの検索結果を足し合わせる(和集合)
EXCEPT 検索結果からほかの検索結果を差し引く(差集合)
INTERSECT 検索結果とほかの検索結果で重複する部分を取得する(積集合)

例文

集合演算子

UNION、EXCEPT、INTERSECTは集合演算子と言われる
https://tech.nikkeibp.co.jp/it/article/COLUMN/20070802/278932/

例えば、1月の家計簿と2月の家計簿を別々のテーブルを作って作成していた場合。
1月と2月の家計簿を一覧表示で見たいとき等に、集合演算子があると便利

この集合演算子は、アプリケーション開発においてデータベースに保存した別々のテーブルに存在するデータを使って分析したり、集計したりしたいときに使えそうな感じがする。

和集合の例文を見ると分かりやすいが、集合演算子はSELECT文で選択した列の数とそれぞれのデータ型が一致していないと使えない。例えば、下記のようなUNIONは使えない

ビュー

SQLを書いていると、「あれ?また同じSQL文書かかなあかんの?だるっ!」となる時がある。こういうときにはSQL文で書いた処理を一つのテンプレートにした「ビュー」という機能を使うと便利。
ビューはRailsやDjangoでいう「render」をイメージすると理解しやすいかもしれない。

 

0
ABOUT ME
chopes
前職では、人材業界で法人営業・キャリアアドバイザー・大阪責任者をしていました。他にも、新入社員の研修策定と育成、面談者の集客におけるスカウト業務や中途採用の面接官、新卒採用の2次選考官、インターンシップのメンターとしてプログラムに参加していました。退職後は、未経験でエンジニアになるためにスクールに通学して勉強。2ヶ月の転職活動を経て、今春からRailsエンジニアとして第二のキャリアを歩むことになりました。主に学習記録や未経験エンジニアについてアウトプットしていきたいと思います! 以下、Twitterアカウントですので、気軽にフォローしてください! Twitter:@chopesu_se