データ照会とは、クラスのインスタンスを要求する文です。データ照会を発行するには、execQuery メソッドを使って WQL 文字列を CIM Object Manager に渡します。
情報を検索する SQL 文は SELECT 文です。これには、WQL 固有の制約と拡張がいくつかあります。SQL SELECT 文は通常データベース環境でテーブルから特定の列を取り出すために使用されますが、WQL SELECT 文は単一クラスのインスタンスを取り出すために使用されます。WQL では、複数のクラスに渡る照会はサポートされません。
SELECT 文では、FROM 節に指定されたオブジェクトで検索するプロパティを指定します。
SELECT 文の基本的な構文は、次のとおりです。
SELECT instance FROM class
次の表に、SELECT 節の引数の使用例を示します。
表 4–5 SELECT 文
照会例 |
説明 |
---|---|
SELECT * FROM class |
指定されたクラスとそのすべてのサブクラスのすべてのインスタンスを選択する。 |
SELECT PropertyA FROM class |
指定されたクラスとそのすべてのサブクラスのうち、PropertyA を持つクラスまたはサブクラスのインスタンスだけを選択する。 |
SELECT PropertyA, PropertyB FROM class |
指定されたクラスとそのすべてのサブクラスのうち、PropertyA か PropertyB を持つクラスまたはサブクラスのインスタンスだけを選択する。 |
WHERE 節を使うと、照会のスコープを狭めることができます。WHERE 節には、プロパティまたはキーワード、演算子、定数を指定します。WHERE 節には、あらかじめ定義された WQL 演算子の 1 つを必ず指定する必要があります。
WHERE 節を SELECT 文の後に追加する基本的な構文は、次のとおりです。
SELECT instance FROM class WHERE expression |
expression には、プロパティまたはキーワード、演算子、定数を指定します。WHERE 節を SELECT 文の後に追加するには、次のどちらかの形式を使用します。
SELECT instance FROM class [[WHERE property operator constant]] |
SELECT instance FROM class [[WHERE constant operator property]] |
定数の値は、プロパティに対して適切なデータ型のものである。
演算子は、表 4–4 に示す WQL 演算子のいずれかでなければならない。
演算子のどちらかの側は、プロパティ名または定数でなければならない。
任意の算術式を指定することはできない。たとえば、次の照会では、ready 状態のプリンタを持つ Solaris_Printer クラスのインスタンスだけが返されます。
SELECT * FROM Solaris_Printer WHERE Status = “ready” |
次の照会は無効です。
SELECT * FROM PhysicalDisk WHERE Partitions < (8 + 2 - 2) |
WHERE 節中には、論理演算子やかっこ式を使って、プロパティ、演算子、定数からなる複数のグループを結合することができます。次の表に示すように、個々のグループは、AND、OR、NOT 演算子で結合されている必要があります。
表 4–6 論理演算子を使った照会
照会例 |
説明 |
---|---|
SELECT * FROM Solaris_FileSystem WHERE Name= "home" OR Name= "files" |
Name プロパティに home か files が設定されている Solaris_FileSystem クラスのすべてのインスタンスを検索する。 |
SELECT * FROM Solaris_FileSystem WHERE (Name = “home” OR Name = “files”) AND AvailableSpace > 2000000 AND FileSystem = “Solaris” |
名前が home か files のディスクのうち、一定の使用可能な容量が残っており、かつ Solaris ファイルシステムを持つディスクを検索する。 |