パソコン・スマホの困ったを助けます!
SQL

[SQL]データ型、固定長と可変長、「’」の意味

テーブルの列を追加したり、削除によく使われるSQLのデータ型。

その種類や使い方を解説します。

 

また「’」や「VALUES(10)」のように()がどういう意味なのかも

合わせて解説していきます。

 

[SQL]「’」の意味、データ型、固定長と可変長

 

「’」の意味

最初にいうと「’」で囲まれたものは文字列として扱われます。

「’」で囲まれていない場合は数値として扱われます。

「’5000’」は文字列の5000で

「5000」は数字の5000としてみなされます。

 

とあるSQL文を見てみましょう。

insert into プレゼント values (‘2020-07-15′,’髪飾り’,’5000′);

これはプレゼントというテーブルに

「2020/07/15,髪飾り,5000」を列に挿入する文です。

「’2020-07-15’」のように一定の形式で「’」で囲むと

日付として扱われます。

髪飾りは文字列として5000も同様です。

 

またSQLの場合は「’」「”」どちらでも構いません。

 

SQLのデータ型たち

列に入れるデータが

文字列のデータなのか数字のデータなのかを示すのがデータ型です。

使うDBMS製品によってはデータ型が異なりますので

代表的なものだけをまとめます。

あわせて読みたい
SQLの基本、データベースとは?RDB、RDBMSとは?SQLを学んで行く上根底にあるのはデータベース。 基本をある程度掴んでSQLができるあなたはいいですが、 1からちゃんと理解...
データの種類 区分 データ型
日時 DATETIME型,TIME型,DATA型
数値 整数 INTEGER型
小数 DECIMAL型,REAL型
文字列 固定長 CHAR型
可変長 VARCHAR型

 

固定長と可変長は後ほど解説します。

 

先ほどのSQL文をみて疑問に思うことはありませんか?

一列に文字列データと数値データが混在している場合はどうすればいいのか。

数値データのINTEGER型の場合は数値のみ入れることができ、

文字列を格納することはできません。

なのでデータ型の異なるデータは分けて書きます。

 

固定長と可変長とは?

整数と小数でデータ型が分けられるのはわかるが

文字列のデータ型「CHAR」「VARCHAR」は何が違うのか?

それは固定長と可変長の違いです。

「CHAR」は固定長の文字列を扱うデータ型で

CHAR(10)の場合は10バイトの容量が確保されます。

そこに10バイトに満たないデータが入ってきたとします。

文字列の右側に空白が入れられて10バイト丁度に調整されます。

 

これが可変長のVARCHAR型の場合は

VARCHAR(10)だと10バイトより少なければそれに合わせて容量が確保されますが、

12など()内で指定したバイト数を越すものが入ってくると

格納されずにエラーが表示されます。

 

バイトではありませんが簡単に考えた図を書きました。

CHARは10バイトに合わせられる、

VARCHARは用意されたバイト数を使い切るのではなく

7バイトだったらそのバイト数までしか使いません。

実用例

桁数の決まっていないデータはCHAR

桁数の決まっているデータはVARCHARを使います。

 

まとめ

SQLのデータ型がわかりましたでしょうか?

JavaだとintやStringを使ったりするので

SQLを久々に触ろうとするとつまづきやすいですね。

 

この記事が良かったというあなたはTwitterのフォローと

当サイトのお気に入り登録をお願いします!

ABOUT ME
TANSAN
某パソコンショップ店員がパソコン・スマホで困った!という悩みを解決していきます。 ITパスポートの攻略法も随時更新中! PC・スマホで困ったことがあればTwitterのDMまで! 名前の由来は炭酸水が好きなので、でも間違えないでください 私の炭酸水好きは炭酸水が騒がれ始める10年も前から好きなんです。 サイト作りのコンセプトは「赤ちゃんでもパソコン・スマホの設定できるわかりやすいサイト作り」です。 私TANSANとUseful Labどっちもよろしく!!