Поделиться через


Инструкция SELECT для запросов данных

Для запроса информации можно использовать различные инструкции SELECT. Инструкции могут быть базовыми или более строгими, чтобы сузить результирующий набор, возвращаемый из запроса.

В следующем примере показана базовая инструкция SELECT, которая используется для запроса данных.

SELECT * FROM Class

Эта инструкция возвращает экземпляры указанного класса и любой из его подклассов. Включены все системные и пользовательские свойства классов. Если системное свойство не относится к конкретному запросу, оно содержит значение NULL.

Вы можете использовать несколько методов, чтобы уменьшить пропускную способность, необходимую для получения результирующих наборов, если выполнение запроса приводит к слишком большим издержкам и пользователя интересует только подмножество свойств. Во-первых, запросы могут заменить звездочку нужными свойствами.

В следующем примере показано, как запрашивать определенные свойства.

SELECT property_1, property_2, property_3 FROM class

Результирующий набор включает все системные и указанные несистемные свойства.

Другим способом сужения область результирующих наборов запроса является использование системного свойства __CLASS. Запросы по умолчанию возвращают все экземпляры указанного класса и его подклассы. Системное свойство __CLASS можно использовать для запроса только экземпляров указанного класса, за исключением его подклассов.

В следующем примере показано, как использовать системное свойство __CLASS в предложении WHERE.

SELECT * FROM Device WHERE __CLASS = "Device"

Можно также использовать системное свойство __CLASS , чтобы ограничить результирующий набор экземплярами определенных подклассов.

В следующем примере показано, как ограничить результирующий набор экземплярами определенных подклассов.

SELECT * FROM Device WHERE __CLASS = "Modem" OR __CLASS = "Keyboard"

Примечание

Если вы создаете запрос с недопустимым путем для внедренного объекта, запрос не возвращает ошибку или какие-либо результаты.

 

В следующем примере возвращается экземпляр MainClass, при условии, что существует экземпляр MainClass , содержащий внедренный объект EmbedObj со свойством P_Uint32 , равным "70011".

SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011

В следующем примере не возвращаются результаты и не возвращается ошибка, предполагая, что внедренный объект EmbedObj в экземпляре MainClass не имеет свойства INVALID.

SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011