속성에 대한 정보를 표현하며 class_of, attr_name에 대한 인덱스가 생성되어 있다.
속성명 |
데이터 타입 |
설명 |
---|---|---|
class_of |
_db_class |
속성이 속한 클래스 |
attr_type |
INTEGER |
속성이 정의된 타입. 인스턴스 속성이면 0, 클래스 속성이면 1, 공유 속성이면 2 |
data_type |
INTEGER |
속성의 데이터 타입. 아래의 'CUBRID가 지원하는 데이터 타입' 표에서 명시하는 value 중 하나. |
def_order |
INTEGER |
속성이 클래스에 정의된 순서로 0부터 시작함. 상속받은 속성이면 그 상위 클래스에서 정의된 순서임. 예를 들어, 클래스 y가 클래스 x로부터 속성 a를 상속받고 a는 x에서 첫 번째로 정의되었을 때 def_order는 0이 됨. |
from_class_of |
_db_class |
상속받은 속성이면 그 속성이 정의되어 있는 상위 클래스가 설정되며, 상속받지 않은 것이면 NULL |
from_attr_name |
VARCHAR(255) |
상속받은 속성이며, 이름 충돌(name conflict)이 발생하여 이를 해결하기 위해 그 속성명이 바뀐 경우, 상위 클래스에 정의된 원래 이름이 설정됨. 그 이외에는 모두 NULL |
attr_name |
VARCHAR (255) |
속성명 |
default_value |
VARCHAR (255) |
기본값으로서 그 데이터 타입에 관계없이 모두 문자열로 저장. 기본값이 없으면 NULL, 기본값이 NULL이면 'NULL'로 표현됨. 데이터 타입이 객체 타입이면 ‘volume id | page id | slot id’, 집합 타입이면 ‘{element 1, element 2, …}’로 표현됨. |
domains |
SEQUENCE OF _db_domain |
데이터 타입에 대한 도메인 정보 |
is_nullable |
INTEGER |
not null 제약이 설정되어 있으면 0, 그렇지 않으면 1 |
CUBRID가 지원하는 데이터 타입
값 |
의미 |
값 |
의미 |
---|---|---|---|
1 |
INTEGER |
13 |
MONETARY |
2 |
FLOAT |
18 |
SHORT |
3 |
DOUBLE |
20 |
OID |
4 |
STRING |
22 |
NUMERIC |
5 |
OBJECT |
23 |
BIT |
6 |
SET |
24 |
VARBIT |
7 |
MULTISET |
25 |
CHAR |
8 |
SEQUENCE |
26 |
NCHAR |
9 |
ELO |
27 |
VARNCHAR |
10 |
TIME |
31 |
BIGINT |
11 |
TIMESTAMP |
32 |
DATETIME |
12 |
DATE |
33 |
BLOB |
|
|
34 |
CLOB |
CUBRID가 지원하는 문자 세트
값 |
의미 |
---|---|
0 |
US English - ASCII encoding |
3 |
Latin 1 - ISO 8859 encoding |
4 |
KSC 5601 1990 - EUC encoding |
다음 예제에서는 사용자 'PUBLIC'이 소유하고 있는 클래스 중에서 사용자 클래스(from_class_of.is_system_class = 0)인 것을 검색한다.
SELECT class_of.class_name, attr_name
FROM _db_attribute
WHERE class_of.owner.name = 'PUBLIC' AND FROM _class_of.is_system_class = 0
ORDER BY 1, def_order;
class_of.class_name attr_name
============================================
'female_event' 'code'
'female_event' 'sports'
'female_event' 'name'
'female_event' 'gender'
'female_event' 'players'