4.5.1 edmSQLの文法の概要
(1) データ型
edmSQLでは,クラスライブラリで扱えるデータ型のうち,Id型を除いたデータ型が使用できます。また,HiRDB Text Search Plug-inと連携した検索の検索条件などには,クラスライブラリでは扱えないBinary型のデータも扱えます。Binary型のデータは,クラスライブラリではString型の値として取得できます。
なお,それぞれのデータ型ごとに,表現形式や使用できる演算子・関数・述語などが決まっています。
データ型と演算子,関数および述語の関係については,「4.5.3 使用できるデータ型と演算子・関数・述語の関係」を参照してください。
(2) 字句規則
edmSQLでは,使用できる字句が定義されています。
定義されているのは,<区切り文字>,<トークン>,<キーワード>,<リテラル>,<識別子>,<名前>,<ID文字列>,<特殊なプロパティ>,<?パラメタ>および<OIID>です。
字句規則については,「4.5.4 字句規則」を参照してください。
(3) 構文規則
edmSQL文で指定できる構文は,SELECT文です。したがって,edmSQLでは,SELECT文の構文規則が定義されています。
(a) 構文の概要
- 検索の実行単位
検索は,edmSQLプログラム単位で実行されます。edmSQLプログラムは,一つのedmSQL文によって構成されています。edmSQLプログラムは,1回のCdbrEqlStatement::Setメソッドのコールで設定できる検索条件です。
edmSQL文に指定できるのは,問い合わせ文(SELECT文)だけです。
検索の実行単位については,「4.5.5 検索の実行単位の構文規則」を参照してください。
- 問い合わせ式(SELECT文)
問い合わせは,問い合わせ文によって表現します。
問い合わせ文には,SELECT句,FROM句,WHERE句,GROUP BY句,HAVING句およびORDER BY句が指定できます。最も単純な問い合わせ文は,SELECT句とFROM句から構成されます。
それぞれの句は,次のような要素で構成されています。
問い合わせ表現については,「4.5.6 問い合わせ式の構文規則」を参照してください。
(b) 構文の詳細
SELECT文は,次のような要素で構成されます。
- 値(スカラー式)
値は,スカラー式として指定します。スカラー式によって,プロパティの指定やルーチンの起動,数値関数および集合関数によって得られる値を表現します。
値を表現するスカラー式については,「4.5.7 スカラー式表現の構文規則」を参照してください。
- 述語
FROM句のON条件,WHERE句,またはHAVING句に指定する検索条件は,述語によって表現します。述語では,比較述語,論理述語,Between述語,In述語,Like述語,Null述語およびExists述語で構成される検索条件が指定できます。
述語の結果は,「真」,「偽」または「不定」のどれかで得られます。
述語の表現については,「4.5.8 述語の構文規則」を参照してください。
- 関数
DocumentBrokerでは,基本的なSQLの文法では表現できないedmSQLでの拡張機能を,関数で表現します。
関数には,HiRDB Text Search Plug-inの機能を使用した検索を実現する関数と,DocumentBrokerで扱うオブジェクトや文字列の変換機能を実現する関数があります。
関数の表現については,「4.5.9 関数指定の構文規則」を参照してください。
- データ操作
edmSQLで実行できるデータ操作とは,ORDER BY句による検索結果の並び替えです。
データ操作の表現については,「4.5.10 データ操作の構文規則」を参照してください。