よく使われる3つのMySQLデータ型

よく使われる3つのMySQLデータ型

MySQL のデータ フィールドのタイプを定義することは、データベースを最適化するために非常に重要です。

MySQL はさまざまな型をサポートしており、大まかに数値型、日付/時刻型、文字列 (文字) 型の 3 つのカテゴリに分類できます。

数値型

MySQL はすべての標準 SQL 数値データ型をサポートしています。

これらの型には、厳密な数値データ型 (INTEGER、SMALLINT、DECIMAL、NUMERIC) と近似数値データ型 (FLOAT、REAL、DOUBLE PRECISION) が含まれます。

キーワード INT は INTEGER の同義語であり、キーワード DEC は DECIMAL の同義語です。

BIT データ型はビット フィールド値を格納し、MyISAM、MEMORY、InnoDB、BDB テーブルをサポートします。

SQL 標準の拡張として、MySQL は整数型 TINYINT、MEDIUMINT、および BIGINT もサポートします。次の表は、各整数型に必要なストレージと範囲を示しています。

タイプサイズ範囲(符号付き)範囲(符号なし)使用
小さな1バイト(-128, 127) (0, 255)小さい整数値
スモールイント2バイト(-32 768, 32 767) (0, 65 535)大きな整数値
ミディアムミント3バイト(-8 388 608, 8 388 607) (0, 16 777 215)大きな整数値
INT または INTEGER 4バイト(-2 147 483 648, 2 147 483 647) (0, 4 294 967 295)大きな整数値
ビッグイント8バイト(-9,223,372,036,854,775,808, 9 223 372 036 854 775 807) (0, 18 446 744 073 709 551 615)非常に大きな整数値
フロート4バイト(-3.402 823 466 E+38, -1.175 494 351 E-38)、0、(1.175 494 351 E-38、3.402 823 466 351 E+38) 0、(1.175 494 351 E-38、3.402 823 466 E+38)単精度浮動小数点値
ダブル8バイト(-1.797 693 134 862 315 7 E+308, -2.225 073 858 507 201 4 E-308), 0, (2.225 073 858 507 201 4 E-308, 1.797 693 134 862 315 7 E+308) 0、(2.225 073 858 507 201 4 E-308、1.797 693 134 862 315 7 E+308)倍精度浮動小数点値
小数点DECIMAL(M,D)の場合、M>DであればM+2、そうでなければD+2 MとDの値に依存するMとDの値に依存する小数値

日付と時刻の種類

時間値を表す日付と時刻の型は、DATETIME、DATE、TIMESTAMP、TIME、YEAR です。

各時間タイプには有効な値の範囲と「ゼロ」値があり、これは MySQL が表現できない不正な値を指定するときに使用されます。

TIMESTAMP 型には特別な自動更新機能があり、これについては後ほど説明します。

タイプサイズ(バイト)範囲形式使用
日付3 1000-01-01/9999-12-31年-月-日日付値
時間3 '-838:59:59'/'838:59:59'時:分:秒時間価値または期間
1 1901/2155ええ年の値
日時8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD 時間:分:秒日付と時刻の値が混在している
タイムスタンプ4

1970-01-01 00:00:00/2038

終了時間は2147483647秒、北京時間2038-1-19 11:14:07、グリニッジ時間2038年1月19日03:14:07です。

年 月 日 時 分日付と時刻の混合値、タイムスタンプ

文字列型

文字列型には、CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、SET などがあります。このセクションでは、これらの型がどのように機能するか、およびクエリでどのように使用するかについて説明します。

タイプサイズ使用
文字0〜255バイト固定長文字列
バルチャー0〜65535バイト可変長文字列
タイニーブロブ0〜255バイト255文字以内のバイナリ文字列
小さなテキスト0〜255バイト短いテキスト文字列
ブロブ0-65 535バイトバイナリ形式の長いテキストデータ
文章0-65 535バイト長いテキストデータ
ミディアムブロブ0-16 777 215 バイトバイナリ形式の中程度の長さのテキストデータ
中テキスト0-16 777 215 バイト中程度の長さのテキストデータ
ロングロブ0-4 294 967 295 バイトバイナリ形式の非常に大きなテキストデータ
長文0-4 294 967 295 バイト大きなテキストデータ

知らせ:

char(n) および varchar(n) の括弧内の n は、バイト数ではなく文字数を表します。たとえば、CHAR(30) は 30 文字を格納できます。

CHAR 型と VARCHAR 型は似ていますが、保存方法と取得方法が異なります。また、最大長や末尾のスペースが保持されるかどうかという点でも異なります。保存または取得中に大文字と小文字の変換は実行されません。

