MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
MySQL - データ型のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
MySQL - データ型
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == MySQLのデータ型は、データの性質と用途に応じて適切に選択する必要がある。<br> 効率的なデータベース設計のために、データの特性を理解して、最適なデータ型を選択することが重要である。<Br> <br> 整数値を扱う場合、TINYINTからBIGINTまでの範囲から、データの大きさに応じて選択する。<br> 例えば、年齢を格納する場合はTINYINT型で十分であるが、ユーザIDなどの連番には一般的にINT型やBIGINT型を使用する。<br> <br> 小数を扱う場合は、精度の要件に着目する。<br> 金額計算等の高い精度が求められる場合はDECIMAL型を使用する。<br> 一方、科学的な計算や精度よりも処理速度が重要な場合は、FLOAT / DOUBLE型が適している。<Br> <br> 文字列データは、固定長あるいは可変長という特性で大きく分かれる。<br> パスワードのハッシュ値のように長さが決まっているデータにはCHAR型が適しているが、ユーザ名や住所などの可変長データにはVARCHAR型が適している。<br> <br> また、大量のテキストデータを扱う場合、TEXT型のファミリー (TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT) から適切なものを選択する。<br> 例えば、ブログの投稿内容等には一般的にTEXT型が使用される。<br> <br> 日付や時刻のデータは、用途に応じて適切な型を選択する。<br> 単純な日付にはDATE型、時刻のみの場合はTIME型、両方必要な場合はDATETIME型を使用する。<br> また、タイムゾーンを考慮する必要がある場合は、TIMESTAMP型を使用する。<br> <br> 特殊なデータの取り扱いにおいて、限られた選択肢から値を選ぶ場合、ENUM型やSET型が有効である。<br> 例えば、商品のサイズ (S、M、L) 等はENUM型で効率的に管理することができる。<br> <br> 最近のWebアプリケーション開発では、JSON型の活用が増えている。<br> 柔軟なデータ構造を持つ情報を格納する場合に有効である。<br> <br> 画像やその他ファイル等のバイナリデータは、BLOB型のファミリーを使用して格納する。<br> ただし、大きなファイルはファイルシステムに保存して、データベースにはパスを格納する方法も一般的である。<br> <br> 空間データの取り扱いにおいて、地理的な情報を扱う必要がある場合、GEOMETRY型とその関連型を使用する。<br> これは、地図アプリケーションや位置情報サービスの開発で活用されている。<br> <br> パフォーマンスとストレージの最適化を考慮する場合、データ型の選択は、データベースのパフォーマンスとストレージ効率に大きく影響する。<br> 必要以上に大きなデータ型を選択すると、ストレージの無駄遣いになるだけでなく、検索やソートの性能にも影響を与える可能性がある。<br> <br> 文字列型は、適切な文字セットの選択も重要となる。<br> UTF-8であればutf8mb4を使用するのが一般的である。<br> これにより、絵文字を含むあらゆる文字を正しく扱うことができる。<br> <br> したがって、MySQLのデータ型は、データの特性、用途、パフォーマンスの要件に応じて適切に選択することが重要となる。<br> <br> <u>※注意</u><br> <u>各データ型を選択する場合において、以下に示す事柄を考慮すること。</u><br> * ストレージ効率 *: 必要最小限のサイズを選択する。 * パフォーマンス *: 検索や演算の頻度を考慮する。 <br><br> == 数値型 == データの正確性において、数値型では、DECIMAL型とFLOAT / DOUBLE型の選択が重要となる。<br> <br> ==== 整数型 ==== * TINYINT *: -128〜127 (1バイト) * UNSIGNED TINYINT *: 0〜255 * SMALLINT *: -32768〜32767 (2バイト) * UNSIGNED SMALLINT *: 0〜65535 * MEDIUMINT *: -8388608〜8388607 (3バイト) * UNSIGNED MEDIUMINT *: 0〜16777215 * INT / INTEGER *: -2147483648〜2147483647 (4バイト) * UNSIGNED INT / UNSIGNED INTEGER *: 0〜4294967295 * BIGINT *: -9223372036854775808〜9223372036854775807 (8バイト) * UNSIGNED BIGINT *: 0〜18446744073709551615 <br> ==== 小数型 ==== * DECIMAL(M,D) / NUMERIC(M,D) *: 正確な小数を扱う ** M **: 全体の桁数 (最大65) ** D **: 小数点以下の桁数 * FLOAT *: 単精度浮動小数点数 (4バイト) *: 精度は約7桁 * DOUBLE *: 倍精度浮動小数点数 (8バイト) *: 精度は約15桁 <br><br> == 文字列型 == 文字列型では、適切な文字セットの選択が必要となる。<br> <br> ==== 固定長 ==== * CHAR(N) *: 固定長文字列 (最大255文字) *: 指定した長さより短い文字列は空白で埋められる。 * 可変長 * VARCHAR(N) *: 可変長文字列 (最大65,535文字) *: 実際のデータ長だけを使用。 * TINYTEXT *: 最大255文字 (1バイト + データ長) * TEXT *: 最大65535文字 (2バイト + データ長) * MEDIUMTEXT *: 最大16777215文字 (3バイト + データ長) * LONGTEXT *: 最大4294967295文字 (4バイト + データ長) <br><br> == バイナリ型 == * BINARY(N) *: 固定長バイナリ文字列 * VARBINARY(N) *: 可変長バイナリ文字列 * TINYBLOB *: 最大255バイト * BLOB *: 最大65535バイト * MEDIUMBLOB *: 最大16777215バイト * LONGBLOB *: 最大4294967295バイト <br><br> == 日付・時間型 == * DATE *: 日付 (YYYY-MM-DD形式) *: 範囲 : 1000-01-01 〜 9999-12-31 * TIME *: 時間 (HH:MM:SS形式) *: 範囲 : -838:59:59 〜 838:59:59 * DATETIME *: 日付と時間 (YYYY-MM-DD HH:MM:SS形式) *: 範囲 : 1000-01-01 00:00:00 〜 9999-12-31 23:59:59 * TIMESTAMP *: タイムスタンプ *: 範囲 : 1970-01-01 00:00:01 UTC 〜 2038-01-19 03:14:07 UTC * YEAR *: 年 (4桁) *: 範囲 : 1901〜2155 <br><br> == 特殊型 == * ENUM *: 列挙型 *: 定義された値の中から1つだけ選択できる。 *: 最大65535個の値を定義できる。 * SET *: 複数の値を選択可能な列挙型 *: 最大64個の値を定義できる。 * JSON *: JSON形式のデータを格納できる。 *: JSONデータの検索や操作が可能である。 <br><br> == 空間データ型 == * GEOMETRY *: あらゆる種類の空間データ * POINT *: 座標点 * LINESTRING *: 線データ * POLYGON *: 多角形データ * MULTIPOINT *: 複数の点データ * MULTILINESTRING *: 複数の線データ * MULTIPOLYGON *: 複数の多角形データ * GEOMETRYCOLLECTION *: 異なる種類の空間データの集合 <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:MySQL]]
MySQL - データ型
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse