Sdílet prostřednictvím


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