InterBase クイック スタート:Part II - ドメインの作成

提供: InterBase

InterBase クイック スタート: Part II - データ定義 へ戻る

ドメインは、カスタマイズされた列定義で、テーブルを作成するために使用します。 テーブルを作成する際、テーブル内の各列の特性を指定します。 通常、1 つのデータベース内の異なるテーブルにおける複数の列が、同じ特性をもつ場合があります。 その各列に対して、同じ複雑な定義を入力するより、特性のコレクションに名前を付けて作成することができます。 この名前が付いた列の特性のセットが、ドメインと呼ばれます。 定義をすべて打ち込んでいく代わりに、ドメイン名を、列定義で使用することができます。

メモ: ドメインを列定義で使用する場合、あらかじめドメインを作成しておく必要があります。

ドメインに対して指定できる特性の中には次のようなものがあります:

  • データ型。
  • デフォルト値。
  • Null 値の許容。
  • CHECK 制約。
  • 特性セットおよび照合順序(任意、CHARVARCHAR 列での出力ソート順)

ドメインの定義の詳細については、「CREATE DOMAIN」を参照してください。

Image 025.jpg TUTORIAL データベースを作成する

  1. IBConsoleLocal Server に、ユーザー TUTOR としてログインします。
    メモ:Part 1 - ユーザーの新規作成」で、ユーザー TUTOR を作成しています。
  2. TUTORIAL データベースに接続する
    • TUTORIAL データベースを選択し、データベース > 接続 を選択します。
    メモ: データベース TUTORIAL を「Part 1 - データベースの作成」で作成します。

Image 025.jpg ドメインを作成する

この円周で、CREATE DOMAIN 文を使用して、後で列のデータ型を指定するために使用する、ドメインを作成します。

以下のステップに従い、4 つのドメインを定義します。最初の 3 つでは、データ型のみ指定します。4 つ目は、より複雑になります。それぞれの場合において、ドメインは、名前を付けられたときの列に対してだけでなく、他の複数の列に対しても利用することができます。

  1. 対話型 SQL ウィンドウを開きます。
  2. SQL 文領域に次のコードを入力して、VARCHAR(15) のデータ型の firstname というドメインを定義します。
    CREATE DOMAIN firstname AS VARCHAR(15)
    
  3. 文を実行します
  4. さらに 2 つのドメイン、lastnameempno を作成します。 各文を個別に実行してから、次の文を入力してください。
    CREATE DOMAIN lastname AS VARCHAR(20)
    
    CREATE DOMAIN empno AS SMALLINT
    
  5. 次に、次のコードを入力および実行して、部署番号のためのドメインを定義します。 ドメインは、3 文字の文字列として定義されます。 データ型の外に、チェック制約を含み、部署番号が "000" か、、アルファベット順で "0" から "999" の間か NULL であることを確認します。 これを入力する際には、括弧と引用符に注意を払ってください:
    CREATE DOMAIN deptno AS CHAR(3) CHECK ( VALUE = '000'
    OR
    (
    VALUE > '0'
    AND
    VALUE <= '999'
    )
    OR
    VALUE IS NULL)
    

特殊な検討事項

  • 括弧がある SQL 文を入力する際には、少し時間を取って、左括弧と右括弧を数え、それらが一致していることを確認してください。 SQL コードにおけるエラーの多くは、括弧の不一致に起因しています。 上記の例では、入れ子になっている括弧があります: CHECK 句は、括弧で囲まれています。この句には 3 つの部分(A OR B OR C)が含まれており、その第2部分には、さらに多重部分(A AND B)を保有するための括弧があるからです。
  • 上の CREATE DOMAIN 文は、ユーザーがその構文を理解しやすいよう、複数行に分割されています。 InterBase は、文を解析する際に、これらの改行は無視します。実行する前に、文はすべて入力してください。
  • CREATE 文は DDL 文であるため、作業をコミットする必要はありません(このチュートリアルの セッションの設定 の最初の段階で、自動コミット機能をオンにしています)。

次は: