본문 바로가기

db

ROW_NUMBER() OVER() 학원에서 배웠던 오라클 DB 중 마지막으로 배웠던 내용이다. 분석함수 중의 하나로 테이블에 있는 데이터를 특정 용도로 분석하여 결과를 반환하는 함수다. ROW_NUMBER( ) OVER( )는 ROWNUM이랑 비슷하다. *항상 같이 해왔던 testboard를 예시 테이블로 들었다. --기본 형식 ROW_NUMBER() OVER([PARTITION BY 컬럼] ORDER BY COLUMN) --[그룹으로 묶어서 그 그룹 내에] COLOMN 기준으로 정렬한 후 번호를 매기는 함수 --그룹을 설정해서 그룹내 멤버(같은 그룹의 행의 갯수)가 2 이상인 경우 COLUMN 기준으로 번호를 매긴다. *대괄호로 묶여있는 부분은 선택사항이다. 그룹으로 묶는다는 것은 컬럼의 같은 값들끼리로 묶는다는 의미다. -- 사용 예.. 더보기
UNION 이번 시간엔 UNION만 알아보겠다. 서브쿼리와 비교해서 보면 되겠다. 서브쿼리에 대한 내용은 따로 글을 작성해놨으니 한번 보고 오면 좋다. 우선 서브쿼리는 쿼리문은 동시에 두 개를 작성하는 것이라고 했었다. (↓서브쿼리) 위의 쿼리문은 age를 대신할 쿼리문을 작성한 것이다. 즉, 쿼리문 안의 쿼리문이라고 볼 수 있다. UNION은 서브쿼리와 다르게 '쿼리 + 쿼리'의 형식이다. +부분에 UNION이 들어가면 된다. TEST테이블에서 나이가 가장 많은 사람의 나이와 가장 적은 사람의 나이를 출력하는 명령을 내려보겠다. 이제 UNION문을 서브쿼리와 함께 간단하게 응용해보겠다. 나이가 가장 많은 사람의 나이와 가장 적은 사람의 나이의 합을 구해보자. 일부러 별칭을 age라고 지어서 약간 헷갈리게 했지만,.. 더보기
DECODE, NVL, CASE 이번엔 다양한 구문을 소개하겠다. Java의 if문과 비슷한것이 있으니 편하게 보면 되겠다. 1. DECODE( ) 함수 if 대신에 DECODE로 생각하면 되고, 괄호안에 경우에 대한 값들을 작성하면 된다. DECODE( )함수는 경우를 어떻게 두냐에 따라 사용법이 달라진다. 첫번째 방법은 경우를 두 가지로 나누는 방법이다. 두번째 방법은 경우를 세 가지로 나타내는 방법이다. 2. NVL( ) 함수 NVL( ) 함수는 컬럼의 값이 NULL 인경우에 대해서만 사용하는 조건문이다. NULL인 값을 표현할 때 그대로 노출시키지 않고 다르게 표현한다고 보면 된다. 마찬가지로 두 가지 방법이 있다. DECODE( ) 함수와 굉장히 유사하지만, 약간 다르니 주의해서 보면 되겠다. 3. CASE 기능은 DECODE.. 더보기
WHERE 절, ORDER BY *편집기는 SQLGate으로 진행합니다. 이전에 DML글에서 WHERE 절을 이용했었다. 그것에 대해 좀더 알아보고, 다른 것도 알아보자. 이번엔 DML구문인 SELCET 명령어에 살을 덧 붙이는 쿼리문을 작성해보겠다. SELCET 명령어로 단순하게 조회하는 것을 넘어, 조건을 걸어 특정 컬럼 값만 조회하자는 것이다. DML글을 아주 가볍게 읽고 오는것을 추천한다. 1. WHERE 절 WHERE 절을 사용하는 방법은 여러가지가 있지만 OR, AND, BETWEEN a AND b, IN함수, SUBSTR, LIKE 정도로 이미지와 함께 간략하게 소개하겠다. 1-1. OR, AND, BETWEEN a AND b 각각의 의미는 영어의 그것과 같기 때문에 어렵지 않게 보면 되겠다. 2번째 줄의 AND구문을 이용.. 더보기