본문 바로가기
dev/db

CUBRID SQL 정리

by igooo 2010. 7. 28.
728x90
SELECT 결과 중 몇개만 가져오기
  1. order by, group by 를 사용하지 않는 경우

    select * from 테이블명 rownum = 3

    select * from 테이블명 rownum between 10 and 20

     

  2. order by 사용

    select * from 테이블명 order by 컬럼명 for orderby_num() between 11 and 20

     

  3. group by 사용

    select * from 테이블명 group by 컬럼명 for groupby_num() between 11 and 20

 

 

pivot() 구현하기

CUBRID Object 개념의 set을 이용하여 구현한다.

select class_name, list(select attr_name from db_attribute a where a.class_name = c.class_name) from db_class c

 

 

자동증가 속성

create table bbs (

bbs_no int auto_increment,

bbs_title char(10)

)

 

 

컬럼 사이즈 변경

테이블의 name컬럼이 char(5)로 되어있을때 char(10)으로 변경

1. 새로운 컬럼 생성

=> alter class 테이블명 add new_name char(10)

2. 기존의 컬럼 값 복사

=> update 테이블명 set new_name = name

3. 기존 컬럼 삭제

=> alter class 테이블명 drop name

4. 새컬럼명 변경

=> alter class 테이블명 rename new_name as name

 

 

Tip

전체 건수 조회 시 primary key 혹은 unique index를 시용하여 처리 할 수 있도록 관련 인덱스에 대한 조건 추가

select count(*) from bbs where bbs_no > 0

 

게시판 목록과 같은 조회시 oder by desc 처리

select * from bbs where bbs_no > 0 using index r_no(+)

select * from bbs where bbs_no > 0 and rownum between 11 and 20 using index r_no(+)

 

게시글 조회시 조회건 수 자동 증가시키기

select bb_title, bbs_content, incr(bbs_cnt) bbs_cnt from bbs where bbs_no=1;

 

create table bbs (
   bbs_no int auto_increment,
   bbs_title varchar(100),
   bbs_content varchar(500),
   bbs_cnt int,
   constraint pk_no primary key(bbs_no)
)
create index r_no on bbs(bbs_no desc)
-- create reverse index r_no on bbs(bbs_no)