GNU/Linux >> Linux の 問題 >  >> Cent OS

MySQLデータ型

はじめに

MySQLデータ型 MySQLデータベースの作成と操作を開始する前に、理解しておくことが重要です。各列を適切に割り当てると、データベースが最適化され、データが安全に保存されるようになります。

このチュートリアルでは、さまざまなMySQLデータ型について学習します。

MySQLのデータ型とは何ですか?

名前とデータ型は、データベーステーブルの各列を定義します。指定されたデータ型は、MySQLが格納する値の種類、必要なスペースの量、およびこの種類のデータで実行できる操作の種類をMySQLに通知します。

MySQLデータ型

MySQLテーブルに保存できるさまざまなデータ型があります。

それらは5つの主要なカテゴリに分類されます:

  1. 数値データ型
  2. 日付と時刻のデータ型
  3. 文字列データ型
  4. 空間データ型
  5. JSONデータ型

各グループの詳細と、グループに含まれるデータ型を確認するために読んでください。

数値データ型

データベース列に数値を格納するときは、数値データ型の1つを使用してください。 MySQLは、正確な数値データ型と概算の数値データ型の両方をサポートしています。

数値カテゴリは、さらに次のグループに分類されます。

  • 整数データ型
  • 浮動小数点データ型
  • 固定小数点データ型
  • ビット値データ型

整数型

整数データ型 整数(整数)に使用されます。それらには、正の値と負の値の両方が含まれます。ただし、小数は処理しません。

したがって、30や-5435などの数値は整数データ型として格納できますが、5、3、または1/5は格納できません。

整数型は符号付きまたは符号なしです。サイズに基づいてさらに細かく分類され、長さと範囲が異なります。

バイト 範囲(署名なし) 範囲(署名済み)
TINYINT 1 0から255まで -128から127まで
SMALLINT 2 0から65535まで -32768から32767まで
MEDIUMINT 3 0から16777215まで -8388608から8388607まで
INT 4 0から4294967295まで -2147483648から2147483647まで
BIGINT 8 0から18446744073709551615まで -9223372036854775808から9223372036854775807

TINYINT 1バイトを使用する非常に小さい整数です ストレージの。最大4桁で構成されます 。その符号なしの範囲は0からです 〜 255 。署名されている場合、範囲は -128です。 127へ 。

SMALLINT 2バイトを使用する小さな整数です ストレージの。最大5桁で構成されます 。その符号なしの範囲は0からです 65535 。署名すると、範囲は -32768 になります 32767へ 。

MEDIUMINT 3バイトを使用する中型の整数です ストレージの。最大9桁 。署名されていない場合、範囲は 0です。 16777215へ 。署名済み、最小値は -8388608 、最大値は 8388607 ですが、 。

INT 4バイトを使用する整数です ストレージの。最大11桁を使用します 。署名されていない場合、範囲は 0です。 から4294967295 。署名されている場合、範囲は -2147483648です。 2147483647

BIGINT 8バイトを使用する大きな整数です ストレージの。最大20桁です 。符号付きの最小値は0 、最大符号付き値は 18446744073709551615 ですが、 。署名されている場合、範囲は -9223372036854775808 9223372036854775807

浮動小数点型

浮動小数点数値データ型は、近似値を表すために使用される有理数です。高精度の計算には浮動小数点データ型を使用します。

浮動小数点の種類は次のとおりです。

  • FLOAT 4バイトを使用する単精度値を表します 最大6または7を含める 有効数字。
  • DOUBLE 8バイトを使用する倍精度値を表します 最大15または16 有効数字。

FLOATを定義するための基本的な構文 / DOUBLE データ型はFLOAT(M、D) / DOUBLE(M、D)

M 合計桁数を表し、 D は小数点以下の桁数です。たとえば、値 5143,234 7,3として定義されます 合計7桁で、小数点以下3桁です。

FLOAT(P)を使用することもできます 浮動小数点データ型を指定する構文。ここで、 P 精度を指定します。 Pの場合 値は0から23 、単精度列です。精度が24〜53の場合 、倍精度の列です。

バイト 範囲(署名なし) 範囲(署名済み)
FLOAT 4 1.175494351E-38から3.402823466E+38へ -3.402823466E+38から-1.175494351E-38
DOUBLE 8 0および2.2250738585072014E-308から1.7976931348623157E+308まで -1.7976931348623 157E+308から-2.2250738585072014E-308

