Compartir a través de


Instrucción SELECT para consultas de datos

Puede usar una variedad de instrucciones SELECT para consultar información. Las instrucciones pueden ser instrucciones básicas o pueden ser más restrictivas para restringir el conjunto de resultados que se devuelve de la consulta.

El ejemplo siguiente es una instrucción SELECT básica que se usa para consultar datos.

SELECT * FROM Class

Esta instrucción devuelve instancias de la clase especificada y cualquiera de sus subclases. Se incluyen todas las propiedades definidas por el sistema y definidas por el usuario para las clases. Si una propiedad del sistema no es relevante para una consulta determinada, contiene NULL.

Puede usar varias técnicas para reducir el ancho de banda necesario para recuperar el conjunto de resultados, si la ejecución de la consulta genera demasiada sobrecarga y el usuario solo está interesado en un subconjunto de las propiedades. En primer lugar, las consultas pueden reemplazar el asterisco por las propiedades deseadas.

En el ejemplo siguiente se muestra cómo consultar propiedades específicas.

SELECT property_1, property_2, property_3 FROM class

El conjunto de resultados incluye todas las propiedades del sistema y las propiedades no del sistema especificadas.

Otra técnica para restringir el ámbito del conjunto de resultados de una consulta consiste en usar la propiedad del sistema __CLASS. De manera predeterminada, las consultas devuelven todas las instancias de la clase especificada y sus subclases. Puede usar la propiedad del sistema __CLASS para solicitar solo instancias de la clase especificada, sin incluir sus subclases.

En el ejemplo siguiente se muestra cómo usar la propiedad del sistema __CLASS en una cláusula WHERE.

SELECT * FROM Device WHERE __CLASS = "Device"

También puede usar la propiedad del sistema __CLASS para restringir el conjunto de resultados a instancias de subclases concretas.

En el ejemplo siguiente se muestra cómo restringir el conjunto de resultados a instancias de subclases concretas.

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

Nota

Si crea una consulta con una ruta de acceso no válida para un objeto incrustado, la consulta no devuelve un error ni ningún resultado.

 

En el ejemplo siguiente se devuelve una instancia de MainClass, suponiendo que existe una instancia de MainClass que contiene el objeto incrustado EmbedObj con una propiedad P_Uint32 que es igual a "70011".

SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011

En el ejemplo siguiente no se devuelve ningún resultado ni un error, suponiendo que el objeto incrustado EmbedObj en la instancia de MainClass no tiene una propiedad INVALID.

SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011