言語エレメント
このセクションでは、SQL の基本構文と、多くの SQL ステートメントに共通する言語エレメントについて定義します。
- 文字
SQL 言語のキーワードおよび演算子で使用する基本的な記号は、IBM リレーショナル・データベース製品がサポートするすべての文字セットに含まれる 1 バイト文字です。 - トークン
言語の基本的な構文単位のことを、トークン と呼びます。 1 つのトークンは、1 つ以上の文字から構成されます。ただし、この文字にはブランクや制御文字は入りません。また、ストリング定数または区切り文字付き ID 内の文字も除きます。(これらの用語については後述します。) - ID
ID は、名前を形成するのに使われるトークンです。SQL ステートメントで使用する ID は、SQL ID、システム ID、ホスト ID のいずれかです。 - 命名規則
名前を形成する規則は、その名前によって指定されるオブジェクトのタイプと命名オプション (*SQL または *SYS) に依存します。命名オプションは、CRTSQLxxx、RUNSQLSTM、および STRSQL コマンドに指定します。SET OPTION ステートメントを使用して、組み込み SQL を含むプログラムのソース内に命名オプションを指定することができます。構文図では、名前のタイプに応じてさまざまな用語が使用されています。 - 別名
別名 は、 表、表のパーティション、ビュー、またはデータベース・ファイルのメンバーの代替名と考えてください。 名前または別名によって、SQL ステートメントで表やビューを参照することができます。 別名は、同一またはリモートのリレーショナル・データベース内の表、表のパーティション、ビュー、またはデータベース・ファイルのメンバーを参照することができます。 - 権限 ID と権限名
許可 ID とは、データベース・マネージャーとアプリケーション・プロセスとの間、 またはデータベース・マネージャーとプログラム準備処理との間の接続が確立されるときに、 データベース・マネージャーが獲得する文字ストリングのことです。 権限 ID は、特権の集合を示します。権限 ID がユーザーまたはユーザーのグループを示すこともありますが、データベース・マネージャーでは、権限 ID のこの特性は管理しません。 - プロシージャー解決
プロシージャー呼び出しがあると、DB2 は同じ名前を 持つプロシージャーのうちのどれを実行するのかを決定する必要があります。 - データ・タイプ
SQL で操作できるデータの最小単位を値 と呼びます。 - データ・タイプのプロモーション
データ・タイプは、関連したデータ・タイプに分類することができます。そのようなグループ内では、あるデータ・タイプが別の データ・タイプに優先すると考えられるような優先順位が存在します。この優先順位によって、データベース・マネージャーは、1 つのデータ・タイプの、 優先順位の低い別のデータ・タイプへのプロモーション を サポートできます。 例えば、データ・タイプ CHAR は VARCHAR へのプロモーションが可能であり、 INTEGER は DOUBLE PRECISION へのプロモーションが可能ですが、 CLOB は VARCHAR へのプロモーションができません。 - データ・タイプ間のキャスト
所定のデータ・タイプを持つ値を、別のデータ・タイプに、あるいは異なる長さ、精度、位取りを持つ同じデータ・タイプにキャストする (変更する) 必要が生じる場合がしばしばあります。 - 割り当ておよび比較
SQL の基本演算は、割り当てと比較です。割り当て演算は、CALL、INSERT、 UPDATE、FETCH、SELECT、SET 変数、および VALUE INTO ステートメントの実行時に行われます。 比較演算は、述部や他の言語エレメント (MAX、MIN、 DISTINCT、GROUP BY、ORDER BY など) が入っているステートメントを実行する過程で行われます。 - 結果のデータ・タイプに関する規則
結果のデータ・タイプは、演算のオペランドに適用される規則によって決まります。 このセクションでは、この規則について説明します。 - ストリングを結合する演算に適用される変換規則
ストリングを結合する演算には、連結、UNION、UNION ALL、EXCEPT、および INTERSECT があります。 (これらの規則は、MAX、MIN、VALUE、 COALESCE、IFNULL、および CONCAT スカラー関数と CASE 式にも適用されます。) いずれの場合も、結果の CCSID はバインド時に決まり、演算を実行する際には、その CCSID によって識別されるコード化文字セットにストリングを変換する処理を伴うことがあります。 - 定数
定数 (リテラル ともいう) では ある 1 つの値を指定します。定数は、ストリング定数と数値定数に分類されます。 ストリング定数は、さらに文字ストリング定数とグラフィック・ストリング定数に類別されます。数値定数は、さらに整数、浮動小数点数、および 10 進数に類別されます。 - 特殊レジスター
特殊レジスター は、データベース・マネージャーによって定義されるアプリケーション・プロセスのための域であり、そこに保管される情報は、SQL ステートメントで参照することができます。特殊レジスターに対する参照は、現行サーバーによって与えられた値に対する参照となります。 参照する値がストリングの場合は、その CCSID は、現行サーバーのデフォルトの CCSID となります。 - 列名
列名の持つ意味は、その列名が使用されている文脈によって異なります。 - 変数
SQL ステートメントの変数 は、SQL ステートメントの実行時に変更が可能な値を指定します。 - 関数
関数 とは、特定の操作に名前、つまり関数名を付けたもので、関数名の後には括弧に囲まれた 1 つ以上のオペランドが続きます。 関数は、入力の値のセットと結果の値のセットの間の関係を表しています。関数への入力値は引数 と呼ばれます。 例えば、関数に日時のデータ・タイプを持った 2 つの引数を渡し、結果としてタイム・スタンプ・データ・タイプの戻り値を渡すことができます。 - 式
式では、値を指定します。 - 述部
述部 では、特定の値、行、グループについて、真、偽、不明のいずれかになる条件を指定します。 - 検索条件
検索条件 は、ある所定の行またはグループについて、真、偽、または不明の条件を示します。
親トピック: DB2 for i SQL 解説書