2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【SQL入門】CHARとVARCHARの違いは「データの合わせ方」でイメージする

2
Last updated at Posted at 2026-02-08

🔰 はじめに

SQLの勉強を始めると最初に出てくる「型」の話。 特に CHAR と VARCHAR。 「固定長」とか「可変長」とか、難しい言葉で説明されてもなかなかイメージしにくく覚えにくいため、僕なりに「こういうことか!」と納得したイメージをまとめてみました。

🔑 Cue(今回の疑問)

  • CHARとVARCHARって結局どう使い分けるの?
  • どっちを使っても同じじゃないの?

📝 Notes(学習内容)

1. CHARとVARCHARの共通点

  • 文字列専用の型
  • (n)最大文字数(またはバイト数)を指定すること
  • (n)を超えたらエラーとなる

2. CHARとVARCHARの違い

一言で言うと、用意した領域にデータを合わせるか、領域がデータに合わせるかの違い。

性質 特徴
CHAR 固定長 領域(n) > データの場合、空白を入れて領域分ぴったり使用する
VARCHAR 可変長 領域(n) > データの場合、 データ分の領域が使用される

具体例:10文字分(10)の領域に「abc」を入れた場合

  • CHAR(10) の場合
    • データの後ろに空白が入り、強制的に10文字分使われる。
    • イメージ:'abc□□□□□□□'(後ろに7つ空白が入る)
  • VARCHAR(10) の場合
    • データが3文字なら、3文字分の領域しか使わない。
    • イメージ:'abc'

💡 結局どう使い分けるの?

**「入れるデータの長さが一定かどうか」**で判断する。

1. CHAR(n) を使うべきケース

**「入れるデータの長さが、ほぼ全て同じ」**な場合に使用する。
あらかじめサイズが決まっていると、DB側の管理コストが減り、処理がわずかに速くなることがある。

  • 都道府県コード: 01, 13, 47(常に2文字)
  • フラグ: Y, N(常に1文字)
  • 固定長のID: 社員番号が必ず8桁と決まっている、など
  • ハッシュ化されたパスワード: 特定のアルゴリズムなら常に64文字、など

2. VARCHAR(n) を使うべきケース

**「人によってデータの長さがバラバラ」**な場合に使用する。
無駄な空白を使わないため、ストレージ(容量)の節約になる。

  • 名前: 「田中」さんもいれば「寿限無…」さんもいる。
  • メールアドレス: 非常に短いものから長いものまで様々。
  • ブログのタイトル: 10文字〜100文字など振れ幅が大きい。

✅ Summary(まとめ)

  • CHAR は「ピッタリ同じ長さ」のデータに使う(例:コード類)。
  • VARCHAR は「バラバラな長さ」のデータに使う(例:名前、文章)。
2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?