오늘은 시스템 카탈로그 (딕셔너리 뷰)와 SQL에 대해 진행하겠습니다.
스키마 정보를 보관한 시스템 테이블
질의를 통한 스키마 정보 조회
테이블 정보 : db_class
- 주요 필드 : class_name, owner_name
컬럼 정보 : db_attribute
- 주요 필드 : class_name, attr_name, attr_type
기타
db_vclass (oracle의 view 개념)
db_index
db_index_key
db_trig (oracle의 trigger)
db_partition
db_stored_procedure (oracle의 dba_source)
db_auth (oracle의 dba_tab_privs)
명칭이 약간씩 다릅니다.
다음은 SQL 입니다. CURBID는 SQL-2 (SQL92) 표준을 사용하며,
예약어 사용시 “” 로 감싸주어야 합니다.
조건없는 수정 / 삭제 제한할 수 있는데, 실수를 많이 하는
1. where 절 없는 update, delete 수행 제한할 수 있으며,
2. 서비스 운영중 관리자 혹은 응용 실수로 인한 전체 데이터 수정, 삭제 제한을
통한 서비스 안정화가 가능합니다.
반영하는 방법은 CUBRID 설정화일(cubrid.conf) 상의 설정값 조정합니다
-> block_nowhere_statement=yes
이 후, CUBRID broker 재구동을 통한 설정 반영이 됩니다.
* 검색
sub-query 지원
where (a,b) in (select …)도 사용가능합니다.
* 연산자 (오라클과 동일)
=, <>, >=, <=
+, -, *, /, ||
* 집합 연산자
UNION, UNION ALL,
DIFFERENCE(오라클의 MINUS), INTERSECTION (오라클의 INTERSECT)
양쪽 select 절 필드 타입이 동일해야 합니다. (casting 필요)
- char union varchar => varchar
- int union numeric => numeric
* outer join
left outer, right outer join (오라클과 동일)
select … from class1 a left outer join class2 b on a.name = b.name
select … from class1 a, class2 b where a.name = b.name(+)
* group by
select a, to_char(d, ‘YYYY/MM/DD”), count(*) from my_table
group by a, to_char(d, ‘YYYY/MM/DD”)
* rownum
검색 결과 레코드에 대한 일련 번호 부여
order by, group by 실행 전에 rownum 부여
select rownum, id from emp where rownum between 11 and 20
select id from emp where rownum between 11 and 20 group by id
select id from emp where inst_num() between 11 and 20 group by id
select rownum, id from emp where rownum between 11 and 20 order by id
select orderby_num(), id from emp order by id for order by num() between 11 and 20
다음 시간에는 실습한 테스트 결과를 공유할게요~ 좋은 밤 되세요~!
출처 : CUBRID 교육 메뉴얼 (by. 진준호 2014.10.05)
'2. DBMS이야기 > 04. CUBRID' 카테고리의 다른 글
06. CUBRID 사용자, Database 파일, 백업 (0) | 2014.11.11 |
---|---|
05. CUBRID 기동과 정지 (0) | 2014.10.20 |
04. CUBRID의 카탈로그와 테이블 (0) | 2014.09.26 |
[CUBRID] SQL 타입별 비교 (CUBRID, MySQL, Oracle) (0) | 2014.09.23 |
03. CUBRID 저장구조와 데이터 타입 (0) | 2014.09.20 |