CREATE TABLE ステートメント

CREATE TABLE ステートメントを使用して、データベースファイル内にテーブルを作成します。CREATE TABLE ステートメントの形式は次のとおりです:

コピー
CREATE TABLE テーブル名 ( テーブル要素リスト [, テーブル要素リスト...])

ステートメント内で、各列の名前とデータタイプを指定します。

  • テーブル名は、テーブルの名前です。テーブル名には、100文字という制限があります。同じ名前のテーブルがすでに定義されていないようにしてください。テーブル名は、アルファベット文字で始まる必要があります。テーブル名がアルファベット文字以外で始まるか、またはピリオド (.) を含む場合は、ダブルクォーテーションマークで囲む必要があります (クォーテーションマークで囲まれた識別子)。

  • テーブル要素リストの形式は次の通りです:

    コピー
    フィールド名フィールドタイプ [[繰り返し]]
    [DEFAULT 数式] [UNIQUE | NOT NULL | PRIMARY KEY | GLOBAL
    [EXTERNAL 相対パス文字列 [SECURE | OPEN 計算パス文字列]]
  • フィールド名はフィールドの名前です。ファイル名は固有である必要があります。フィールド名はアルファベット文字で始めます。フィールド名がアルファベット文字以外で始まるか、またはピリオド (.) を含む場合は、ダブルクォーテーションマークで囲む必要があります (クォーテーションマークで囲まれた識別子)。

    」という名前のフィールドに対する CREATE TABLE ステートメントは、次のようになります:

    コピー
    CREATE TABLE "従業員名簿" (ID INT PRIMARY KEY, "名" VARCHAR(20), "姓" VARCHAR(20))
  • CREATE TABLE ステートメントの 繰り返しには、フィールドタイプの後に角カッコで囲んだ 1 から 32000 の数値を使用して指定します。

    コピー
    "従業員番号" INT[4]
    "姓" VARCHAR(20)[4]
  • フィールドタイプは、NUMERICDECIMALINTDATETIMETIMESTAMPVARCHARCHARACTER VARYINGBLOBVARBINARYLONGVARBINARY、または BINARY VARYINGです。NUMERICDECIMAL の場合は、桁数とスケールを指定できます。例:DECIMAL(10,0)TIMETIMESTAMP の場合は、桁数を指定できます。例:TIMESTAMP(6)VARCHARCHARACTER VARYING の場合は、文字列の長さを指定できます。

    コピー
    VARCHAR(255)
  • DEFAULT キーワードでは列のデフォルト値を設定できます。値式では、定数値または式を使用できます。使用可能な式は、USERUSERNAMECURRENT_USERCURRENT_DATECURDATECURRENT_TIMECURTIMECURRENT_TIMESTAMPCURTIMESTAMP、および NULL です。

  • 列を UNIQUE に定義すると、自動的に、FileMaker Pro データベースファイル内の対応するフィールドの入力値の制限オプション [ユニークな値] が選択されます。

  • 列を NOT NULL に定義すると、自動的に、FileMaker Pro データベースファイル内の対応するフィールドの入力値の制限オプション [空欄不可] が選択されます。このフィールドには、FileMaker Pro の [データベースの管理] ダイアログボックスの [フィールド] タブで [空欄不可] としてフラグが付けられます。

  • 列をオブジェクトフィールドとして定義するには、フィールドタイプBLOBVARBINARY、または BINARY VARYING を使用します。

  • データを外部に保存するオブジェクトフィールドとして列を定義するには、EXTERNAL キーワードを使用します。相対パス文字列は、FileMaker Pro データベースの場所に関連し、データが外部に保存されるフォルダを定義します。このパスは、FileMaker Pro の [オブジェクトの管理] ダイアログボックスの基本ディレクトリとして指定する必要があります。セキュア格納の場合は 「SECURE」、オープン格納の場合は「OPEN」を指定します。オープン格納を使用する場合、計算パス文字列はオブジェクトが保存される相対パス文字列内のフォルダです。パスのフォルダ名にはスラッシュ (/) を使用する必要があります。

使用する列

SQL の例

テキスト列

コピー
CREATE TABLE "T1" ("C1" VARCHAR, "C2" VARCHAR (50), "C3" VARCHAR (1001), "C4" VARCHAR (500276))

テキスト列、NOT NULL

コピー
CREATE TABLE "T1NN" ("C1" VARCHAR NOT NULL, "C2" VARCHAR (50) NOT NULL, "C3" VARCHAR (1001) NOT NULL, "C4" VARCHAR (500276) NOT NULL)

数字列

コピー
CREATE TABLE "T2" ("C1" DECIMAL, "C2" DECIMAL (10,0), "C3" DECIMAL (7539,2), "C4" DECIMAL (497925,301))

日付列

コピー
CREATE TABLE "T3" ("C1" DATE, "C2" DATE, "C3" DATE, "C4" DATE)

時刻列

コピー
CREATE TABLE "T4" ("C1" TIME, "C2" TIME, "C3" TIME, "C4" TIME)

タイムスタンプ列

コピー
CREATE TABLE "T5" ( "C1" TIMESTAMP, "C2" TIMESTAMP, "C3" TIMESTAMP, "C4" TIMESTAMP)

オブジェクトフィールドの列

コピー
CREATE TABLE "T6" ("C1" BLOB, "C2" BLOB, "C3" BLOB," C4" BLOB )

外部に保存するオブジェクトフィールドの列

コピー
CREATE TABLE "T7" ("C1" BLOB EXTERNAL 'Files/MyDatabase/' SECURE) 
CREATE TABLE "T8" ("C1" BLOB EXTERNAL 'Files/MyDatabase/' OPEN 'Objects' )