はじめに〜書こうと思った理由について〜
SQLの学習を継続的にやっているのですが、
まだ理解していない部分を理解して、アウトプットしておこうと思い、
記事を書きました。
対象とする人
・SQLの学習をしはじめて間もない人
・SQLのデータ型についてイマイチ分かっていない人
この記事の流れ
・データ型について
・固定長?可変長?
・固定長(CHAR型)
・可変長(VARCHAR型)
・まとめ
データ型について
データベースのテーブルって、列ごとに格納できる「データの種類」というのが決められているんですよね。
そのデータの種類をあらわすものを「データ型」と呼びます。
代表的なデータ型は下記となります。
データ種別 | 区分 | 代表的なデータ型名前 |
---|---|---|
文字列 | 固定長 | CHAR型 |
文字列 | 可変長 | VARCHAR型 |
数値 | 整数値 | INTEGER型 |
数値 | 小数 | DEMICAL型,REAL型 |
日付と時刻 | -- | DATETIME型,DATE型,TIME型 |
#固定長?可変長?
上に書かれた表を見て、
整数値
小数
日付と時刻
は意味が分かるけど、
固定長、可変長ってなに??聞いたこと無い・・・。
と思った人がいるかと思いますので、解説します。
#固定長(CHAR型)
固定長とは、一言で言うと、「入るデータの長さが決まっている」、という意味です。
また、CHAR型というのは、固定長の文字列データを扱うデータ型のことです。
例えば、CHAR(10)とかかれていたら、
「10バイトまで文字をきちんと入れてねー」
ということになります。
そして、もし、格納しようとしている文字列が10バイトではなく8バイトだとします。
8バイトだと10バイトに満たないですよね。
その場合だと、文字列の右側に__空白__が2バイト追加されます。
そして、10バイトぴったりに調整された後、格納されます。
CHAR型は社員番号や郵便番号といった、格納するデータの桁数が決まっているものに対して使われるデータ型です。
#可変長(VARCHAR型)
可変長(VARCHAR型)とは、一言で言うと、「中に入るデータの長さが決まっていない」という意味です。
また、VARCHAR型というのは、可変長の文字列データを扱うデータ型のことです。
VARCHAR型では、もし格納する文字列の長さが足りていなくても、右側に空白を追加する、といった調整はありません。
例えば、VARCHAR(10)とかかれていたら、
「10バイトまで文字を入れてねー、10バイトまで8バイトでも3バイトでも大丈夫だよー」
ということになります。
格納しようとしている文字列が8バイトでも3バイトでも、そのままの長さで格納することが可能です。
そのため、
VARCHAR型は氏名や書籍名といった、格納するデータの桁数が変動するものに対して使われるデータ型です。
#まとめ
固定長(CHAR型)とは、「入るデータの長さが決まっている」ということ。
例として、社員番号や郵便番号の文字列を格納する時に使われる。
可変長(VARCHAR型)とは、「中に入るデータの長さが決まっていない」ということ。
例として、氏名や書籍名といった文字列を格納する時に使われる。
というわけで・・・
お読みいただきありがとうございました。
間違い等ございましたら、ご指摘いただけると嬉しいです!
参考図書 : スッキリわかるSQL入門