Инструкция 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