WBEM クライアントでは、WQL を使ってデータを照会したり、フィルタを適用したりします。データが特定のプロバイダによって提供された場合、CIMOM によりクライアント照会が適切なプロバイダに渡されます。ユーザーは、特定のクラスまたは特定の名前空間内のすべてのクラスにおいて、指定された照会と一致するインスタンスを検索できます。
次の例では、Storage_Capacity プロパティに特定の値を持つ Solaris_DiskDrive クラスのインスタンスをすべて検索します。
select * from Solaris_DiskDrive where Storage_Capacity = 1000 |
Solaris WBEM SDK では、Level 1 WBEM SQL がサポートされます。Level 1 WBEM SQL では、join のない簡単な select 操作を行うことができます。次の表に、Sun WBEM SDK でサポートされる WQL キーワードを示します。
表 5–2 サポートされる WQL キーワード
キーワード |
説明 |
---|---|
AND |
2 つのブール式を結合し、両方の式が True であれば、True を返す |
FROM |
SELECT 文にリストされているプロパティを持つクラスを指定する |
NOT |
NULL 文字と共に使用される比較演算子 |
OR |
2 つの条件を結合する。1 つの文に複数の論理演算子が使用されていると、OR 演算子 (論理和演算子) は AND 演算子 (論理積演算子) より後に評価される |
SELECT |
照会で使用されるプロパティを指定する |
WHERE |
照会のスコープを狭める |
LIKE |
提供された最低限の情報に基づいて結果セットを生成する |
SELECT 文を使用して単一のクラスとそのサブクラスのインスタンスを取得します。取得するプロパティおよび満たす必要がある条件を指定することもできます。
現時点では、join 操作はサポートされません。
SELECT 文の構文は、次のとおりです。
SELECT list FROM class WHERE condition
次の表に、SELECT 文の検索を改良する引数の使用例を示します。
表 5–3 SELECT 文の例
照会例 |
説明 |
---|---|
SELECT * FROM class |
指定されたクラスとそのすべてのサブクラスのすべてのインスタンスを選択する。返されるインスタンスには、すべてのプロパティが含まれる |
SELECT PropertyA FROM class |
指定されたクラスとそのすべてのサブクラスのうち、PropertyA を持つすべてのインスタンスを選択する |
SELECT PropertyA, PropertyB FROM class WHERE PropertyB=20 |
指定されたクラスとそのすべてのサブクラスのうち、PropertyB=20 を持つすべてのインスタンスを選択する。返された各インスタンスには、PropertyA と PropertyB だけが含まれる |
FROM 句では、照会文字列に一致するインスタンスが含まれているクラスを指定します。WQL FROM 句では、join 以外の式だけがサポートされます。したがって、WQL FROM 句には 1 つのクラスしか指定できません。
FROM 句は、abstract クラス fromExp によって表されます。現時点では、fromExp の直接のサブクラスは NonJoinExp だけです。NonJoinExp サブクラスは、1 つのテーブル (CIM クラス) だけを指定した FROM 句を表しています。SELECT 操作はこのテーブルに対して行われます。
WHERE 句は、照会のスコープを狭めるためのものです。この句には条件式が含まれています。これらの条件式には、プロパティまたはキーワード、演算子、定数が含まれます。
次に、SELECT 文のあとに追加する WHERE 句の構文の例を示します。
SELECT CIMinstance FROM CIMclass WHERE conditional_expression |
WHERE 句の conditional_expression は、次の形式です。
property operator constant
expression には、プロパティまたはキーワード、演算子、定数を指定します。WHERE 句を SELECT 文の後に追加するには、次のどちらかの形式を使用します。
SELECT instance FROM class WHERE constant operator property |
WHERE 句は次の規則に従う必要があります。
定数の値は、プロパティに対して適切なデータ型です。
演算子は、有効な WQL 演算子です。
演算子のどちらかが、プロパティ名または定数になります。
任意の算術式を指定することはできません。たとえば、次の照会では、ready 状態のプリンタを持つ Solaris_Printer クラスのインスタンスだけが返されます。
SELECT * FROM Solaris_Printer WHERE Status = `ready' |
WHERE 句内では、論理演算子やカッコ式を使用して、プロパティ、演算子、定数からなる複数のグループを結合することができます。各グループは、演算子 AND、OR、または NOT で結合されている必要があります。
次の例では、Name プロパティに home か files が設定されている Solaris_FileSystem クラスのすべてのインスタンスを取得します。
SELECT * FROM Solaris_FileSystem WHERE Name= `home' OR Name= `files' |
次の例では、名前が home か files のディスクのうち、一定の使用可能な容量が残っており、Solaris プラットフォームのファイルシステムを持つディスクを取得します。
SELECT * FROM Solaris_FileSystem WHERE (Name = `home' OR Name = `files') AND AvailableSpace > 2000000 AND FileSystem = `Solaris' |
SELECT 文の WHERE 句の二値式では、次の標準の WQL 演算子を使用できます。
表 5–4 WHERE 句で使用できる WQL 演算子
演算子 |
説明 |
---|---|
= |
等しい |
< |
より小さい |
> |
より大きい |
<= |
以下 |
>= |
以上 |
<> |
等しくない |