Compartilhar via


Instrução SELECT em consultas de dados

Você pode usar uma variedade de instruções SELECT para consultar informações. As instruções podem ser instruções básicas ou podem ser mais restritivas para restringir o conjunto de resultados retornado da consulta.

O exemplo a seguir é uma instrução SELECT básica usada para consultar dados.

SELECT * FROM Class

Essa instrução retorna instâncias da classe especificada e qualquer uma de suas subclasses. Todas as propriedades definidas pelo sistema e pelo usuário para as classes são incluídas. Se uma propriedade do sistema não for relevante para uma consulta específica, ela conterá NULL.

Você pode usar várias técnicas para reduzir a largura de banda necessária para recuperar o conjunto de resultados, se a execução da consulta resultar em muita sobrecarga e o usuário estiver interessado apenas em um subconjunto das propriedades. Primeiro, as consultas podem substituir o asterisco pelas propriedades desejadas.

O exemplo a seguir mostra como consultar propriedades específicas.

SELECT property_1, property_2, property_3 FROM class

O conjunto de resultados inclui todas as propriedades do sistema e as propriedades especificadas que não são do sistema.

Outra técnica para restringir o escopo do conjunto de resultados de uma consulta é usar a propriedade do sistema __CLASS. Por padrão, as consultas retornam todas as instâncias da classe especificada e suas subclasses. Você pode usar a propriedade do sistema __CLASS para solicitar apenas instâncias da classe especificada, excluindo suas subclasses.

O exemplo a seguir mostra como usar a propriedade do sistema __CLASS em uma cláusula WHERE.

SELECT * FROM Device WHERE __CLASS = "Device"

Você também pode usar a propriedade do sistema __CLASS para restringir o conjunto de resultados a instâncias de subclasses específicas.

O exemplo a seguir mostra como restringir o conjunto de resultados a instâncias de subclasses específicas.

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

Observação

Se você construir uma consulta com um caminho inválido para um objeto inserido, sua consulta não retornará um erro nem nenhum resultado.

 

O exemplo a seguir retorna uma instância de MainClass, supondo que exista uma instância de MainClass contendo o objeto inserido EmbedObj com uma propriedade P_Uint32 igual a "70011".

SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011

O exemplo a seguir não retorna nenhum resultado e não retorna um erro, supondo que o objeto inserido EmbedObj na instância de MainClass não tenha uma propriedade INVALID.

SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011