[Oracle] start with connect by prior 사용하여 상하 관계 데이터 처리하기

Published on: 2013. 11. 14. 16:18 by louis.dev
오라클에서 데이터를 저장하다 보면 한 테이블 내에 부모 자식 관계(상하위 관계)로 표현하는 데이터가 발생될 때가 있다. 예를 들어
게시판 ↳ 공지사항 게시판 ↳ 사용자 게시판
와 같이 메뉴를 저장하는 테이블이 있다면 상위 게시판이라는 메뉴는 하위에 공지사항 게시판 메뉴, 사용자 게시판 메뉴를 하위로 가진다면, 데이터 구조는 다음과 같이 생성될 것이다.
MENUID NAME URL PARENTMENUID
1 공지사항 게시판 /notice.html 2
2 게시판 /index.html null
3 사용자 게시판 /user.html 2
만약 쿼리를 상위 메뉴 데이터를 먼저 나오게 하고 그 뒤에 하위 메뉴들을 나오게 하려면 어떻게 해야할까? 이때 Oracle에서는 start with, connect by prior를 사용하여 데이터를 셀렉트 할수 있다.
SELECT
	menuid, name, url, parentmenuid
FROM menu
START WITH parentmenuid is null	/*상위(부모)의 조건을 명시*/
CONNECT BY PRIOR menuid = parentmenuid	/*상위의 키와 하위의 키를 열결시킴*/
ORDER SIBLINGS BY menuid ASC;	/*하위데이터 정렬 조건*/
이렇게 쿼리를 사용하게 되면 다음과 같이 셀렉팅이 된다.
MENUID NAME URL PARENTMENUID
2 게시판 /index.html null
1 공지사항 게시판 /notice.html 2
3 사용자 게시판 /user.html 2

MongoDB 설치하기(CentOS 5 64bit)

Published on: 2011. 11. 19. 01:13 by louis.dev

1. MongoDB 공식 홈페이지에서 설치하려고 하는 OS의 버전에 따라 다운로드 한다.
#db 데이터가 저장될 디렉토리 생성 mongodb의 default는 /data/db 디렉토리이다.
$ mkdir -p /data/db
$ cd /data
$ wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.1.tgz
$ chown ${사용자명}:${사용자그룹명} mongodb-linux-x86_64-2.0.1.tgz

$ tar xvf mongodb-linux-x86_64-2.0.1.tgz
#mongodb 시작
$ ./mongodb-linux-x86_64-2.0.1/bin/mongod &

$ ps -ef |grep mongod
root      2746  2577  0 01:12 pts/0    00:00:00 ./mongodb-linux-x86_64-2.0.1/bin/mongod
root      2759  2577  0 01:13 pts/0    00:00:00 grep mongod

MySQL - MySql 5.5 설치

Published on: 2011. 4. 20. 15:24 by louis.dev

'DB > MYSQL' 카테고리의 다른 글

MySql - Version 확인  (0) 2010.08.31
MYSQL - DB생성 & 사용자 접근 권한 설정  (0) 2010.08.18
MYSQL 초기 root 비밀번호 설정  (0) 2010.08.18

MySql - Version 확인

Published on: 2010. 8. 31. 17:59 by louis.dev
보통 리눅스의 /usr/local 에 설치 되어있으며
mysql안의 lib/안에

mysql --version

으로 확인할 수 있다.

'DB > MYSQL' 카테고리의 다른 글

MySQL - MySql 5.5 설치  (0) 2011.04.20
MYSQL - DB생성 & 사용자 접근 권한 설정  (0) 2010.08.18
MYSQL 초기 root 비밀번호 설정  (0) 2010.08.18

MYSQL - DB생성 & 사용자 접근 권한 설정

Published on: 2010. 8. 18. 10:39 by louis.dev

CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

GRANT ALL PRIVILEGES ON db_name.db_table TO 'user_name'@'%' IDENTIFIED BY 'passwd' WITH GRANT OPTION;

FLUSH PRIVILEGES;

db_name : 접근가능한 db이름
db_table : 접근가능한 db안의 테이블 이름
보통 *.* (모든DB의 모든 테이블에 접근 허용)
db_name.* (선택된 DB의 모든 테이블 접근 허용)
으로 설정.
@뒤 '%' 는 ip체크 하지 않음->즉 모든 ip를 허용, 일정한 아이피에서 들어오는 아이디만 접근을 허용하고 싶다면, localhost, ip 주소등을 적어 주면 된다.

'DB > MYSQL' 카테고리의 다른 글

MySQL - MySql 5.5 설치  (0) 2011.04.20
MySql - Version 확인  (0) 2010.08.31
MYSQL 초기 root 비밀번호 설정  (0) 2010.08.18