箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

SQLの基礎の基礎を勉強し直す

これまでなんとなくで学んできたSQLの細かい部分や少し高度な部分を学び直したいなぁと思ってこちらを購入。

https://amzn.to/2CpxmW2

今まで知らなかった部分がいくつかあったので残しておこうと思います。

WHERE NOT は <> で表現できる

基本的すぎるかもしれないですが、今まで条件指定で否定を使いたいときはわざわざwhere notを使用していました。。

(ちなみにめんどくさいのでいつも小文字派)

> select * from users where not status = 1;

これが

> select * from users where status <> 1;

こう書けるんですね。

こっちの方が圧倒的に楽だし個人的に好きです。今後はこっちにしよう。。

OR句を複数使う場合はINでまとめる

これもなんか基本的というか、ログで見たことはあったものの自分でSELECT文を打つときに使用したことはなかったです。

あまりこのような条件で検索しようとしたことがないのもあると思いますが。。

> select * from users where age = 15 or age = 20 or age = 25;

これが

> select * from users where age in (15, 20, 25);

こうなる。

そもそも一つめのクエリのようにいくつも重ねてOR句で検索することって無いような気はするけどw

カラム名が同じなのであれば断然INの方が効率が良いですね。

範囲指定にBETWEEN

これもあまり日常で検索したいと思ったことがなかったけど、

年齢が15~20歳のユーザーを探したい場合

select * from users where age >= 15 and age <= 20; 

ではなく

select * from users where age between 15 and 20;

の方が楽ですね。

未だ=の位置をしょっちゅう間違えてsyntaxで怒られる雑魚なのでこちらの方が楽です。w

こんなことも知らなかった自分に驚愕しつつ、やはり掻い摘んで勉強するだけでは足りないということをひしひしと感じました。。

ある程度基礎が理解できたら、出来るだけ早い段階で書籍を使用して体系的な学習をしないといけないなと思い知ったのでした。

参考

https://amzn.to/2CpxmW2