よく使われる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 モード (推奨)

推薦する

count(1)、count(*)、count(列名)の実行の違いの詳細な説明

実施効果: 1. count(1) と count(*)テーブル内のデータ量が多い場合、テーブルを分...

Linux で起動時にプログラムを自動的に実行させる最も簡単な方法

たくさん集めましたが、すべて失敗に終わりました。最終的に、この方法は優れており、使用に影響を与えない...

Reactエラー境界コンポーネント処理

React 16の内容です。最新技術ではありませんが、ドキュメントで調べるまであまり話題に上がらなか...

MySQL 8.0.26 のインストールと簡易チュートリアル (インターネット上で最も完全)

目次1. MySQLをダウンロードする1.1 ダウンロード1.2 インストール1. MySQLをダウ...

自動開始および停止コマンドを適用するには、Docker サービスを再起動します (推奨)

Docker サービス アプリケーションを再起動するコマンドを見てみましょう。具体的な内容は次のと...

MySQL 8.0 redo ログの詳細な分析

目次序文REDOログの生成REDOログ送信REDOログの保存と通知ユーザースレッドに通知要約する序文...

Zabbix 5.0 ディスク自動検出と読み取り/書き込み監視の問題を分析する

ディスクを自動的に検出する構成キーの値注: このキー値は Linux プラットフォームでのみサポート...

vue シンプルメモ帳開発の詳しい説明

この記事では、参考までにEasy Notepadを実装するためのVueの具体的なコードを紹介します。...

MySQL 5.7 における部分テーブルのデュアルマスター同期の実装プロセスの詳細な説明

序文最近、私はある要件に遭遇しました。会社の業務上、2 つのデータベース間の一部のテーブルは、リアル...

Jenkins を通じて None のイメージを定期的にクリーンアップする方法

序文継続的なコード配信のプロセスで、Jenkins を利用して Docker イメージを作成すると、...

CentOS 7 での Docker プロキシの設定 (Linux での Systemd サービスの環境変数設定)

Docker デーモンは、 HTTP_PROXY 、 HTTPS_PROXY 、およびNO_PRO...

scss で mixin が動作しない問題の解決方法 (ブラウザでコンパイルできない)

ミックスインメソッド: ブラウザはコンパイルできません: 以前のバージョンのsassでは上記の記述方...

HTML 画像 img にハイパーリンクを追加した後の醜い青い境界線の問題を解決する

HTML画像にハイパーリンクを追加すると醜い青い枠線が表示される次のように:解決: CSS スタイル...

CSS継承方法

次の背景画像を持つ div があるとします。 次の反射効果を作成します。 方法はたくさんありますが、...