본문 바로가기

Dev. Database

(58)
[펌] 오라클 (Oracle) 11g 를 위한 토드(Toad) 무료 버전 다운받기 프로젝트중에 제일 많이 사용했던 DB 유틸은Toad 였습니다.많이 사용하다 보면 UI 에 익숙해지기 때문에 사용하기가편리해 집니다.. 그러다 보니 더 많이 사용하게 되고 꼭 그게 있어야프로젝트 하기 편합니다. 예전에는 무료버전이 없어서 크랙한 프로그램을 사용하거나Keygen 을 다운받아 key 를 입력해서 사용했습니다. 그러다 보니바이러스 프로그램에 걸리거나 해킹으로 이용되는 경우가많았습니다 그런데 무료버전이 있다는 걸 알고 다운받아 사용해 보기로했습니다. www.toadworld.com 으로 접속합니다. 그리고 다운로드 탭으로 갑니다. DOWNLOAD 아래 our freeware 가 있는 것을보니 이제 모든 프로그램이 무료인가 봅니다. 리스트에서 Oracle 용 64bit프로그램을 다운받습니다. 다운받..
SIGN 함수 오라클에는 SIGN이라는 함수가 있다.이게 무슨함수 일까 알아보았더니....원하는 결과값(?!)이 양수 / 음수 / 0 이냐에 따라서 값을 반환해주는 함수이다. 그럼 간단한 예제를 보자. SELECT LEC_ID, LEC_TIME, LEC_POINT, DECODE(SIGN(LEC_TIME-LEC_POINT), 0, '일반과목', 1, '실험과목', -1, '기타과목')FROM LECTURE; 이와 같이, SING 값에따라 일반과목/실험과목/기타과목을 반환한다.
ROWNJUM을 조건으로 사용할 때 ROWNUM을 조건에서 사용할 때는 항상
자기보다 작은 값 중 최대값 읽어오기 자기보다 작은 값 중 최대값을 읽어오려면 어떻게 해야 할까? 우선 생각나는 것은 셀프조인과 부등호 조인이다. 셀프 조인을 이용하여서 동일한 테이블에의 같은 값을 조회할 수 있을 것이고, 부등호 조인을 이용하여 조회된 값의 비교가 가능할 것이다. 자신의 사번보다 한 단계 빠른 직원의 사번과 성명을 조회하는 쿼리 (테이블 1개) 일자별 환산금액 조회 쿼리 (테이블 2개)
누계값 구하기 - 부등호 조인의 이용 데이터베이스를 관리하다 보면 COLUMN의 값과 함께 그 상위값들의 누계를 보고자 하는 경우가 발생한다.예를 들어 이런 식으로 말이다. 이러한 경우에는 쿼리문을 어떻게 작성해야 할까?여러가지 방법이 있겠지만, 오늘 소개하고자 하는 것은 부등호 조인을 이용하는 것이다.부등호 조인이란 말 그대로 테이블 간의 조인에 부등호를 사용하는 것이다. 위와 같이, 셀프 조인을 한 상태에서 부등호 조인을 조건으로 주면 다음과 같은 결과를 얻을 수 있다.
[오라클] OPTIMIZER 개요 및 구조 1. 개요 및 구조 옵티마이저(Optimizer)는 SQL을 가장 빠르고 효율적으로 수행할 최적(최저비용)의 처리경로를 생성해 주는 DBMS 내부의 핵심엔진이다. 사용자가 구조화된 질의언어(SQL)로 결과집합을 요구하면, 이를 생성하는데 필요한 처리경로는 DBMS에 내장된 옵티마이저가 자동으로 생성해준다. 옵티마이저가 생성한 SQL 처리경로를 실행계획(Execution Plan)이라고 부른다. 옵티마이저의 SQL 최적화 과정을 요약하면 다음과 같다.- 사용자가 던진 쿼리수행을 위해, 후보군이 될만한 실행계획을 찾는다.- 데이터 딕셔너리(Data Dictionary)에 미리 수집해 놓은 오브젝트 통계 및 시스템 통계정보를 이용해 각 실행계획의 예상비용을 산정한다.- 각 실행계획을 비교해서 최저비용을 갖는 ..
[오라클] 테이블 구조(스키마) 확인 오라클에서 테이블 구조(스키마)를 확인하는 방법에는 두 가지가 있다. 이 두 쿼리는 그냥 보기에는 사실 별 차이가 없다.WHERE 절이 TANME 이냐? TABLE_NAME 이냐? 하지만 결과도 별 차이가 없을까? - 첫번째 쿼리 결과 -- 두번째 쿼리 결과 - 사실 필자도 지금까지는 두 쿼리가 같은 결과를 도출한다고 생각해 왔는데... 오라클한테 제대로 한 방 먹은 기분이다 ㅋㅋ
CASE WHEN ~ THEN ~ ELSE END DECODE 문이 IF문이라면, CASE문은 SWITCH 문이다. [형식] CASE 컬럼명 | 표현식 WHEN 조건식1 THEN 결과1 WHEN 조건식2 THEN 결과2 ....... WHEN 조건식n THEN 결과n ELSE 결과 END [예제] SELECT CASE WHEN SALARY 70000000 THEN 'A' END AS SALARY, COUNT(*) AS CNTFROM TEMPGROUP BYCASE WHEN SALARY 70000000 THEN 'A' ENDORDER BY SALARY ASC ;