MySQL データ型の完全分析

MySQL データ型の完全分析

データ型: 列に格納できるデータとそのデータが実際にどのように格納されるかを定義する基本ルール。

データ型は次の目的で使用されます。

1. 列に保存できるデータを制限できます。たとえば、数値データ型の列は数値のみを受け入れることができます。

2. 内部でより効率的にデータを保存できます。たとえば、数値や日付と時刻の値をテキスト文字列よりも簡潔な形式で保存します。

3. 並べ替え順序を変更できるようにします。たとえば、すべてのデータを文字列として扱うと、1 は 10 より前、10 は 2 より前になります (文字列は辞書順にソートされ、左から 1 文字ずつ比較されます)。数値データ型として、値を正しくソートできます。

1. 文字列データ型

最も一般的に使用されるデータ型で、名前、住所、電話番号などの文字列を格納します。

文字列には、固定長文字列と可変長文字列の 2 つの基本的な種類があります。

固定長文字列: テーブルの作成時に長さが指定される固定長の文字列を受け入れます。固定長列では、指定された文字数を超える文字は許可されず、指定された量のストレージ スペースが割り当てられます。例: CHAR。

可変長文字列: 可変長のテキストを格納します。可変長データ型には、最大長が固定されているものもあれば、完全に可変長であるものもあります。タイプに関係なく、TEXT など、指定されたデータのみが保存されます (余分なデータは保存されません)。

PS: MySQL は、可変長列よりも固定長列をはるかに高速に処理します。また、MySQL では可変長列 (または列の可変部分) のインデックス作成は許可されません。

データ型の説明:

CHAR: 1 ~ 255 文字の固定長文字列。長さは作成時に指定する必要があります。指定しない場合、MySQL は CHAR(1) であると想定します。

ENUM: 最大 64K の文字列の定義済みセットから文字列を受け入れます。

LONGTEXT: TEXT と同じですが、最大長は 4GB です。

MEDIUMTEXT: TEXT と同じですが、最大長は 16K です。

SET: 最大 64 個の文字列の定義済みセットから 0 個以上の文字列を受け入れます。

TEXT: 最大長 64 KB の可変長テキスト。

TINYTEXT: TEXT と同じですが、最大長は 255 バイトです。

VARCHAR: 可変長、255 バイト以下。データの作成時に VARCHAR(n) を指定すると、0 ~ n 文字 (n ≤ 255) の可変長文字列を格納できます。

追伸:

1. 引用符: どの形式の文字列データ型を使用する場合でも、文字列値は引用符 (通常は一重引用符) で囲む必要があります。

2. 従うべき基本的なルール: 値が計算 (合計、平均など) に使用される場合、その値は数値データ型の列に格納されます。値が文字列として使用される場合、文字列データ型の列に格納されます。たとえば、郵便番号 01234 を数値フィールドに保存すると、1 桁が欠落した値 1234 が保存されます。

2. 数値データ型

数値を格納します。 MySQL は複数の数値データ型をサポートしており、それぞれが異なる値の範囲の値を格納します。

サポートされる値の範囲が広いほど、必要なストレージ容量も大きくなります。さらに、一部の数値データ型では小数点 (および小数) の使用がサポートされていますが、他のデータ型では整数のみがサポートされています。表 D-2 に、よく使用される MySQL 数値データ型を示します。

追伸:

1. すべての数値データ型 (BIT と BOOLEAN を除く) は、符号付きまたは符号なしにすることができます。符号付き数値列には正または負の値を格納できますが、符号なし数値列には正の数値のみを格納できます。

2. デフォルトは符号付きです。負の値を保存する必要がない場合は、UNSIGNED を使用すると、2 倍のサイズの値を保存できます。

3. 文字列とは異なり、値は引用符で囲まないでください。

4. MySQL には通貨を保存するための特別なデータ型はありません。通常は DECIMAL(8, 2) が使用されます。

データ型の説明:

BIT: ビット フィールド、1 ~ 64 ビット。 MySQL 5 より前では、BIT は機能的に TINYINT と同等でした。

BIGINT: 整数値。-9223372036854775808 から 9223372036854775807 までをサポートします。 UNSIGNED の場合は 0 から 18446744073709551615 までの数値になります。

BOOLEAN (または BOOL): 0 または 1 のブール フラグ。主にオン/オフ フラグとして使用されます。

DECIMAL (または DEC): 可変精度の浮動小数点値。

DOUBLE: 倍精度浮動小数点値

FLOAT: 単精度浮動小数点値

