English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
以下の各セクションでは、MySQLがサポートするデータ型について説明します。
MySQLは3種類のデータ型をサポートしています:文字列、数字および日付/時間データ型。
文字列データ型は、名前、住所、説明、またはアルファベットと数字を含む値、例えば画像やオーディオファイルなどのバイナリデータを保存するために通常使用されます。
CHARデータ型は最大255文字の固定長文字列です。一方、VARCHARデータ型は最大65FLOAT(535文字の可変長文字列(MySQL 5.0.3以前は255文字)。
CHARとVARCHARデータ型の宣言長さは、保存したい最大の文字数を示します。例えば、CHAR(5)まで最大で5文字。
CHARとVARCHARデータ型の主な違いはデータの保存方法です。値がCHARカラムに保存される場合、指定された長さのスペースで右詰めされますが、VARCHARカラムに値を保存する場合は詰められません。これは、値「ab」CHARが、4)に保存されます。4)カラムに格納された場合、その値は「ab」として保存されますが、同じ値は「ab」として保存されます。
ヒント:国や他の固定長の値を保存するためにCHARデータ型を使用します。/地域コード。長さが可変の名前やタイトルなどの値に対して、VARCHARはスペースを節約できます。
注意:VARCHARの有効な最大長さは、最大行サイズ65FLOAT(535バイト(すべての列で共有)と使用するキャラクタセットの制限により、VARCHARの有効な最大長さが決定されます。
BINARYとVARBINARYタイプは、CHARとVARCHARに似ていますが、これらは二進位文字列を含んでいるため、非二進位文字列を含むものとは異なります。 BINARYとVARBINARYの最大許容長は、CHARとVARCHARと同じですが、BINARYとVARBINARYの長さはバイト単位で、文字単位ではありません。
TEXTとBLOBデータ型は、大量のデータを保存するために特別に用意されています。TEXTデータ型は、説明やブログのコメントなどの長い文字列を保存するために使用されます。
BLOBは、可変数のデータを格納できる二進位大オブジェクトです。データベース内にバイナリメディアファイル(例えば、画像やオーディオファイル)を格納する必要がある場合、この機能は特に有用です。
4つのBLOBタイプは、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOBです。これらの違いは、格納できる値の最大長さだけです。同様に、これらの4つのテキストタイプは、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXTです。これらは、同じ最大長さとストレージ要件を持つ4つのBLOBタイプに対応しています。
以下の表は、対に並ぶMySQL文字列データ型を示しています。バイナリまたは非バイナリのいずれのタイプでも、最大長さはバイト単位で示されます。
二進位データ型 | 非二進位データ型 | 最大長度 |
---|---|---|
BINARY | CHAR | 255 |
VARBINARY | VARCHAR | 65FLOAT(535 |
TINYBLOB | TINYTEXT | 255 |
BLOB | TEXT | 65FLOAT(535 |
MEDIUMBLOB | MEDIUMTEXT | 16FLOAT(777FLOAT(215 |
LONGBLOB | LONGTEXT | 4FLOAT(294FLOAT(967FLOAT(295 |
注意:非二進位文字列データ型の場合、列の長さの値は通常、バイト数ではなく文字数と呼ばれます。これは、多バイト文字を含む文字列の最大文字数が少ないことを意味します。
ENUMデータ型は、列に格納できる可能性のある値のリストを指定することができます。例えば、'male'、'female'と指定された性別ENUM(NOT) NULLのカラムは以下のいずれかの値を持つことができます:''、'male'または'female'。ENUMリストに最大で指定できます。65FLOAT(535個の異なる値。 ENUMカラムに無効な値(許可された値リストに存在しない文字列)を挿入すると、空文字列が挿入されます。
SETデータ型は、カラムに挿入する値のリストを指定することを許可します。たとえば、列挙。ただし、一つの値を選択することが許されるENUMデータ型とは異なり、SETデータ型は指定された値のリストから複数の値を選択することができます。
たとえば、option SET('one', 'two') NOT NULLとして指定されたカラムは、以下のいずれかの値を格納できます: 'one'、'two'または'one,two'。カンマで区切られた複数の値(カンマ、)。SETデータ型では、最大で指定できます。64個の異なる値。
数値データ型は、価格、給与などのデータを格納するために通常使用されます。
MySQLはSQL標準の整数型INTEGER(またはINT)とSMALLINTをサポートしています。MySQLはまた、SQL標準を拡張した整数型TINYINT、MEDIUMINT、BIGINTをサポートしています。以下のテーブルは、各整数型の範囲を示しています。
データ型 | 範囲(符号付き) | 範囲(無符号) |
---|---|---|
TINYINT | -128 から 127 | 0 から |
SMALLINT | -32768 から 32767 | 0 から |
MEDIUMINT | -8388608 から 8388607 | 0 から |
INT | -2147483648 から 2147483647 | 0 から |
BIGINT | -9223372036854775808 から 9223372036854775807 | 0 から |
数値データ型にはSIGNED(符号)とUNSIGNED(無符号)の追加属性があります。数値データ型はデフォルトで符号付きであり、範囲は負から正に向かって広がります。符号付き属性を追加することで数値カラムには負数を使用することができず、範囲は最小値が0から始まるように変更されます。
DECIMALとNUMERICデータ型は正確な数値を格納するために使用されます。これらのデータ型は「固定小数点」や「正確値」タイプとも呼ばれ、たとえば製品価格のような通貨データを正確な精度を保つために使用されます。MySQLではNUMERICはDECIMALとして実装されています。
DECIMALまたはNUMERICカラムを宣言する際には、精度と小数桁数を指定できます。たとえば、DECIMAL(P、S)またはNUMERIC(P、S)で、Pは精度、Sは小数桁数です。 精度はカラムに格納できる最大桁数(小数点以下の桁数も含む)を指定し、小数桁数は小数点以下に格納できる桁数を示します。 たとえば、価格としてDECIMAL(6FLOAT(2)カラムは、六桁の数字と二桁の小数を持つどんな値も格納できます。-9999。99まで9999。99の値。
FLOATおよびDOUBLEは近似的数値データ値を表します。これが「浮動小数点型」または「近似値型」として呼ばれる理由です。
MySQLがサポートする構文:FLOAT(M、D)またはDOUBLE PRECISION(M、D)。 (M、D)は、合計でM桁の値を保存できることを意味し、D桁は小数点以下にあります。例えば、表示される形式はFLOAT(7FLOAT(3)を表示すると、-9999。999.00 )の列を「9999MySQLは値を保存する際に四捨五入を行います。したがって、9.0007FLOAT(3,9999)。近似結果は1.00
注意:”。
日期(DATE)と時間(TIME)データタイプ
DATEタイプ-MM-DATEデータタイプは、日付を保存するために使用されます。MySQLのDATEは以下の「YYYY 1000-01-01DD'形式で値を保存および検索します。YYYY、MM、DDは時間の年、月、日部分です。サポートされる範囲は「 9999-12-31”から“
時間(TIME)タイプ-838:59:59」。TIMEデータタイプは、日または時間間隔を保存するために使用できます。MySQLのTIMEは以下の「HH:MM:SS」形式で値を保存および検索します。HH、MM、SSは時間の時間、分、秒部分(または「HHH:MM:SS」の大時間の形式)です。サポートされるTIME値の範囲は「838:59:59」。
時間部分が大きい可能性があります。なぜなら、MySQLのTIMEタイプは、一日の中の時間(少なくとも)を保存するだけでなく、24時間),また、経過時間や2つのイベント間の時間間隔(おそらく非常に大きい)にも使用できます。24時間、負の時間も含まれます)。
注意:デフォルトでは、TIME範囲を超えても有効な値は範囲の最も近い端点に切り取られます。例えば、「 860:00:00”は「 838:59:59”。無効なTIME値は「00:00:00」に変換されます。
DATETIMEおよびTIMESTAMPデータタイプは「YYYY-MM-DD HH:MM:SS'形式で合計の日時値を保存します。これらのデータタイプは、配達オーダーの日時、テーブル内で行を作成または修正した際のデータなど、通常日時を保存するために使用されます。
これらのデータタイプは多くの面で似ているが、いくつかの違いがあります。DATETIMEは以下の範囲をサポートしています「1000-01-01 00:00:00'から「9999-12-31 23:59:59しかし、タイムスタンプの範囲は「1970-01-01 00:00:01' UTCから'2038-01-19 03:14:07UTC。
TIMESTAMPとDATETIMEは特別な自動初期化および自動更新属性も持ちますが、これらの属性はMySQLには適用されません 5。6。5以前のDATETIMEM。
注意: MySQLはTIMESTAMP値を現在の時区からUTCに変換して保存し、UTCから現在の時区に変換して取得します。
YEARデータ型は四桁の年齢値YYYY形式で保存するために使用されます。
それをYEARまたはYEAR(4)。サポートされるYEAR値の範囲は1901から2155。無効なYEAR値は0000に変換されます。
注意:より古いMySQLバージョンでは、二桁の年齢値YEAR(2)ですが、現在は廃止され、MySQL 5。7。5中でそのサポートは削除されました。