【テーブル】14種類のデータ型 概要と使い分け

データ型の詳細 テーブル

Accessのテーブル作成では、各フィールドに”データ型”を設定する必要があります。
今回の記事では、①データ型の概要、②データ型の種類、③データ型の使い分けの順番で解説していきます。

データ型の概要

”データ型”とはテーブル作成を行うデザインビュー画面の「データ型」欄のことです。テーブルのフィールドごとに、プルダウンリストの中から選択する必要があります。

データ型は14種類もあって、データの目的に応じて選択するんだ

何らかのデータ型を選択する必要があることはわかりましたが、データ型を設定する目的やメリットはなんでしょうか?主な理由を3点で解説します。

データの整合性を保つ

例えば、 生年月日 というフィールドがあったとします。通常であれば YYYY/MM/DD 形式の日付データを格納したいところですが、もしあらゆる文字や形式で自由に格納できてしまうと、 2025/13/32 のような明らかに不正な入力もエラーとして検出できません。

そこで、生年月日 フィールドのデータ型を 日付/時刻型 に設定してみましょう。そうすることで、物理的に日付として認識できるデータしか格納できなくなり2025/13/32 と入力した場合は、日付形式として認識されないためエラーとなります。同様に、 数値型 のフィールドには漢字やひらがなといった数値以外の文字は格納できませんし、 通貨型 のフィールドには整数値のみが許可され、小数点を含む値は格納できません。

必要なメモリ領域の最適化

適切なデータ型を選択することは、不要なメモリ領域の消費を抑え、データベース全体のメモリ使用量を削減することにも繋がります。例えば、実際に格納する文字数が少ないにもかかわらず、安易に 長いテキスト型 を選択してしまうと、システムはそのデータ型が持つ最大の領域を確保しようとするため、結果として無駄なメモリ領域が消費されてしまいます。

データを効率化よく扱える

適切なデータ型を選択することは、システム内部でのデータ処理効率の向上も期待できます。例えば、 短いテキスト型数値型 のどちらのフィールドであっても数字を格納し、集計処理を行うことは可能です。しかし、システム内部では数値を数値型として保持している方が、計算処理のパフォーマンスは一般的に向上します。

同様に、 短いテキスト型日付/時刻型 のどちらのフィールドでも日付のような形式でデータを格納できますが、システム内部でのデータの扱いは大きく異なります。前者は単なる文字列として扱われるのに対し、後者は日付や時刻の情報として認識されます。 日付/時刻型 のデータに対しては、日付や時刻の演算を行うための専用の関数(例えば、期間を計算する DateDiff関数 や、日付を加算する DateAdd関数 など)が利用できるため、見た目は似ていても、データ操作の自由度や効率性が大きく変わります

データ型の種類

それでは次に各データ型の特徴と使用例を説明します。一般的によく使用されるデータ型には「よく使う」を記載しますので参考にしてみてください。

短いテキスト(よく使う)

特徴

最大255文字までの文字列(漢字・ひらがな・カタカナ・数字・記号)を格納できます。

使用例

氏名住所電話番号 といった255文字以内に収まるような文字列はこのデータ型を設定しましょう。

長いテキスト

特徴

文字数上限は無く1GBまで文字列を格納することができ、プロパティの「文字書式」を リッチテキスト形式 に変更することで、文字列に下線や太字などの様々な装飾を加えることができます。

長いテキスト型の特徴

使用例

短いテキスト では格納しきれない文字列の場合に使用します。例えば 備考 などは格納文字数の想定が付きにくく、長文となる場合もあるため適しています。ただし、本来は 短いテキスト で済むようなフィールドに 長いテキスト を使用すると、ファイル全体のサイズが増加しパフォーマンス低下の原因となります。

数値型(よく使う)

特徴