INT (または INTEGER): 整数値、-2147483648 から 2147483647 をサポート、UNSIGNED は上記と同じです。

MEDIUMINT: 整数値、-8388608 から 8388607 をサポート、UNSIGNED は上記と同じです。

REAL: 4 バイトの浮動小数点値。

SMALLINT: 整数値、-32768 から 32767 をサポート、UNSIGNED は上記と同じです。

TINYINT: 整数値、-128 から 127 をサポート、UNSIGNED は上記と同じです。

3. 日付と時刻のデータ型

データ型の説明:

DATE: 1000-01-01 から 9999-12-31 までの日付を YYYY-MM-DD 形式で示します。

DATETIME: DATE と TIME の組み合わせ。

TIMESTAMP: 機能は DATETIME と同じですが、範囲が狭くなります。

TIME: 形式は HH:MM:SS です。

年: 2 桁、範囲 70 から 69 (1970 から 2069)、4 桁、範囲 1901 から 2155

4. バイナリデータ型

画像、マルチメディア、ワードプロセッサ文書など、あらゆるデータ(バイナリ情報も含む)を保存できます。

データ型の説明:

BLOB: BLOB の最大長は 64 KB です。

MEDIUMBLOB: 最大 BLOB 長は 16 MB です。

LONGBLOB: BLOB の最大長は 4GB です。

TINYBLOB: BLOB の最大長は 255 バイトです。

上記はMySQLデータ型の完全分析の詳細な内容です。MySQLデータ型の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL のデータ型とフィールド属性の原理と使用法の詳細な説明
  • MySQL ノート: データ型の詳細な説明
  • MySQL データ型の説明
  • MySql データ型チュートリアル例の詳細な説明

<<:  XHTML 入門チュートリアル: XHTML タグ

>>:  VUE ユニアプリテンプレート構文についての簡単な説明

推薦する

Linux CentOS 7.4 で mysql5.7.20 のパスワードを変更する方法

MySQL がバージョン 5.7 にアップグレードされた後、セキュリティが大幅に向上しました。しかし...

バックアップ データをインポートするときに innodb_index_stats がエラーを報告する場合の主キー競合の解決方法

障害の説明percona5.6、mysqldump フルバックアップ、バックアップデータのインポート...

Nginxはドメイン名のアクセス方法を定義しています

最近Nginxを構築しているのですが、ドメイン名でアクセスできません。 nginx 構成ファイル n...

Raspberry Pi 4b ubuntu19 サーバーへの docker-ce のインストール手順

Raspberry Pi モデルは 4b、1G RAM です。システムはubuntu19.10サーバ...

配列をフィルタリングするJavaScript

この記事では、配列フィルタリングを実装するためのJavaScriptの具体的なコードを参考までに紹介...

JS 非同期スタック トレース: await が Promise よりも優れている理由

概要async/await と Promise の基本的な違いは、await fn() は現在の関数...

JSキャンバスは描画ボードと署名ボードの機能を実現します

この記事では、お絵かきボード/サインボード機能を実現するためのJSキャンバスの具体的なコードを参考ま...

Vueダイナミックフォームの詳細な応用

概要バックグラウンド管理システムには多くのフォーム要件があります。データをjson 形式で書き込み、...

CSS で画像アダプティブ コンテナを実装するいくつかの方法 (要約)

多くの場合、画像をコンテナのサイズに合わせて調整する必要があります。 1. imgタグ方式幅と高さを...

Vueタイマーの詳細な使い方

この記事では、参考までにタイマーを実装するためのVueの具体的なコードを紹介します。具体的な内容は次...

Nginxは特定のページへのIPアクセスを制限します

1.すべてのIPアドレスが3つのページa1.htm、a2.htm、a3.htmにアクセスするのを禁止...

HTMLページの読み込み速度を上げる方法

(1)HTTPリクエストを減らす。 (リソース ファイルをマージし、イメージ スプライトを使用します...

Win7 で IIS7 Web および FTP サービスを完全にアンインストールする方法

昨日、パソコンにPHP開発環境をセットアップした後、Apacheサーバーを再起動するとエラーが続きま...

MySQLでMyISAMストレージエンジンをInnodbに変更した操作記録のまとめ

一般的に、MySQL はデフォルトでさまざまなストレージ エンジンを提供しており、次のように表示され...

Mailtoを使えばHTMLでメールを送るのは簡単

最近、顧客のフッターメールボックスにクリックして送信するメール機能を追加しました。Baidu で検索...