Instruction SELECT pour les requêtes de données
Vous pouvez utiliser diverses instructions SELECT pour interroger des informations. Les instructions peuvent être des instructions de base ou être plus restrictives pour restreindre le jeu de résultats retourné par la requête.
L’exemple suivant est une instruction SELECT de base utilisée pour interroger des données.
SELECT * FROM Class
Cette instruction retourne les instances de la classe spécifiée et l’une de ses sous-classes. Toutes les propriétés système et définies par l’utilisateur pour les classes sont incluses. Si une propriété système n’est pas pertinente pour une requête particulière, elle contient NULL.
Vous pouvez utiliser plusieurs techniques pour réduire la bande passante requise pour récupérer le jeu de résultats, si l’exécution de la requête entraîne une surcharge trop importante et si l’utilisateur n’est intéressé que par un sous-ensemble des propriétés. Tout d’abord, les requêtes peuvent remplacer l’astérisque par les propriétés souhaitées.
L’exemple suivant montre comment interroger des propriétés spécifiques.
SELECT property_1, property_2, property_3 FROM class
Le jeu de résultats inclut toutes les propriétés système et les propriétés non système spécifiées.
Une autre technique permettant de réduire l’étendue du jeu de résultats d’une requête consiste à utiliser la propriété système __CLASS. Les requêtes retournent par défaut toutes les instances de la classe spécifiée et de ses sous-classes. Vous pouvez utiliser la propriété système __CLASS pour demander uniquement les instances de la classe spécifiée, à l’exclusion de ses sous-classes.
L’exemple suivant montre comment utiliser la propriété système __CLASS dans une clause WHERE.
SELECT * FROM Device WHERE __CLASS = "Device"
Vous pouvez également utiliser la propriété système __CLASS pour restreindre le jeu de résultats aux instances de sous-classes particulières.
L’exemple suivant montre comment restreindre le jeu de résultats aux instances de sous-classes particulières.
SELECT * FROM Device WHERE __CLASS = "Modem" OR __CLASS = "Keyboard"
Notes
Si vous construisez une requête avec un chemin d’accès non valide pour un objet incorporé, votre requête ne retourne pas d’erreur ni de résultats.
L'exemple suivant renvoie une instance de MainClass, en supposant qu'il existe une instance de MainClass contenant l'objet incorporé EmbedObj dont la propriété P_Uint32 est égale à "70011".
SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011
L'exemple suivant ne renvoie aucun résultat ni aucune erreur, en supposant que l'objet incorporé EmbedObj dans l'instance de MainClass ne possède pas de propriété INVALID.
SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011