数値を格納する場合に使用するデータ型です。格納するデータの桁数等に基づき、フィールドサイズを選択する必要があります。(初期値は 長整数型

数値型のフィールドサイズ選択肢

各フィールドサイズの詳細を下表のとおりです。

フィールドサイズ種別サイズ等
バイト型0から255までの整数を格納可能
整数型-32,768から32,767までの整数を格納可能
長整数型-2,147,483,648から2,147,483,647までの整数を格納可能
単精度浮動小数点型最大有効桁数が約7桁の実数を格納可能。小数も扱えるが精度が低い
倍精度浮動小数点型最大有効桁数が約15桁の実数を格納可能。高い精度で小数を扱える
レプリケーションID型GUIDと呼ばれる一意な識別子を格納する
十進型利率、税金、小数点以下の桁数が多い数値や、誤差が許容されない数値を扱う

フィールドサイズを選択するうえで、「格納できる桁が足りなくなるよりは、最初から大きめの桁を割り当てればいい」というものではありません。サイズが大きいものはそれだけデータベースのメモリや容量を消費しますので、あくまでデータ内容に合わせて選択することを心がけてください

一般的には 長整数型 、小数を扱う場合は 倍精度浮遊小数点型 を選択すればOKです。

使用例

数量取扱数在庫数 といった数値を扱う場合に使用します。

大きい数値

特徴

長整数型 では扱いきれない非常に広い範囲の整数値を格納できます。他のデータベースシステム(SQL Serverなど)の bigint データ型との互換性があります。

使用例

一般的な業務用途ではあまり使用することがないと思われます。大きなデータを扱う他のデータベースからデータをインポートする場合などに使用する例があります。

日付/時刻型(よく使う)

特徴

日付や時刻を格納する際に使用します。プロパティの「書式」から表示形式を選択できます。

日付/時刻型の書式設定

書式に関しては選択肢から選択するだけでなく、手入力で設定することもできます。

以下にいくつかの設定例をご紹介します。

事例書式具体例
年月日を和暦で表示ggge”年”m”月”d”日”令和5年10月26日
曜日を漢字で表示yyyy/mm/dd(dddd)2023/10/26(木曜日)
月を英語の略称で表示dd-mmm-yyyy26-Oct-2023

使用例

生年月日登録日注文日時 といった日付、時刻データを格納する場合に使用します。

拡張した日付/時刻型

特徴

日付/時刻型 よりも広い範囲の日付・時刻を格納することができます。主な拡張内容は以下のとおりです。

【日付の範囲】
従来:100年1月1日~9999年12月31日
拡張:0001年1月1日~9999年12月31日

西暦1年から保持することができるのね!

【時刻】
ナノ秒単位の精度で時刻を格納可能

使用例

日付の格納範囲が広いため、歴史的なデータや未来のデータを扱う場合に便利です。また、高精度な日時データが必要な場合も適しています。いずれにしても、特殊な使用ケースを想定したものであり、一般的な業務用途では 日付/時刻型 で十分対応可能です。

通貨型

特徴

金額などを格納するためのデータ型で、通貨の計算に特化しており、より正確な計算が可能です。通貨型に格納したデータの先頭には通貨記号の「\」やカンマ区切りが自動で表示されます。

使用例

売上請求金額給与 などの金額を扱う場合に使用します。

オートナンバー型(よく使う)

特徴

新しいレコードが追加されるたびに、1から始まる連続した整数を自動的に生成します。番号は重複することがないので、主キーとして活用される場合が多いですが、レコードを削除した場合、その番号は欠番となり後から埋めることはできません。

使用例

前述したとおり、社員ID商品ID顧客IDなど、主キーとして一意のIDが必要な場合に適しています。

Yes/No型(よく使う)

特徴

「はい/いいえ」、「True/False」、「オン/オフ」といった二者択一のデータを格納するために使用されます。システム内部的には、True(はい、オン)は-1、False(いいえ、オフ)は0として数値で格納されることを覚えておきましょう。
またテーブル表示上の初期設定はチェックボックスになっていますが、プロパティの書式を変更することで、「True/False」、「Yes/No」、「On/Off」などのテキスト表示に変更することも可能です。

Yes/No型の書式変更

使用例

削除フラグ選択回答済 といった二者択一を管理するフィールドに適しています。

OLEオブジェクト型

特徴

ExcelやWordといった他のアプリケーションで作成されたファイルなどをAccessのデータベースに保持し、クリックすることで該当ファイルを参照することができます。OLEとは「Object Linking and Embedding」の略で、ファイル同士を連携するための仕組みです。

連携方法には「リンク」と「埋め込み」があり、埋め込みは1GBを上限にAccessファイルの中に保持することができます。

リンク・ファイル自体はAccessの外部に存在し、ファイルパスのみを記録する。
・外部ファイルが変更された場合は変更後のファイルを開く。
・ファイルは外部にあるので、Accessの保存サイズは増えない。
埋め込み・ファイルはAccess内に保存する。
・外部ファイルを変更しても、Access内に埋め込んだファイルは元のまま。
・Access自体の保存サイズが増える。

「埋め込み」をやりすぎると処理速度も遅くなるので要注意だよ!

使用例

文書ファイルをDBから開いたりする場合に便利ですが、Access2007以降は後述する ファイル添付 を使用した方が効率的ですので、Access2007以前に作成されたAccessファイルを使用する場合に限定しましょう

ハイパーリンク型

特徴

文字列にWebページのURLや電子メールアドレス、ネットワーク上のファイルパスなどをリンクして格納することができます。リンクした文字列をクリックするとWebページを開いたり、電子メールを送ることができますので利便性があがります。リンクされた文字列はわかりやすいように、青色の下線付きテキストとして表示されます。

フィールドにハイパーリンクを設定した様子

使用例

顧客マスタのWebサイト URL や、Eメール などの用途に最適です。

添付ファイル

特徴

OLEオブジェクト型 と同様に、文書、スプレッドシート、PDFといったファイルに加えて、画像ファイルをAccessのデータベースに保持することができます。添付ファイルOLEオブジェクト型 の後継としてAccess2007から登場したデータ型で、様々な点でより機能が向上しています。これから新規でテーブルを作成する場合は 添付ファイル を使用するといいでしょう。

OLEオブジェクト型との主な違いは以下のとおりです。

・Access 2007以降でのみ使用できる。
・1つのレコードに複数のファイルを添付できる。
・自動でファイル圧縮されるなど最適化された形式で格納される。

使用例

フォーム上に商品写真や顔社員を表示する際などに向いています。フォームに表示する場合は、添付ファイルコントロールを利用します。

最適化されるとはいえファイル添付を多用すると、ファイル容量を圧迫するので注意ですね

集計

特徴

テーブル内の他フィールド同士を計算した結果を表示することができます。ちなみに関数は使用することができませんので、複雑な計算を行う場合はクエリやVBAを使用することになります。

あくまで単純な計算を行うことができる機能ですが、計算を自動化することでデータの入力ミスを減らせることに加え、常に最新の計算結果を表示するため、リアルタイムでのデータ分析にも役立ちます

使用例

例:勤怠管理で「給料」を算出
勤務時間 フィールドと 時給 フィールドがある場合、集計 フィールドを使って 給与 フィールドを自動的に計算できます。

式: [勤務時間] * [時給]

データ型「集計」で給料の自動計計算

ルックアップウィザード

特徴

テーブルのフィールドに選択リスト(コンボボックスまたはリストボックス)を表示し、ユーザーが値を簡単に入力できるようにする機能です。選択リストは他のテーブルを参照して、そこから選んで入力する仕組みにです。入力が効率化するだけでなく、手入力をする必要がないため、正確性の向上も期待できます。

使用例

例:取引管理で 取引内容 フィールドを入力
予めルックアップウィザードで T_商品マスタ をリンクしておき、T_商品マスタ に記録されているデータの中から取引した内容を登録できます。

まとめ

Accessのテーブル作成時に選択する各データ型の特徴と使用例を説明いたしました。

Accessのバージョンが上がるにつれ、新たなデータ型が追加されており、Accessがより幅広い活用方法に対応できる傾向にあるなと感じる一方、メインで使用するデータ型は限られます。

よって、全データ型の概要程度は頭の片隅に入れつつ、主要なデータ型(短いテキスト、数値型、日付/時刻型、Yes/No型、オートナンバー型)はきっちり理解しておきましょう。

タイトルとURLをコピーしました