列のデータ・タイプは保存することができますどのデータとどのようにデータが実際に格納されているの基本的なルールで定義されています。MySQLの一般的なデータ型は次のとおりです。
- 文字列データ型:それぞれ固定長文字列、および可変長文字列:最も一般的に使用されるデータ型、文字列の2つの基本タイプがあります。テーブルを作成するために、指定された長さの長さ、内の文字の固定端固定長文字列は、指定された文字データを超えることはできませんが、多くの収納スペース指定型CHAR固定長文字列が属するとして割り当てられています。テキストの長さを格納する可変長文字列変数その他は完全に可変長であるが、可変長データ型は(余分なスペースの保存を追加しない)のみを指定したデータが保存されているにかかわらず、そのうちの、最大の固定長のいくつかを持って、TEXTこれは、可変長文字列のタイプに属しています。可変長データ型の柔軟で効率的な固定長データタイプ、可変長カラムよりもはるかに高速のMySQL処理固定長データタイプ、MySQLは大幅のパフォーマンスに影響を与える可能性が可変長列(または列の可変部分)インデックスに許可。具体的なタイプは、テーブルの下に説明します。
データの種類 |
説明 |
CHAR |
1〜255文字の固定長文字列、その長さは、作成時に指定しなければならない、またはMySQLは(1)CHARを仮定 |
VARCHAR |
作成時に指定されたVARCHAR(N)として可変長、せいぜい255バイトの可変長文字列は、0〜n個の文字を格納することができます |
TINYTEXT |
255バイトのテキストを持つ、最大の長さ |
MEDUIMTEXT |
16Kのテキストで、最大長 |
テキスト |
可変長テキスト64Kの最大長 |
LONGTEXT |
テキストを、(一般的ではない4Gに平文)4ギガバイトの最大長さ |
ENUM |
文字列は、所定のセットからなる64K列まで受け付け |
セット |
ゼロ以上の文字列の定義済みのセットの最大64Kの文字列を受け入れ |
注:文字列データ型の任意の形式は、文字列値は引用符でなければならないかどうか(一重引用符を通常より良い);文字列として使用される場合、値はデータ型の列に格納された値を、でなければならない計算に用いられる値である場合(このような電話番号、郵便番号)などの文字列データ型の列に格納されるべきです。
- 数値データタイプ:値が格納され、広い範囲をサポートするために、異なる店舗を有する各タイプは、より多くのメモリが必要。(BITおよびブールを除く)すべての数値型は符号付きまたは符号なしてもよい、正または負の値を格納することができるデータ列に署名し、デフォルトで署名されます。
タイプ説明 |
ストレージ要件 |
レンジ |
TINYINT [(M)] |
1つのバイト |
符号付きの値:127 -128( - 2 ^ 7-2 ^ 7--1) 符号なし値:0〜255(0 ^ 8--1 2) |
SMALLINT [(M)] |
2つのバイト |
署名された値:-32768 32767( - 2 ^ 15から2 ^ 15--1) 符号なしの値:0(216--1 0)65535 |
MEDIUMINT [(M)] |
3つのバイト |
署名された値:-8388608へ8388607( - 2 ^ 23から2 ^ 23--1) 符号なし値:0-16777215(^ 24--1 0-2) |
INT [(M)] |
4つのバイト |
署名された値:-2147683648へ2147683647( - 2 ^ 31 ^ 31-1〜2) 符号なし値:0〜4,294,967,295(^ 32--1 0-2) |
BIGINT [(M)] |
8つのバイト |
署名された値:9223373036854775807に-9223372036854775808( - 2 ^ 63 ^ 63-1〜2) 符号なし値:0から18446744073709551615(^ 64--1 0-2) |
フロート[(M、D)] |
4つのバイト |
最小の非ゼロ値:1.175494351e± - 38 |
ダブル[(M、D)] |
8つのバイト |
最小の非ゼロ値:2.2250738585072014e± - 308 |
小数(M、D) |
Mバイト(MySQLの<3.23)、M + 2バイト(MySQLの> 3.23) |
変数は、それは値MおよびDの範囲に依存します |
MySQLは5つの整数を提供する:TINYINT、SMALLINT、MEDIUMINT、INTとBIGINT(1,2,3,4バイト)、これらの種類の範囲内で異なる表現することができます。それによって負無効符号なし整数列として定義され、これは0以上の列の範囲になります。
フロート、ダブル、および小数点:mysqlのは、3つの浮動小数点型を提供しています。異なる整数、浮動小数点型は、符号なし整数とすることができず、その値の範囲は、この差は、これらのタイプが最大でないことであり、異なっているだけでなく、最小の非ゼロ値。最小値は非常に重要である科学的データを記録するために、対応するタイプの精度の相対的な尺度を与える(もちろん、負の最大値と最小値も存在します)。
特定の型の値を選択する場合、値の範囲が表現されるとみなされるべきであり、単に最小タイプに値の範囲をカバーするように選択することができます。小さいタイプと同様に効果的にそれらに対処することを選択しなかった、不必要なテーブルを高め、無駄になり、より大きなスペースの種類を選択します。整数値の場合、範囲内のデータは、そのような人たちの年齢や兄弟姉妹の数、最も適切なTINYINTとして、小さい場合。MEDIUMINTは、値の何百万人を表すことができ、より値のタイプが、より大きなメモリのコストを使用することができます。BIGINTの最大値の範囲、およびストレージ・スペースが必要ですが、あなたが本当にそれを必要とするときにのみ使用し、すべての整数倍の整数型int回の大規模な範囲です。フロートの浮動小数点値について、ダブルで二回スペース。具体的に要求される精度の範囲または最大値がない限り、典型的には、ストレージのコストを表すために半分だけデータにフロートを使用します。
整数列を定義するときは、オプションの表示サイズmを指定することができます。そうである場合、mは1から255までの整数でなければなりません。これは、列の値を表示するために使用される文字の数を示します。例えば、MEDIUMINTは、(4)幅MEDIUMINTを有する4つの文字の表示列を指定します。整数列幅の明確な定義が存在しない場合は、自動的にデフォルトの幅に割り当てられます。長さの「最大」値の各タイプのデフォルト値。特定の値がmよりも印刷する必要があるかもしれない場合は文字を表す、完全な値が表示され、m個の文字の値に適合するように切り捨てられません。値の範囲の使用は、インジケータフィールドの幅に影響を与えず、そのサイズは保存することができることに留意すべきです。
各浮動小数点タイプの場合は、最大表示サイズとスケールM Dを指定することができます。mの値は1〜255を取らなければなりません。dの値は、0から30までであってもよいが、超えないM - 2(ODBC馴染みの用語は、知っているであろうと、d mは「精度」と「小数点以下の桁数」のODBC概念に対応する場合)。そして、floatとdoubleのためのD mはオプションですが、小数のために必要とされます。これらは、デフォルト値を省略している場合は、このオプションは、MとDのとき。
- 日付と時刻のデータ型:MySQLは、日付と時刻を示すデータにはいくつかの種類があります。どのDATEが日付で、TIMEは時間を表し、DATETIMEおよびTIMESTAMPは、日付と実践を示し、年YEARを示しています。次の表には:
データの種類 |
バイト数を格納します |
レンジ |
日付 |
4 |
1000-01-01--9999-12-31 |
時間 |
3 |
-838:59:59--838:59:59 |
日付時刻 |
8 |
1000年1月1日00:00:00--9999-12-31 23時59分59秒 |
TIMESTAMP |
4 |
19700101080001--20380119111407 |
年 |
1 |
1901--2155 |
値が有効な値の範囲外である場合、挿入されたシステムが与えられ、ゼロ値がデータベースに挿入されます。
MySQLは、DATE型の値を表示するデータを挿入するYYYY-MM-DD形式で、データフォーマットを維持することができます。「 - 」。また、MySQLはまた、構文は、セパレーター厳密ではありませんサポート「」ように「@」記号と置き換えることができます データを挿入するとき、また、「YY-MM-DD」形式を使用することができる、YYは、対応するルールYEAR年と同様の型に変換されます。我々は現在のシステム時刻を挿入したい場合は、)(NOW CURRENT_DATEを挿入したりすることができます。
TIME类型表示为"时:分:秒",尽管小时范围一般是0~23,但是为了表示某些特殊时间间隔,MySQL将TIME的小时范围扩发了,而且支持负值。对TIME类型赋值,标准格式是'HH:MM:SS',但不一定非要是这种格式。 如果插入的是'D HH:MM:SS'格式,则类似插入了'(D*24+HH):MM:SS'。比如插入'2 23:50:50',相当于插入了'71:50:50'。如果插入的是'HH:MM'或'SS'格式,则效果是其他未被表示位的值赋为零值。比如插入'30',相当于插入了'00:00:30';如果插入'11:25',相当于插入了'11:25:00'。在MySQl中,对于'HHMMSS'格式,系统能够自动转化为标准格式。如果我们想插入当前系统的时间,则可以插入CURRENT_TIME或者NOW()。
DATETIME类型准格式为"YYYY-MM-DD HH:MM:SS",具体赋值方法与上面的方法相似。
TIMESTAMP的取值范围比较小,没有DATETIME的取值范围大,因此输入值时一定要保证在TIMESTAMP的范围之内。它的插入也与插入其他日期和时间数据类型类似。那么TIMESTAMP类型如何插入当前时间?第一,可以使用CURRENT_TIMESTAMP;第二,输入NULL,系统自动输入当前的TIMESTAMP;第三,无任何输入,系统自动输入当前的TIMESTAMP。 另外有很特殊的一点:TIMESTAMP的数值是与时区相关。
给YEAR类型复制可以有三种方法: 第一种是直接插入4位字符串或者4位数字; 第二种是插入2位字符串,这种情况下如果插入'00'~'69',则相当于插入2000~2069;如果插入'70'~'99',则相当于插入1970~1999。第二种情况下插入的如果是'0',则与插入'00'效果相同,都是表示2000年; 第三种是插入2位数字,它与第二种(插入两位字符串)不同之处仅在于:如果插入的是一位数字0,则表示的是0000,而不是2000年。所以在给YEAR类型赋值时,一定要分清0和'0',虽然两者相差个引号,但实际效果确实相差了2000年。
- 二进制数据类型:二进制类型可存储任何数据,如文字、图像、多媒体等。具体类型描述如下:
数据类型 |
说明 |
TITYBLOB |
最大长度为255字节 |
BLOB |
最大长度为64KB |
MEDIUMBLOB |
最大长度为16MB |
LONGBLOB |
最大长度为4GB |
转载于:https://www.cnblogs.com/fyy-888/p/5105704.html