본문 바로가기

반응형

분류 전체보기

(140)
[ORACLE] 계층 쿼리 (START WITH CONNECT BY) 계층 쿼리(hierarchical query) 계층 쿼리는 상하관계(부모-자식)의 트리 형식 구조이다. 기본 문법은 START WITH... CONNECT BY 형식이다. 계층 쿼리 작성 방법 SELECT 컬럼명 FROM 테이블명 WHERE 조건절 START WITH 부모조건(루트조건) CONNECT BY 부모(루트)와 자식(하위) 연결 조건; 예시쿼리 테이블이 아래와 같은 계층 구조로 이루어져 있다고 가정하자. 아래의 쿼리는 DEPT라는 가상의 테이블이 있다는 가정하에 작성되었다. ▶ DEPT 테이블 CD PARENT_CD DEP_NAME PRS NULL 대표이사 VPRS PRS 부사장 WEB VPRS 웹개발팀 AT WEB A사업 BT WEB B사업 CT WEB C사업 APP VPRS 앱개발팀 ANDT..
[ORACLE] MERGE MERGE문 두 개의 테이블을 특정 조건으로 조인할 때 성공하는 경우 UPDATE절, 실패하는 경우 INSERT 절을 실행 MERGE문 작성 방법 MERGE INTO 갱신 또는 삽입할 테이블명 USING 갱신 또는 삽입 기준에 이용하는 테이블명 ON (조건) WHEN MATCHED THEN UPDATE SET 컬럼1 = 값1, 컬럼2 = 값2 WHERE 조건문 WHEN NOT MATCHED THEN INSERT ( 컬럼1, 컬럼2, 컬럼3 ) VALUES ( 값1, 값2, 값3 ); 예시쿼리 아래의 쿼리는 MEMBER_PREMIUM, MEMBER라는 두 테이블이 있다고 가정하고 작성되었다. ▶ MEMBER_PREMIUM MEMBER_CODE MEMBER_NAME GRADE 1 김자바 4 2 이디비 1 3..
[ORACLE] FUNCTION(함수) 만들기 및 사용하기 FUNCTION(함수) 만들기 및 사용하기 ▶ 함수 생성 방법 CREATE OR replace FUNCTION 함수이름(파라미터) RETURN 리턴타입 IS 변수선언; BEGIN 쿼리문(값) RETURN 리턴값; END 함수이름; --결과물은 리턴값 ▶ 함수 사용 방법 SELECT 함수이름(파라미터) FROM DUAL; ▶ 응용 예시 아래의 함수는 P_CODE라는 파라미터로 코드를 받아서 P_CODE와 LIST라는 테이블에 있는 CODE가 일치하는 것을 조회하여 LIST라는 테이블의 CODE에 해당하는 NAME이라는 값을 V_RETURN에 삽입하고 V_RETURN의 값을 반환해주는 함수를 생성한 것이다. CREATE OR REPLACE FUNCTION GET_NAME ( P_CODE IN VARCHAR2..
[ORACLE] INSERT, DELETE, UPDATE INSERT ▶ 기능 특정 테이블에 데이터를 추가 ▶ 사용방법 --해당 테이블의 모든 값을 입력 후 삽입 INSERT INTO 테이블명 VALUES(값1, 값2, ...); --해당 테이블의 특정 값을 입력 후 삽입 INSERT INTO 테이블명(열1, 열2, ...) VALUES(값1, 값2, ...); ▶ 예시 아래의 쿼리문은 STUDENT라는 테이블에 STUD_NUM, NAME...이라는 칼럼이 있다는 가정하에 작성되었다. INSERT INTO STUDENT VALUES(1, '김자바', ...); INSERT INTO STUDENT(STUD_NUM, NAME, ...) VALUES(1, '김자바', ...); DELETE ▶ 기능 특정 테이블의 데이터를 삭제 ▶ 사용방법 --해당 테이블의 모든 데..
[ORACLE] TO_CHAR, TO_DATE, TO_NUMBER TO_CHAR 함수 ▶ 사용방법 SELECT TO_CHAR(칼럼명) FROM (테이블명) SELECT TO_CHAR(컬럼명, 포맷 설정) FROM (테이블명) ▶ 예시 아래의 쿼리는 MEMBER라는 테이블에 USER_NUM, JOIN_DATE라는 칼럼이 있다는 가정하에 작성되었다. --숫자를 문자로 SELECT TO_CHAR(12345) FROM DUAL; --날짜를 문자로 SELECT TO_CHAR(USER_NUM) FROM MEMBER; --날짜를 포맷형을 지정한 문자로 SELECT TO_CHAR(JOIN_DATE, 'YYYY-MM-DD') FROM MEMBER; TO_NUMBER 함수 ▶ 사용방법 SELECT TO_NUMBER(컬럼명) FROM (테이블명) ▶ 예시 SELECT TO_NUMBER('..
[ORACLE] EXTRACTVALUE 함수, EXTRACT 함수 EXTRACTVALUE 함수 ▶ 사용방법 EXTRACTVALUE(XML 형식의 값, XPath 조건식) XPath 조건식을 지정해서 해당하는 XML노드의 값을 반환 ▶ 예시쿼리 SELECT EXTRACTVALUE(BOOK_XML, '/STORE/BOOK/TITLE') FROM BOOK_LIST; ▶ BOOK_XML의 내용 어린 왕자 앙투안 드 생택쥐페리 9,800 ▶ 예시 쿼리 결과 어린 왕자 EXTRACT 함수 ▶ 사용방법 EXTRACT(XML 형식의 값, XPath 조건식) XPath 조건식을 지정해서 해당하는 XML노드의 값을 여러 개 반환할 때 사용 단, 레코드 1개가 여러 개의 노드를 가진 XMLType이라는 의미 ▶ 예시 쿼리 SELECT EXTRACTVALUE(BOOK_XML, '/STORE..
[ORACLE] NVL 함수, NVL2 함수 NVL 함수 ▶ 사용방법 NVL(칼럼명, 값이 NULL인 경우 리턴할 값) ▶ 예시 NVL(JOB, '없음') JOB이라는 컬럼이 NULL인 경우 '없음'이라는 값을 리턴해준다. ▶ 예시쿼리 아래의 쿼리는 EMP라는 테이블에 NAME, JOB이라는 칼럼이 있다는 가정하에 작성되었다. SELECT NAME, JOB, NVL(JOB, '없음') FROM EMP; ▶ 예시 쿼리 결괏값 NAME JOB NVL(JOB, '없음') 김자바 프로그래머 프로그래머 박씨 없음 이파이썬 없음 전디비 DBA DBA NVL2 함수 ▶ 사용방법 NVL2(칼럼명, 값이 NULL이 아닌 경우 리턴할 값, 값이 NULL인 경우 리턴할 값) ▶ 예시 NVL2(JOB, '직업 있음', '없음') JOB이라는 칼럼이 NULL이 아닌 경우..
[ORACLE] DECODE 함수, CASE WHEN 함수 DECODE 함수 사용법 ▶ 사용방법 DECODE(칼럼명, 조건, 결과, 그 외) ▶ 예시 DECODE(ADDRESS, 'GD', '강동', 'GS', '강서', 'GN', '강남', 'GB', '강북', '기타') 위의 코드를 해석해보면 해당 테이블에 ADDRESS라는 칼럼의 값이 'GD'면 '강동'이라는 값을 리턴하고, 'GS'면 '강서'라는 값을, 'GN'이면 '강남'이라는 값을, 'GB'면 '강북'이라는 값을 리턴하고 앞의 조건에 해당하는 값이 없다면 '기타'라는 값을 리턴한다는 뜻이다. ▶ 예시 쿼리 아래의 쿼리는 TMP라는 테이블에 ADDRESS라는 칼럼이 있다는 가정하에 작성되었다. SELECT ADDRESS, DECODE(ADDRESS, 'GD', '강동', 'GS', '강서', 'GN',..

반응형