BINARY と VARBINARY は、非バイナリ文字列ではなくバイナリ文字列を含む点を除いて、CHAR と VARCHAR に似ています。つまり、文字列ではなくバイト文字列が含まれます。つまり、文字セットはなく、並べ替えや比較は列値バイトの数値に基づいて行われます。

BLOB は、可変量のデータを保持できるバイナリ ラージ オブジェクトです。 BLOB タイプには、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB の 4 つがあります。それらの違いはストレージ容量です。

TEXT タイプには、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT の 4 つがあります。対応する 4 つの BLOB タイプは最大ストレージ長が異なり、実際の状況に応じて選択できます。

上記は、よく使用される 3 つの MySQL データ型の詳細です。MySQL データ型の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL は information_schema オブジェクトの付与をバイパスし、ERROR 1044 (4200) エラーを報告します
  • MySQLデータベース設計:Pythonを使ったスキーマ操作方法の詳しい解説
  • MySQL 5.7 のパフォーマンスと sys スキーマの監視パラメータの説明 (推奨)
  • エラー mysql テーブル ''performance_schema...解決方法
  • MySQLデータベース分析ツールSchemaSpyの使い方
  • mysql データベース内の information_schema と mysql を削除できますか?
  • MySQLのinformation_schemaデータベースの解析
  • MySQL データ型 DECIMAL の詳細な分析
  • MYSQLについては、データ型と操作テーブルを知る必要があります
  • MySQL のデータ型とフィールド属性の原理と使用法の詳細な説明
  • mysql8.0.19 の基本データ型の詳細な説明
  • MySQL のデータ型とスキーマの最適化の詳細な説明

<<:  vue keepAlive キャッシュクリア問題事例の詳細な説明

>>:  コネクタコンポーネントから Tomcat のスレッドモデルを見る - BIO モード (推奨)

推薦する

Web ページ制作におけるテーブル属性 CellPad、CellSpace、Border の説明と使用

cellspacing は表内のセル間の距離です。セルパディングは、表のセル内の空白スペースです。一...

HTML メタタグの使用の概要 (推奨)

メタタグ機能METAタグは、HTMLタグのHEAD領域にある重要なタグです。文書の文字セット、使用言...

JavaScript バブルソートの例

目次1. バブルソートとは何か2. 例を挙げるラウンド1:第2ラウンド:第3ラウンド:第4ラウンド:...

Docker を使用した Redis マスタースレーブレプリケーションの実践の詳細説明

目次1. 背景2. 操作手順3. Dockerをインストールする4. 主なサービス構成5. サービス...

MySQL 面接でよく聞かれる質問への回答

序文:さまざまな技術職の面接では、MySQL 関連の質問がよくされるようです。開発職の面接でも運用職...

MySQL公式パフォーマンステストツールmysqlslapの使い方の紹介

目次導入説明書実際の経験まとめ導入MySQL は最も人気のあるオープンソース データベースとして、さ...

Vue が価格カレンダー効果を実現

この記事では、価格カレンダー効果を実現するためのVueの具体的なコードを例として紹介します。具体的な...

URLに基​​づいてリクエストを転送するnginxの実装の実践経験

序文これは fastdfs を使用してイントラネット外部に展開された分散ファイルシステムであるためで...

MySQL トリガーの原理と使用例の分析

この記事では、例を使用して、MySQL トリガーの原理と使用方法を説明します。ご参考までに、詳細は以...

Reactコンポーネントのライフサイクルの詳細な説明

目次1.ライフサイクルとは何か2. 読み込みプロセス1.コンストラクタ2. レンダリング3. コンポ...

CSS と HTML とフロントエンド テクノロジーのレイヤー図

フロントエンドテクノロジー層 (写真は少し極端ですが、参考までに) Javascript と DOM...

Vue のトランジション効果とアニメーショントランジションの使用例の詳細な説明

目次遷移フック関数カスタム遷移クラス名遷移グループの使用まとめまずは例を見てみましょうコードは次のと...

MySQL プロセス制御 IF()、IFNULL()、NULLIF()、ISNULL() 関数

MySQL では、IF()、IFNULL()、NULLIF()、および ISNULL() 関数を使用...

Iframe 適応高さコードに関する 3 つの議論

B/S システム インターフェースを構築する場合、メイン ページ index.html 内に他のペー...

MySQL 8.0.18はデータベースにユーザーを追加し、権限を付与します

1. データベースにログインするには、rootユーザーを使用することをお勧めします。 mysql -...