MySQLデータ型とは?数値型・日付と時間型・文字列型・空間型

MySQLデータ型とは?数値型・日付と時間型・文字列型・空間型のアイキャッチイメージ

MySQLデータ型とは?


MySQLには、数値型、日付と時間型、文字列(文字およびバイト)型、空間型という複数のカテゴリにわたる、多数のMySQLデータ型がサポートされており、目的に合わせて使用できます。

角括弧(「[」と「]」)は、型定義のオプションの部分を表します。

数値型とは

MySQLデータ型の数値型は、すべての標準SQL数値データ型をサポートしており、真数値データ型(INTおよびINTEGER、SAMLLINT、DECIMAL、NUMERIC)と概数値データ型(FLOAT、REAL、DOUBLE、DOUBLE PRECISION)および、ビット値型(BIT)があります。

整数(真数値)型

MySQLデータ型の整数(真数値)型は、6種類あります。

INTはINTEGERのシノニムです。INT(またはINTEGER)およびSMALLINTは、標準整数型で、標準に対する拡張として、TINYINT、MEDIUMINT、およびBIGINTの整数型もサポートされています。

構文では下記のように入力します。

UNSIGNED(符号なし)を指定すると、正の数のみ使用できます。

ZEROFILLを指定すると、指定された桁数から、入力されたデータ桁数を除いた桁に、0を入力します。また、自動的にUNSIGNEDを追加します。

固定小数点(真数値)型

MySQLデータ型の固定小数点(真数値)型は、2種類あります。

これらの型は、金銭データを扱う場合など、きわめて正確な結果が重要な場合に、使用します。また、構文で桁数の合計、小数点以下の桁数を指定できます。

構文では下記のように入力します。

合計桁数に小数点と、負の数に対する「-」の記号はカウントされません。UNSIGNEDを指定すると、負の値は許可されません。ZEROFILLを指定すると、指定された合計桁数から、入力されたデータ桁数を除いた桁に、0が入力されます。また、自動的にUNSIGNEDを追加します。

浮動小数点(概数値)型

MySQLデータ型の浮動小数点(概数値)型は、4種類あります。

これらの型は、構文で合計桁数、小数点以下の桁数を指定できます。また、浮動小数点値は概数値ですので、真数値として格納されません。比較で値を真数値として扱おうとすると、問題が発生することあります。移植性を良くするためには、合計桁数、小数点以下の桁数が指定無しを、使用する必要があります。

構文では下記のように入力します。

UNSIGNEDを指定すると、負の値は許可されません。
ZEROFILLを指定すると、指定された合計桁数から、入力されたデータ桁数を除いた桁に、0が入力されます。また、自動的にUNSIGNEDを追加します。

ビット値型

MySQLデータ型のビット値型は、1種類あります。

BITデータ型は、ビットフィールド値を格納を格納するのに使用されます。ビット値とは、0と1で書かれたバイナリ値です。

構文では下記のように入力します。


桁数を省略した場合は1、指定できる桁数は1から64です。また、桁数より少ない値を割り当てた場合、その値の左側はゼロで埋められます。

日付と時間型

MySQLデータ型の日付と時間型は、5種類あります。
それぞれの時間型には、一定範囲の有効な値のほかに、MySQLでは、「ダミーの日付」として’0000-00-00’の「ゼロ」の値を格納できます。

MySQL5.6.4以降では、マイクロ秒(6桁)までの桁数を持つ時間型があります。
構文では、TIME(小数秒桁数)、DATETIME(小数秒桁数)およびTIMESTAMP(小数秒桁数)で、小数秒桁数は0から6の範囲に指定できます。デフォルトは0です。

構文では下記のように入力します。

文字列型

MySQLデータ型の文字列型は、14種類あります。
それぞれの文字列型で、文字の文字列、バイナリ文字列(バイトの文字列)、非バイナリ文字列(文字の文字列)、文字列オブジェクトが使用できます。

構文では下記のように入力します。

空間型

MySQLデータ型には、OpenGISクラスに対応するデータ型が用意されています。

GEOMETRY、POINT、CURVE、LINESTRING、SURFACE、POLYGON、GEOMETRYCOLLECTION、MULTIPOINT、MULTICURVE、MULTILINESTRING、MULTISURFACE、MULTIPOLYGONがあります。

これらのデータ型は、単一の幾何値が格納されるもの、または、どの型の幾何値でも格納できるものがあります。

MySQLデータ型の設定方法

データベースに、カラムにMySQLデータ型を指定して、テーブルを作成します。

コマンドラインで
CREATE TABLE テーブル名 (カラム名1 データ型1,カラム名2 データ型2,カラム名3 データ型3,…);
と入力します。

MySQLデータ型まとめ

MySQLはデータベース管理システムです。MySQLデータベースは、リレーショナルデータベースです。また、データベースとは、構造化されたデータの集合体です。

その構造化されたデータは、複数のカテゴリにわたる多数のMySQLデータ型で、作成できます。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。