目次
1. はじめに
2. なぜ「スッキリわかるSQL入門」を選んだのか
3. 今回のゴール
4. 詰まったところと原因
4-1. CHAR型とVARCHAR型の違いが曖昧
4-2. シングルクォーテーションの有無が曖昧
4-3. UPDATEの基本構文が曖昧
5. おわりに
1.はじめに
現在、基本的なSQL文が書けるように下記の書籍を進めています。
各章に練習問題があり、詰まったところをまとめていきたいと思います。
※都度更新していく予定のため、今回は「①」としました。
2.なぜ「スッキリわかるSQL入門」を選んだのか
実務でSQLを触る機会があり、気づいたことがありました。
「自分、レパートリー少ないな」
「結合したテーブルがなんだか訳わからん」
「他の人のSQL文考えるスピードが早すぎる」
転職活動する前はpostgreSQLを少し齧っていた程度、現在はSQLServerを使っている自分ですが、それを差し引いても「勉強した方がいいな…!」と思い学習を決意しました。
- 初心者向けであり、評判が良さそう
- 問題集もついている
- 「dokoQL」があるので環境構築が不要(とにかくすぐ始めたかった)
以上3点の理由から学習教材として選びました。
3.今回のゴール
「なぜ間違えたのか」を理解して落とし込むこととします。
4.詰まったところと原因
4-1.CHAR型とVARCHAR型の違いが曖昧
特徴 | 空白 | 向いているもの | |
---|---|---|---|
CHAR型 | 固定長 | CHAR(10)で7バイトの情報を入れた時→3バイトが自動的に空白で埋められる(格納するデータは常に10バイト) | 郵便番号、社員番号などの格納するデータの桁数が一定のもの |
VARCHAR型 | 可変長 | VARCHAR(10)で7バイトの情報を入れた時→空白は追加されない(7バイト分だけを領域確保) | 氏名や書籍名など、格納するデータの桁数が定まっていないもの |
上記は実際に書籍内で出てくる例です。違いを理解して使い分けをしていきたいと思います。
4-2.シングルクォーテーションの有無が曖昧
以下のようなINSERT文が出てきました。
INSERT INTO 家計簿 VALUES ('2022-02-25', '居住費', '3月の家賃', 0, 85000)
「どんなときにシングルクォーテーション(’)をつけるんだっけ…?」 と訳が分からなくなってしまいました。
これに対する答えはシンプルです。
数値のときはシングルクォーテーション不要
文字列のときはシングルクォーテーション必要
4-3.UPDATEの基本構文が曖昧
これは覚えるしかないですね…
基本構文は以下です。
UPDATE テーブル名
SET 列名1 = 値1, 列名2 = 値2 ...
(WHERE 修飾)
5.おわりに
今回は参考書を進める中で詰まった3箇所について復習していきました。
原因を掴んで理解することが、上達への近道ではないかと思います。
実務では複雑なものもあったりするので、自己学習で一つずつ紐解きながら積み上げていきたいと思います。
読んでいただき、ありがとうございました。