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


Инструкция 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 существует, содержащий внедренный объект EmbeddedObj со свойством P_Uint32 равным "70011".

SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011

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

SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011