Příkaz SELECT pro datové dotazy
K dotazování na informace můžete použít různé příkazy SELECT. Příkazy můžou být základní příkazy nebo můžou být více omezující a zúžit sadu výsledků vrácenou z dotazu.
Následující příklad je základní příkaz SELECT, který slouží k dotazování na data.
SELECT * FROM Class
Tento příkaz vrátí instance zadané třídy a jakékoli jeho podtřídy. Součástí jsou všechny systémové a uživatelem definované vlastnosti pro třídy. Pokud systémová vlastnost není relevantní pro konkrétní dotaz, obsahuje NULL.
Pomocí několika technik můžete snížit šířku pásma potřebnou k načtení sady výsledků, pokud provádění dotazu vede k příliš velké režii a uživatel má zájem jenom o podmnožinu vlastností. Nejprve můžou dotazy nahradit hvězdičku požadovanými vlastnostmi.
Následující příklad ukazuje, jak dotazovat na konkrétní vlastnosti.
SELECT property_1, property_2, property_3 FROM class
Sada výsledků obsahuje všechny systémové vlastnosti a zadané nesystémové vlastnosti.
Další technikou pro zužování rozsahu sady výsledků dotazu je použití systémové vlastnosti __CLASS. Dotazy ve výchozím nastavení vrátí všechny instance zadané třídy a její podtřídy. Vlastnost systému __CLASS můžete použít k vyžádání pouze instancí zadané třídy s výjimkou jejích podtříd.
Následující příklad ukazuje, jak použít __CLASS systém vlastnost v klauzuli WHERE.
SELECT * FROM Device WHERE __CLASS = "Device"
Vlastnost __CLASS systému můžete také použít k omezení sady výsledků na instance konkrétních podtříd.
Následující příklad ukazuje, jak omezit sadu výsledků na instance konkrétních podtříd.
SELECT * FROM Device WHERE __CLASS = "Modem" OR __CLASS = "Keyboard"
Poznámka
Pokud vytvoříte dotaz s neplatnou cestou pro vložený objekt, dotaz nevrátí chybu ani žádné výsledky.
Následující příklad vrátí instanci MainClassza předpokladu, že instance MainClass existuje obsahující vložený objekt EmbedObj s vlastností P_Uint32, která se rovná "70011".
SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011
Následující příklad nevrací žádné výsledky a nevrací chybu za předpokladu, že vložený objekt EmbedObj v instanci MainClass nemá vlastnost INVALID.
SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011