3. MySQL データ型
MySQLのデータ型
MySQL のデータフィールドのタイプを定義することは、データベースを最適化するために非常に重要です。
MySQLは様々な型をサポートしており、大きく分けて、数値型、日付/時刻型、文字列(キャラクタ)型の3つがあります。
数値の種類
(1) 整数型
- 整数型の数値は、デフォルトで正の整数と負の整数の両方を表すことができます(この場合、符号付き数値と呼びます)。0と正の整数だけを表現したい場合は、unsignedキーワード "unsigned"を使用して整数型を変更することができます。
- 各クラスの記憶容量と値の範囲。
(2) 10進数型
- decimal(length, precision) は,精度が決定される(小数点以下の桁数が決定される)小数の種類を表すために用いられる。lengthは小数の最大桁数を決定し,precisionは精度(小数点以下の桁数)を設定するために用いられる。
- 例:10進数(5,2)は、10進数の値域:999.99~999.99 10進数(5,0)は、-9999~999999 整数という意味です。
- 各カテゴリーの記憶容量と値の範囲。
浮動小数点数 DOUBLE 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 YYYY-MM-DD 日付の値 時間 3 '-838:59:59'/'838:59:59' HH:MM:SS 時間値または持続時間 年 1 1901/2155 YYYY 年 値 データタイム 8 1000-01-01 00:00:00/9999-12-31 23:59:59 yyyy-mm-dd hh:mm:ss 日付と時刻の混在した値 タイムスタンプ 4 1970-01-01 00:00:00/2038
終了時刻は、最初の 2147483647 秒、日本標準時 2038-1-19 11:14:07 日本時間2038年1月19日午前03時14分07秒 yyyymmdd hhmmss 日付と時刻の混在した値、タイムスタンプ
文字列の種類
文字列型とは、CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、SETを指します。このセクションでは、これらの型の動作とクエリでの使用方法について説明します。
<テーブル タイプ サイズ 使用 CHAR 0〜255バイト 固定長文字列 VARCHAR 0-65535バイト 可変長文字列 TINYBLOB 0〜255バイト 最大255文字までのバイナリ文字列 TINYTEXT 0〜255バイト 短いテキスト文字列 BLOB 0-65 535バイト バイナリ形式の長いテキストデータ テキスト 0-65 535バイト 長いテキストデータ メディアムブロック 0~16 777 215 バイト バイナリ形式の中長テキストデータ MEDIUMTEXT 0~16 777 215 バイト 中長テキストデータ LONGBLOB 0-4 294 967 295 バイト バイナリ形式の極めて大きなテキストデータ LONGTEXT 0-4 294 967 295 バイト 非常に大きなテキストデータ備考 : char(n) や varchar(n) の括弧内の n はバイト数ではなく文字数を表し、例えば CHAR(30) は 30 文字を格納します。
CHAR型とVARCHAR型は似ていますが、保存と取り出しの方法が異なります。また、最大長や末尾の空白を保存するかどうかの点でも異なります。保存や取り出しの際に大文字と小文字の変換は行われません。
BINARYとVARBINARYはCHARとVARCHARに似ていますが、非バイナリ文字列の代わりにバイナリ文字列を含むという点が異なります。つまり、文字列の代わりにバイト文字列を格納します。つまり、文字セットを持たず、列の値であるバイトに基づいて数値のソートと比較を行います。
BLOBは、可変量のデータを保持できる大きなバイナリオブジェクトである。BLOBには4つのタイプがある。TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOBの4種類があり、それぞれ保持できるストレージの範囲が異なる。
TEXTは4種類あります。TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXTの4つのBLOBタイプに対応し、状況に応じて保存できる最大長が異なる。
関連
-
[解決済み】MySQL: グループ関数の無効な使用
-
[解決済み】SQL文が動作しない-「オペランド型の衝突:dateはintと互換性がない」。
-
[解決済み】Fatal error: mysqldをrootで実行する方法は、マニュアルの「セキュリティ」セクションをお読みください。
-
[解決済み】MySQLのDESCRIBE [table]に相当するSQLiteはあるか?]
-
MySQLとのPython統合でAttributeErrorが発生する: モジュール 'socket' には 'AF_UNIX' という属性がない
-
[解決済み] ONLY_FULL_GROUP_BYの無効化
-
[解決済み] MySQLが重複したレコードを削除し、最新のレコードを保持する
-
[解決済み] MySQLクエリ GROUP BY 日/月/年
-
[解決済み] MySQLの更新datetimeフィールド
-
mysql 再インストールエラー InnoDB: ロックできません . /ibdata1, error: 11
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】mysqlが内部または外部のコマンド、操作可能なプログラムまたはバッチとして認識されない。
-
[解決済み】mysqladmin: 'localhost'でのサーバーへの接続に失敗しました。
-
[解決済み] テーブルのストレージエンジンは修復をサポートしていません。InnoDB または MyISAM?
-
[解決済み] エラーコード1111。グループ関数の無効な使用
-
[解決済み] エラー 2005 (hy000)。Google Cloud SQL クライアントの MySQL サーバーホスト '[35.232.51.216]' (0) が不明です。
-
[解決済み] エラー1044 (42000)。すべての権限を持つ'root'のためのアクセスが拒否されました。
-
[解決済み] どのようにクエリは、各行のMySQLの2つのセルを乗算することができますか?
-
mysql: 3、mysqlはパスワードを設定したエラー:mysqladmin:'localhost'でサーバーへの接続は、解決に失敗しました。
-
[Err] 1273 - 不明な照合順序: 'utf8mb4_0900_ai_ci' これは、データベースにテーブルをインポートするときのエラーです、すべてのエラー
-
エラー 2005 (hy000)。不明なMySQLサーバーのホスト