SELECT 결과 중 몇개만 가져오기
order by, group by 를 사용하지 않는 경우
select * from 테이블명 rownum = 3
select * from 테이블명 rownum between 10 and 20
-
order by 사용
select * from 테이블명 order by 컬럼명 for orderby_num() between 11 and 20
-
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)
'dev > db' 카테고리의 다른 글
Mysql InnoDB 성능 개선(innodb_flush_log_at_trx_commit) (0) | 2014.06.11 |
---|---|
선택한 row 를 기준으로 위, 아래로 row 가져오기 (0) | 2009.03.19 |
Mysql 랜덤으로 row 가져오기 (0) | 2009.03.04 |
ibatis Built-In type Alias definitons (0) | 2009.02.27 |