다음을 통해 공유


데이터 쿼리에 대한 SELECT 문

다양한 SELECT 문을 사용하여 정보를 쿼리할 수 있습니다. 문은 기본 문이거나 쿼리에서 반환되는 결과 집합의 범위를 좁히기 위해 더 제한적일 수 있습니다.

다음 예제는 데이터를 쿼리하는 데 사용되는 기본 SELECT 문입니다.

SELECT * FROM Class

이 문은 지정된 클래스의 인스턴스와 해당 서브클래스의 인스턴스를 반환합니다. 클래스에 대한 모든 시스템 및 사용자 정의 속성이 포함됩니다. 시스템 속성이 특정 쿼리와 관련이 없는 경우 NULL을 포함합니다.

쿼리를 실행하면 오버헤드가 너무 많고 사용자가 속성의 하위 집합에만 관심이 있는 경우 여러 가지 기술을 사용하여 결과 집합을 검색하는 데 필요한 대역폭을 줄일 수 있습니다. 먼저 쿼리는 별표를 원하는 속성으로 바꿀 수 있습니다.

다음 예제에서는 특정 값을 쿼리하는 방법을 보여 줍니다.

SELECT property_1, property_2, property_3 FROM class

결과 집합에는 모든 시스템 속성과 지정된 비시스템 속성이 포함됩니다.

쿼리 결과 집합의 범위를 좁히는 또 다른 방법은 __CLASS 시스템 속성을 사용하는 것입니다. 기본적으로 쿼리는 지정된 클래스 및 해당 서브클래스의 모든 인스턴스를 반환합니다. __CLASS 시스템 속성을 사용하여 해당 서브클래스를 제외한 지정된 클래스의 인스턴스만 요청할 수 있습니다.

다음 예제에서는 WHERE 절에서 __CLASS 시스템 속성을 사용하는 방법을 보여 줍니다.

SELECT * FROM Device WHERE __CLASS = "Device"

__CLASS 시스템 속성을 사용하여 결과 집합을 특정 서브클래스의 인스턴스로 제한할 수도 있습니다.

다음 예제에서는 결과 집합을 특정 서브클래스의 인스턴스로 제한하는 방법을 보여 줍니다.

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

참고

포함된 개체에 대한 잘못된 경로로 쿼리를 생성하는 경우 쿼리는 오류 또는 결과를 반환하지 않습니다.

 

다음 예제에서는 “70011”과 같은 속성 P_Uint32 포함된 개체 EmbedObj를 포함하는 MainClass 인스턴스가 있다고 가정하여 MainClass 인스턴스를 반환합니다.

SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011

다음 예제에서는 MainClass 인스턴스의 포함된 개체 EmbedObjINVALID 속성이 없다고 가정하여 결과를 반환하지 않고 오류를 반환하지 않습니다.

SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011