LoginSignup
5
1

More than 1 year has passed since last update.

「スッキリわかるSQL入門」で詰まったところ①

Last updated at Posted at 2023-03-03

目次

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箇所について復習していきました。

原因を掴んで理解することが、上達への近道ではないかと思います。
実務では複雑なものもあったりするので、自己学習で一つずつ紐解きながら積み上げていきたいと思います。

読んでいただき、ありがとうございました。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1