【感想】「スッキリわかるSQL入門」を読んで
概要
SQLはバックエンドエンジニアに必須スキルであり、今回は知識の再確認のため、ミック本の次のステップとして有名な「スッキリわかるSQL入門」を読んだ感想です。
良かったところ
- 基礎知識が整理できた
- 一部知らないことを知れたこと
学んだこと
サブクエリをINSERT文で利用する
あまり使う機会はなさそうですが、サブクエリを用いてデータ追加する方法です。
# 平均所有ポイントより高いユーザーを高ポイントテーブルに追加 insert into high_point_users (id, name, point) select id, name, point from users where point > (select avg(point) from users);
他のテーブルに登場する行のみ抽出したい
これは頻繁に使うパターンです。
# 高ポイントテーブルに登場するユーザーのみ抽出 select name from users u where exists ( select * from high_points_users hpu where u.id = hpu.id );
truncate
はdelete
より高速
定番の知識ではありますが、テーブルの全件を削除したい時には、truncate
がdelete
より高速です。
今回はその理由をちゃんと理解することができました。
truncate
:記録を残さずに全行削除するため高速(しかし、ロールバックできない)delete
:行ごとにログ記録が行われるため、大量のデータを削除する際にはパフォーマンスが低下する
まとめ
SQLの基礎知識を改めて整理するために、「スッキリわかるSQL入門」を読んだ感想を簡単にまとめました。新しく知られた知識はほとんどなかったですが、知識の再確認ができたことにより、確実に身についているとわかり自信が持てました。今後も、新しい知識だけでなく、既に知っていることの再確認は定期的にやっていこうと思います!