0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】SQL SELECT文の句ごとの評価順

Posted at

背景

  • 業務で現行の機能内のSELECT文の改修を任せていただいた際、先輩から教えていただいた知識を備忘録として残そうと思う

SQLの"句ごとの評価順"とは

  • 例えば以下のクエリがあったとする
    SELECT * FROM t_sample WHERE sample_id=4946;

このとき評価順=文章内のどこからコンピュータが読むのか は

このクエリはSELECT, FROM, WHERE の3つの句で構成される

句ごとの評価順は FROM➡WHERE➡SELECT になる

SQLの句ごとの評価順まとめ

順位 役割
1 FROM テーブルの決定,結合処理
2 ON テーブルの結合条件の指定
3 JOIN テーブルの結合処理
4 WHERE 条件によるデータの絞り込み
5 GROUP BY データのグループ化
6 WITH CUBE, WITH ROLLUP リレーショナルデータベースの操作
HAVING 集積結果の絞り込み
SELECT 必要なカラムの選択
DISTINCT 必要なカラムの重複を除外
10 ORDER BY 並び替え
11 LIMIT, TOP 取得行数の制限

参考

終わりに

あくまで私の腹落ちさせた方法として、クエリを日本語で書き直してみるとわかりやすかったのでこれも備忘として残す
日本語で解釈すると、以下のように解釈できるはずだ
t_sample から sample_id=4946 のレコード全部を取得する

日本語で読むと必ずしも前から並んでいる順に評価されているわけではないのがわかるだろう(必ずしも日本語に直してたものと等しくはならないので注意

またデータベースによって同時に使えない場合もあるそうなので、その辺りも調べたらまとめようと思う

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?