CREATE TABLE "test"(
"aa1" character varying(11),
"aa2" character varying(12) NOT NULL UNIQUE,
"aa3" tbl_user_type_code NOT NULL,
CONSTRAINT pk_test_aa1 PRIMARY KEY("aa1")
);
이게 정상적인 동작인가요?
타입 데이터 저장방식을 생각하다가 만들어봤는데
동작을 해서 테이블이 생성이 되긴 했습니다.
그런데 이 테이블에 inset가 안되서 한참 고민했는데... 메뉴얼이나 인터넷 찾아봐도 관련 내용이 안 보입니다.
이거 crud 구문 어떻게 해야할지 좀 알려주세요.
안녕하세요. 질문 감사 드립니다.
CUBRID는 객체형을 지원하는 관계형 데이터베이스이기 때문에 사용자 정의 데이터타입 뿐만 아니라 상속, 집합형 데이터 타입등도 지원하고 있습니다.
사용자 정의 타입 사용 방법 관련 예제를 다음과 같이 정리하였으니 참고하시면 될 것 같습니다.
[create]
- person 클래스의 데이터를 사용자 정의 타입으로 사용하는 테이블 student를 생성합니다.
create class person(name char(1), phone varchar(15));
create table student(bunho int, student_info person);
[insert]
- 입력되어있는 person 데이터를 이용하여 student 테이블에 입력하는 방법과, student, person각각의 테이블에 새로운 데이터를 입력하는 방법입니다.
Case 1: insert into person(name, phone) values(‘A’, ‘111-1111-1111’);
Insert into student (bunho, student_info) values(1, select person from person where name=’A’);
Case 2: insert into student (bunho, info) values (2, (insert into person(name, phone) values(‘C’, ‘222-2222-2222’)));
[select]
- person 테이블을 포함한 student 테이블을 검색하는 방법입니다.
Select bunho, student_info.name, student_info.phone from student;
[update]
- student 테이블의 student_info 컬럼을 변경하기 위해서는 person 테이블의 데이터만 변경하면 됩니다.
Update person set name=’B’ where name=’C’
기존
Bunho student_info.name student_info.phone
================================================
1 'A' ‘111-1111-1111’
2 'C' ‘222-2222-2222’
변경 후
Bunho student_info.name student_info.phone
================================================
1 'A' ‘111-1111-1111’
2 'B' ‘222-2222-2222’
추가적으로 클래스 상속과 집합형 데이터 타입에 대해서는 다음 링크를 참고하시면 될 것 같습니다.
클래스 상속 : http://www.cubrid.org/manual/ko/8.4.4/sql/oodb.html
집합형 데이터 타입 : http://www.cubrid.org/manual/ko/8.4.4/sql/datatype.html#collection-data-type