「SQL文は単純だけれど面倒くさい」
SQL文は単純だ
SELECT、INSERT、DELETE、UPDATE
それさえ把握しときゃ何とかなる
あとCREATEもか、うん
それくらい単純だが
でも面倒くさい
例えばGROUP BYとかORDER BYとか
まとめるか並べるかという話だけだから
やっていることは単純だけれども
データベースの種類によっては
細かいルールみたいなのが色々あって
そこで悩んだりイライラしたりすることもある
この辺は受け容れるしかないけどね
でも正直言うと面倒くさい
プログラム言語みたいに
全く違う構文になる訳でもないのに
細かいところ違うとなると
うっかり犯すミスも多くなるからイヤ
単純だけれど面倒くさい点は
それだけではない
先ほどのSELECT文だって
取得元でさらにSELECT文が記述されていて
その取得元もSELECT文で記述されていて
で、さらにその取得元もSELECT文で
おまけにそのような形をしてるSELECT文が
UNION ALLで結合している
ただくっつけているだけにしか過ぎないが
SQL文をいちいち確認しなきゃならない時
こういった記述をされると
把握できるまで時間がかかる
あと
入れ子のような記述は確かに便利だが
これも見ていて疲れる
おまけに取得元のSELECT文って
だいたいAS 〇〇といった形で
記号つけて楽に引っ張り出せるようにしてるけれど
SQL文の前のWITH句に対しても
同じ記号がつけられていたりして
一体どのSELECT文から取得している項目なのか
混乱することがあるからタチが悪い
ただこれは
いずれか見ることになるであろう
for文の中のfor文の中のfor文の中のfor文の...
みたいなパターンのソースコードへの
耐性をつけるための練習とも思って
どうにかやり遂げるしかない
それに今回は
わりとわかりやすい変数名がついていたから
まだ対処できたけれど
これがもし特に意味のない変数名ばかりだったら
もう詰んでたね
INSERTとDELETEとUPDATEは
まだそこまで面倒くさいものに会ったことがないから
何とも言えない
でもいつかはそういうのに出くわすんだろうなぁ
この職に就いている以上
可能性は0ではない
やっぱSQL文を愛せないね
性質上、すごい大事なのは理解しているけどさ
ていうかSQL文ばっか触れてるせいで
Javaとかのルールもう忘れたわ