固定小数点タイプ

正確な数値を格納するには、固定小数点データ型– DECIMAL を使用します 。正確な数値を表すため、このデータ型は主に正確な値に依存するデータ(金銭データなど)に使用されます。

基本的な構文はDECIMAL(P、D)です。 、ここで P 精度の略です (有効桁数)および D スケールの略です (小数点以下の桁数)

精度の最大桁数は65です。 、スケールの最大値は 30です。 。

精度とスケールを定義しない場合、列はデフォルト値を使用します。デフォルトでは、P、Dの値は 10,0 です 。

ビット値型

BIT データ型はバイナリ値を格納します。このような値を格納する列を作成するときは、1から64の範囲のビット値の数を定義します。 。

このMySQLデータ型の構文はBIT(N)です。 Nを指定しない場合 、デフォルト値は 1

日付と時刻のデータ型

日付と時刻は、一般的に使用されるデータ型です。データ入力の時刻、生年月日、または現在のタイムスタンプのいずれを保存する場合でも、次のいずれかの列を使用します。

日付と時刻のデータ型は次のとおりです。

  • DATETIME TIMESTAMP
  • 日付
  • 時間
  • YEAR

DATETIME、TIMESTAMP

日付と時刻の値を保存するには、 DATETIMEのいずれかを使用します またはTIMESTAMP 。どちらのデータ型も、情報を YYYY-MM-DD HH:MM:SSに格納します フォーマット。 yが含まれます 耳、 m 以降、 d ああ、 h 私たちのm inutes、および s エコンド。

2つの主な違いは、その範囲です。

  • DATETIME 値の範囲は1000-01-0100:00:00 to 9999-12-31 23:59:59
  • TIMESTAMP 値の範囲は1970-01-0100:00:01 to 2038-01-19 03:14:07

両方のオプションに小数秒を含めることができます。これを行うには、構文 DATETIME(p)に従って精度を指定します。 / TIMESTAMP(p)

たとえば、タイムスタンプを2021年3月1日の午後10時53分に保存するには 、3秒未満で、データ型 TIMESTAMP(3)を指定します 。エントリは次のように保存されます: 2021-03-01 22:53:35.346

日付

日付 YYYY-MM-DDの形式で日付値を格納するために使用されます (年、月、日付)。

データ型は、1000-01-01から9999-12-31の範囲をサポートします 。

時間

時間 時間の値をHH-MM-SSとして保存するために使用されます (時間、分、秒)または HHH-MM-SS 。経過時間または時差を示すエントリは、より長い形式で保存および取得されます(何時間もより多くの桁が必要な場合)。

データ型は、1000-01-01から9999-12-31の範囲をサポートします 。

YEAR 年の値をYYYYの形式で保存します 。 1901-2155の範囲内の値をサポートします 。

MySQL 5.7.5より古いバージョンでは、 YEARの2桁と4桁の両方のエントリがサポートされていました。 、5.7.5リリース以降、2桁のサポートはありません。

文字列データ型

データの文字列を格納するときは、文字列データ型の1つを使用します。文字、数字、画像、またはファイルを含めることができます。

したがって、いくつかの異なる文字列データ型があります。

  • CHAR およびVARCHAR
  • BINARY およびVARBINARY
  • BLOB およびTEXT
  • ENUM
  • SET

CHARおよびVARCHAR

CHAR およびVARCHAR 非バイナリ文字列を格納するために使用されるデータ型です。 2つの主な違いは、データの保存方法です。

CHAR 固定長の文字列を格納します(最大 255 文字)。 CHARを作成する場合 列では、 CHAR(N)を使用して長さを指定します 構文。 N 取りたい文字数です。長さを定義しない場合は、デフォルト値 1が使用されます 。

これらの値は、指定された長さで右に埋め込まれて格納されます。したがって、 CHAR(5)を設定した場合 列に3文字のエントリを格納しますが、それでも5文字を使用します。

VARCHAR 可変長文字列を格納します。列を作成するときに長さを定義する必要がありますが、値は右に埋め込まれません。上限はありますが、長さは固定されておらず、データによって異なります。

以前は、エントリの範囲は0から255でした 。 MySQL 5.0.3のリリース後、 VARCHAR 範囲は最大65535文字です 。

