読みやすいクエリを書くポイント
改行とインデントを利用する
短いクエリでも長いクエリでも改行とインデントを利用するようにしましょう。短いクエリだからと言って一行で書かれたクエリはかなり読みづらいです。下記にNGの例を書いていますが、一行で書かれるとどこまでがSELECT句でどこからがFROM句なのかが読みづらいです。WEHER句があればなおさら読みづらくなってしまいます。また、適切なインデントを付けることも読みやすいクエリを書く上で重要になります。適切なインデントを付けることで、どれが予約語なのかがはっきりして読みやすくなります
NG_1
SELECT user_id, name, weight, height FROM main_table
NG_2
SELECT
user_id
, name
, weight
, height
FROM
main_table
OK
SELECT
user_id
, name
, weight
, height
FROM
main_table
SELECT句では必ずカラム毎に改行する
SELECTの列の数を数えやすくするためにカラム毎に改行するようにしましょう。また、ASがどこにかかっているのかを読みやすくするという理由もあります。SELECTで改行無し&ASがあるとなかなか読みづらいです。
NG
SELECT
user_id as id, name, body_weight as weight, height
FROM
main_table
OK
SELECT
user_id as id
, name
, body_weight as weight
, height
FROM
main_table
AND, ORは先頭に書き、基本的に1行1条件で書く
AND, ORが先頭に書かれていることで条件の数がわかりやすくなります。また、行を短くすることで読みやすくなります。1行が長いと読みにくいです。条件の数はいくつなのか・どのような条件なのかという情報はデータを抽出するうえで重要になってくると思います。WHERE句でAND・ORを利用する際は先頭に書いたほうが良いかなと考えています。
NG
SELECT
user_id
, name
, weight
, height
FROM
main_table
WHERE
weight >= 50 and height >= 170 and name = '三笘'
OK
SELECT
user_id
, name
, weight
, height
FROM
main_table
WHERE
weight >= 50
and height >= 170
and name = '三笘'
1つのカラムに複数の条件にするときはINでまとめる
ORを使って1つのカラムに複数の条件を書くと読みづらくなってしまいます。NGの書き方だとぱっと見た感じだと条件が3つのカラムに対して行っているように見えてしまう可能性があります。OKの書き方であれば、name列で絞っているというのがわかりやすくなると思います。
SELECT
user_id
, name
, weight
, height
FROM
main_table
WHERE
name = '三笘'
or name = '南野'
or name = '堂安'
OK
SELECT
user_id
, name
, weight
, height
FROM
main_table
WHERE
name in ('三笘', '南野', '堂安')
この記事が気に入ったらサポートをしてみませんか?