固定長のテキスト型フィールドを作成する

 テーブルデザインでテキスト型(短いテキスト)の列を作成した場合にフィールドサイズを指定することができますが、これは入力できる文字数の上限値です。指定した文字数が必ず記録されるような固定長の列を作成することは(テーブルデザインでは)できません。
 しかし、データ定義クエリを用いてデータ型としてCHARを指定することで作成可能ですので、以下に例を示します。

f:id:accs2014:20190108050258p:plain:right:w500

 データ定義クエリの画面です。
 ここで以下のように入力します。

CREATE TABLE 社員テーブル (社員番号 INT PRIMARY KEY,氏名 TEXT(50),住所 CHAR(50));

 このSQLにより3つの列(社員番号、氏名、住所)を持つ社員テーブルが作成されます。
 社員番号は数値型(INT)の主キー(PRIMARY KEY)となります。また、氏名は可変長の短いテキスト型(TEXT(50))、住所は固定長の短いテキスト型(CHAR(50))となります。

f:id:accs2014:20190108050254p:plain:right:w550

 テーブルを作成して値を入力したところです(3行目は社員番号のみ入力)。
 住所列は、未入力の状態だと値はNullですが、1文字でも入力すると末尾が半角スペースで補われ、50文字の文字列として記録されます。

f:id:accs2014:20190108050252p:plain:right:w600

 クエリで氏名列と住所列の文字数をLen関数で調べてみます。

f:id:accs2014:20190108050249p:plain:right:w550

 住所列は住所の長さに関わらず50文字の文字列として記録されています(3行目はNullなので長さもNull)。

f:id:accs2014:20190108050247p:plain:right:w350

 ところで、社員テーブルのデザインビューでは、氏名列も住所列もフィールドサイズ50の「短いテキスト」となり、上記の設定の違いはわかりません。

f:id:accs2014:20190108050332p:plain:right:w550

 ただし、データベースツールの「データベース構造の解析」メニューで作成できるレポートでは、「Attributes」の値が「Fixed Size」となり区別することができます(可変長の場合は「Variable Length」)。