Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

SQLのデータ型は数が多いこともあり、全てを覚えておくことは難しいため、利用する機会に都度確認が必要です。

本記事では、SQLのデータ型でよく利用される型を、一覧で確認出来るようにまとめました。

ポテパンダの一言メモ

記事内ではMySQLで利用可能なデータ型を紹介します。
データベース毎に利用可能なデータ型は少しずつ異なりますので、ご注意ください。

SQLのデータ型1: 文字列


文字列を格納するためのデータ型には大きく分けて「固定長文字列」と「可変長文字列」の2種類が提供されています。

CHAR型

CHAR型は「固定長文字列」に該当するデータ型で、決められたデータサイズの領域を確保します。

指定したデータサイズ以上の文字列は格納することが出来ず、データサイズが不足する場合には、空白で指定したデータサイズまでの領域を埋めることになります。

VARCHAR型

VARCHAR型は「可変長文字列」に該当するデータ型で、格納する文字列により確保するデータサイズを変更出来ます。

CHAR型のように、指定したデータサイズまで空白で埋めるような処理が行われないため、文字列に適したデータサイズをデータベースが自動的に確保してくれます。

サンプル

テーブル作成する際は下記のように指定します。

CREATE TABLE テーブル名(カラム名 CHAR(データサイズ), カラム名 VARCHAR(データサイズ);

「sample_table」というテーブル名で、最大10文字までのサイズを定義した「CHAR」と「VARCHAR」のカラムを作成する場合、下記のコマンドとなります。

CREATE TABLE sample_table(col1 CHAR(10), col2 VARCHAR(10));

SQLのデータ型2: 整数


整数型では、扱う数値の大きさにより指定するデータ型を変更します。

TINYINT型

SMALLINT型

MEDEUMINT型

INT型

BIGINT型

サンプル

整数型の場合は、データサイズを記入する必要はなく、型の名前を定義するだけです。
※数値幅を指定して意図したサイズまでしか格納させないようにすることも可能です。

符号なしの指定を行いたい場合には、データ定義の後に「UNSIGNED」を付与します。

CREATE TABLE テーブル名(カラム名 TINYINT, カラム名 INT(4) UNSIGNED);

「int_sample」というテーブル名で、1つ目のカラムを「TINYINT」、2つ目のカラムをINT型で4桁までの符号なしと定義する場合、下記のようになります。

CREATE TABLE int_sample(col1 TINYINT, col2 INT(4) UNSIGNED);

SQLのデータ型3: 浮動小数点


浮動小数点は、正確な数値ではなく計算で誤差が生じることを前提とした数値データのことを指します。

浮動小数点では、近似値で計算を行う分、広い範囲のデータを扱うことが可能です。

一般的にプログラム制作においては、小数を含むデータはこの浮動小数点型を利用します。

FLOAT型

FLOAT型は、単精度浮動小数点型と呼ばれ、小数第7位までの値を正確に表すことが出来るとされています。

DOUBLE型

DOUBLE型は、倍精度浮動小数点型と呼ばれ、小数第15位までの値を正確に表すことが出来るとされています。

近年のプログラム開発においては「DOUBLE型」を使うことが多いようです。

最近のコンピューターにはDOUBLE型を専門に扱う回路が搭載されていることも多いようで、「精度が高い」「処理速度が速い」の理由から選択されています。

メモリサイズにおいては、FLOAT型に軍配が上がりますが、最近のコンピューターのメモリ量であれば考慮する必要はほとんどありません。

サンプル

浮動小数点型では、格納可能な値の範囲があらかじめ決まっているためデータの範囲を指定する必要はありません。

ただ、表示する桁数の合計と小数点以下の桁数を指定することが可能となっています。

CREATE TABLE テーブル名(カラム名 FLOAT [UNSIGNED], カラム名 DOUBLE[(桁数合計, 小数点桁数)]);

「float_sample」というテーブル名で、1つ目のカラムを符号なし、2つ目のカラムを桁数合計が8桁の小数点が2桁と定義して作成する場合、下記のコマンドとなります。

CREATE TABLE float_sample(col1 FLOAT UNSIGNED, col2 DOUBLE(8, 2));

SQLのデータ型4: 日付・時刻


SQLでデータを格納する際、日付・時刻型を利用することも多いので頻出のデータ型を抑えておきましょう。

DATE型

日付を格納するためのデータ型で、デフォルトフォーマットは「YYYY-MM-DD」と設定されています。

「1000-01-01」から「9999-12-31」までの値が格納可能です。

DATETIME型

日付と時刻を格納するデータ型で、デフォルトフォーマットは「YYYY-MM-DD HH:MM:SS[…]」と設定されています。

「1000-01-01 00:00:00.000000」から「9999-12-31 23:59:59.999999」までの値が格納可能です。

TIMESTAMP型

DATETIME型と同じく、日付と時刻を格納するデータ型で、デフォルトフォーマットも「YYYY-MM-DD HH:MM:SS[…]」です。

では、何がDATETIME型と異なるのかというと、扱える日付の範囲が異なります。

TIMESTAMP型では「1970-01-01 00:00:01(UTC)」から「2038-01-19 03:14:07(UTC)」までの値が格納可能です。

日付の範囲以外にも、特殊な値を登録しようとした際の挙動の違いなどがありますので、興味のある方は別途調べてみてください。

ポテパンダの一言メモ

今回はタイトルの趣旨から外れるため、DATETIME型とTIMESTAMP型の詳細な違いについての解説は行いません。

サンプル

日付型の指定方法は非常に簡単で、データ型の名前を定義するだけです。

ただ、DATETIME型やTIMESTAMP型などの小数点を扱えるデータ型では、0~6桁までで秒数以下の範囲を指定することが可能です(デフォルトは0)。

CREATE TABLE テーブル名(カラム名 DATE, カラム名 DATETIME(秒数以下の範囲));

「date_sample」というテーブル名で、1つ目のカラムをDATE型、2つ目のカラムをDATETIME型で秒数以下の範囲を2桁までとして作成する場合、下記のコマンドとなります。

CREATE TABLE date_sample(col1 DATE, col2 DATETIME(2));

さいごに:SQLのデータ型を全て覚える必要はない


本記事では、SQLのデータ型について、MySQLデータベースをサンプルとしてご紹介してきました。

今回掲載した内容は、利用可能なデータ型のごく一部に過ぎず、他にも様々なデータ型が用意されています。

全てを覚えておく必要はなく、頻繁に利用されるデータ型というのも限られています。

どういったデータ型があるのか概要を把握しておき、見慣れぬデータ型が使用されている場合には、調査しながら利用できるようにしましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。