はじめに
バックエンドエンジニアであれば関わるであろうSQLについて纏められた技術書
「スッキリわかるSQL入門 第3版 ドリル256問付き!」が良書すぎたので
おすすめしたいと思います。
SQLはMySQLで扱ってましたが、腰を据えて学んだことがなかったので今回、技術書を使って知見を深めました。
この記事の対象者
- SQLについて初めて学ぶ人
- SQLを実務で扱っているが理解が浅い人
- SQLについての理解を深めたい人
- テーブル設計ができるようになりたい人
はじめてのSQL
この章では主にデータベースとは何かといった、基礎知識について纏められている。
ハンズオンとして dokoQL を使って環境構築なしでSQL文を実行することができるようになります。
この章で学ぶこと
- データベースの概要
- SQLの概要
基本文法と4大命令
章題の通り、基本文法についての説明が纏められている。
SELECT
、UPDATE
、DELETE
、INSERT
の書き方のレクチャー。
この章で学ぶこと
- SQLの基本ルール
- データ型とリテラル
- SQLの体系
- 4大命令をスッキリ学ぶコツ
操作する行の絞り込み
主に条件についての説明が纏められている。
AND
、IS NULL
、LIKE
、IN
、BETWEEN
などの使い方のレクチャー。
この章で学ぶこと
- WHERE 句
- 演算子
- NULL
- 主キー
検索結果の加工
並び替えなどについて纏められている。
DISTINCT
、ORDER BY
、OFFSET - FETCH
、UNION
、EXCEPT
、INTERSECT
などのレクチャー。
この章で学ぶこと
- 検索結果の加工
- 集合演算子
式と関数
四則演算や関数について纏めている。
CASE演算子なども出てきて一見複雑そうに見えてしまうが
丁寧に纏められているのでしっかりと読んで、手を動かしていけば身につく。
この章で学ぶこと
- 計算式
- 計算式に用いる演算子
- 関数
集計とグループ化
集計とグループ化について纏めている。
HAVING
句なども出てきてくる。
図でも説明があるため、理解がとてもしやすい。
この章で学ぶこと
- 集計
- グループ化
- 集計関数
副問い合わせ
1つのSQL文で2つ以上の処理をするための副問い合わせについて纏めている。
副問い合わせのSQL文は複雑に見えてしまい、敬遠してしまうかも。
だけどこの章では習得するためのコツについても記載しているのでしっかりと読んでほしい。
この章で学ぶこと
- SQL文のネスト
- 副問い合わせのパターン
- 複数行副問い合わせと演算子
複数テーブルの結合
複数テーブルを取り扱う方法についてまとめている。
イメージがわかりにくい JOIN
について、紙工作をして
体感することができる。準備に手間はかかるかもですがやることで
間違いなくイメージがしやすくなるので体感することがおすすめ。
この章で学ぶこと
- リレーションシップ
- 結合
- 結合構文のバリエーション
トランザクション
トランザクションについてまとめられている。
副作用についても図を使いつつ説明しているのでわかりやすい。
この章で学ぶこと
- トランザクション
- 原子性
- 分離性
- ロック
テーブルの作成
テーブルの作成をもとに制約についてもまとめられている。
ここの理解をすることで、すでに作られたテーブルに対しても
必要な制約などについて考えることができるようになる。
この章で学ぶこと
- 4種類のSQL命令
- テーブルの作成と削除
- 制約
さまざまな支援機能
インデックスやビューなどについてまとめられている。
ただ使い方などが書かれているだけではなく、なぜ必要なのかも
解説してくれている。
この章で学ぶこと
- インデックス
- ビュー
- 採番とシーケンス
- バックアップ
テーブルの設計
設計について段階的に説明がされている。
その後、正規化の流れについてもまとめられている。
この章で学ぶこと
- データベース設計
- エンティティの関係
- 論理モデルと正規化
付録
- 簡易リファレンス
- エラー解決 虎の巻
- 特訓ドリル
まとめ
既に実務で大抵の知識はついていたが、理解が浅かった部分の再確認ができたのがすごいよかった。
特に正規化に関してはこれまで学んでこなくて言葉すら知らなかったけど、感覚的に正規化していたことを、これからは確信を持って行えるようになるのは成長を感じました。