Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 

INDEX_CARDINALITY 함수

설명

INDEX_CARDINALITY 함수는 테이블에서 인덱스 카디널리티(cardinality)를 반환한다. 인덱스 카디널리티는 인덱스를 정의하는 고유한 값의 개수이다. 인덱스 카디널리티는 다중 칼럼 인덱스의 부분 키에 대해서도 적용할 수 있는데, 이때 세 번째 인자로 칼럼의 위치를 지정하여 부분 키에 대한 고유 값의 개수를 나타낸다.

리턴 값은 0 또는 양의 정수이며, 입력 인자 중 하나라도 NULL이면 NULL을 반환한다. 입력 인자인 테이블이나 인덱스가 발견되지 않거나 key_pos가 지정된 범위를 벗어나면 NULL을 리턴한다.

첫 번째와 두 번째 입력 인자인 테이블, 인덱스 이름은 NCHARVARNCHAR 타입으로 전달할 수 없다.

구문

INDEX_CARDINALITY(table, index, key_pos)

  • table : 테이블 이름
  • index : table 내에 존재하는 인덱스 이름
  • key_pos : 부분 키의 위치. key_pos는 0부터 시작하여 키를 구성하는 칼럼 개수보다 작은 범위를 갖는다. 즉, 첫 번째 칼럼의 key_pos는 0이다. 단일 칼럼 인덱스의 경우에는 0이다. 다음 타입 중 하나가 될 수 있다.
    • 숫자형 타입으로 변환할 수 있는 문자열. NCHARVARNCHAR는 지원하지 않는다.
    • 정수형으로 변환할 수 있는 숫자형 타입. FLOATDOUBLE 타입은 ROUND 함수로 변환한 값이 된다.
예제

CREATE TABLE t1( i1 INTEGER ,

i2 INTEGER not null,

i3 INTEGER unique,

s1 VARCHAR(10),

s2 VARCHAR(10),

s3 VARCHAR(10) UNIQUE);

                  

CREATE INDEX i_t1_i1 ON t1(i1 DESC);

CREATE INDEX i_t1_s1 ON t1(s1(7));

CREATE INDEX i_t1_i1_s1 on t1(i1,s1);

CREATE UNIQUE INDEX i_t1_i2_s2 ON t1(i2,s2);

 

INSERT INTO t1 VALUES (1,1,1,'abc','abc','abc');

INSERT INTO t1 VALUES (2,2,2,'zabc','zabc','zabc');

INSERT INTO t1 VALUES (2,3,3,'+abc','+abc','+abc');

 

SELECT INDEX_CARDINALITY('t1','i_t1_i1_s1',0);

   index_cardinality('t1', 'i_t1_i1_s1', 0)

===========================================

                                          2

 

SELECT INDEX_CARDINALITY('t1','i_t1_i1_s1',1);

   index_cardinality('t1', 'i_t1_i1_s1', 1)

===========================================

                                          3

 

SELECT INDEX_CARDINALITY('t1','i_t1_i1_s1',2);

   index_cardinality('t1', 'i_t1_i1_s1', 2)

===========================================

                                       NULL

 

SELECT INDEX_CARDINALITY('t123','i_t1_i1_s1',1);

  index_cardinality('t123', 'i_t1_i1_s1', 1)

=============================================

                                         NULL