BINARYおよびVARBINARY

BINARY およびVARBINARY データ型は前述のCHARに似ています およびVARCHAR 。これら2つのグループの主な違いは、 BINARY およびVARBINARY バイナリ文字列に使用されます。

BINARY 最大255バイトの固定長のバイナリ文字列に使用されます 。このような列を定義するための主な構文は、 BINARY(N)です。 、ここで N はバイト数です。

VARBINARY 可変長のバイナリ文字列を格納します。 MySQLバージョン5.0.3以降は、最大65535バイトを保存します 。

BLOBとテキスト

両方のBLOB およびTEXT 大量のデータを保存するために使用されます。

BLOB Bを処理します inary L arge O bjects(つまり、画像、音声、PDFファイルなどのバイナリデータの大規模なセット)。

データに必要なサイズに応じて、使用するBLOBデータ型は4種類あります。

  • TINYBLOB (0 – 255; 255バイト)
  • BLOB (0 – 65,535; 16 KB)
  • MEDIUMBLOB (0 – 16,777,215; 16 MB)
  • LONGBLOB (0 – 4,294,967,295; 4 GB)

TEXT データ型は、より長いテキスト文字列を格納するためのものです。必要なデータの量に応じて、次のようになります。

  • TINYTEXT (0 – 255; 255バイト)
  • TEXT (0 – 65,535; 16 KB)
  • MEDIUMTEXT (0 – 16,777,215; 16 MB)
  • LONGTEXT (0 – 4,294,967,295; 4 GB)

ENUM

ENUM データ型は、事前定義された可能な値の1つを列に格納するために使用されます。列には最大65535を含めることができます 明確な値。

ENUMを作成する場合 MySQLのテーブル列で、許可されるすべての値のリストを指定します。

設定

ENUMのように SET データ型には、列に格納されている可能な値の事前定義されたリストがあります。

2つの主な違いは、 SET エントリに複数の値を含めることができます。

たとえば、列が SET('Red'、'Orange'、'Yellow'、'Green')として定義されている場合 リストには4つの可能な値があり、1つのエントリの値は「赤」である可能性があります。 、別の値は「赤」、「黄」の値を持つ可能性があります 。

許可される値の最大数は64です。 。

空間データ型

空間データを保存するときは、MySQLがサポートするさまざまな空間データタイプの1つを使用できます。それらは、幾何学的形状と物理的位置に関する情報を表すために使用されます。

それらを2つのグループに分けることができます:

  • 単一のジオメトリ値
  • 値のコレクション

単一のジオメトリ値

単一のジオメトリデータタイプには、 GEOMETRYが含まれます ポイント LINESTRING 、および POLYGON

  • GEOMETRY あらゆるタイプのジオメトリ/空間値を格納します。
  • ポイント 単一のポイント値に使用されます。
  • LINESTRING 線を形成する複数の点のコレクションを格納します。
  • POLYGON ポリゴンサーフェスを形成する複数のポイントのコレクションを格納するために使用されるデータ型です。

値の収集

値のコレクションのデータ型には、 GEOMETRYCOLLECTIONが含まれます マルチポイント MULTILINE 、および MULTIPOLYGON

  • GEOMETRYCOLLECTION ジオメトリ/空間値のコレクションを格納します。
  • マルチポイント 複数のポイント値のコレクションを格納するために使用されます。
  • MULTILINE 複数の行のコレクションを格納します。
  • MULTIPOLYGON 複数のポリゴンのコレクションに使用されます。

JSONデータ型

バージョン5.7.8以降、MySQLにはネイティブの JSONのサポートが含まれていました データ型。ユーザーはデータベースを介してJSONドキュメントを保存および管理できます。

MySQLは、JSONドキュメントが有効であることを確認し、それらをJSON列に保存します。


Cent OS
  1. Mysqlデータディレクトリを移動する方法は?

  2. MySQL バックアップ 1.1

  3. mysql コンテナーにデータをコミットする

  1. MySQL –InnoDBのテーブルごとのデータへの変換

  2. MySQLデータベースタイプをbashで表示する

  3. mysql インポートの速度を向上させる

  1. Cassandraデータ型:組み込み、コレクション、およびユーザー定義

  2. MySQL データをファイルに出力できません

  3. mysql で LOAD DATA LOCAL INFILE を有効にする