DataBase/Oracle 30

[Oracle] EXISTS, NOT EXISTS 함수 사용법과 예시

ORACLE의 EXSITS는 WHERE 절에서 조건에 부합하는데이터를 조회하기 위해 주로 사용하는데,EXISTS를 사용하는 이유와 사용 방법, 예시를 알아보자. 1) EXISTS: 서브 쿼리 조건에 만족하는 모든 데이터를 반환하는 함수이다.주로 WHERE 절에서 조건에 맞는 데이터를 찾기 위해 사용하며,CASE 문에서 조건으로 사용할 수도 있다.1-1) EXISTS 특징EXISTS는 결과에 부합하는 데이터를 출력,NOT EXISTS는 결과에 부합하지 않는 데이터를 출력함결과를 TRUE/FALSE로 반환하여 CASE문의 조건으로 사용 가능IN 함수에 비해 성능이 좋아 대용량 데이터에 용이함 2) NOT EXISTS: EXISTS 함수와 반대로,서브 쿼리 조건에 만족하지 않는 데이터들만 반환하는 함수이다. ..

DataBase/Oracle 2025.06.13

[Oracle] TRUNC 함수 사용법 및 예제(시간과 숫자를 절사하는 함수)

ORACLE의 TRUNC 함수는 숫자나 날짜를 절사하는 등다양하게 사용할 수 있는 함수이다.TRUNC 함수를 다양하게 활용할 수 있는 예시에 대해 소개해보겠다. 1) 함수 기본 사용법1-1) 형식 TRUNC(number, [format]) -- 숫자 TRUNC(date, [format]) -- 날짜TRUNC 함수는 위 형식대로 숫자나 날짜 형태의 데이터에서 사용할 수 있다.옵션 [format]은 생략 가능하며,format을 지정하면 해당 단위에 따라 절삭한다.format은 숫자로 지정할 수도 있지만,'MONTH', 'DAY', 'DD', 'YYYY', 'HH', 'MI', 'SS' 등의 날짜 단위로도 지정 가능하다. 1-2) 예시SELECT TRUNC(123456789.12345), TRUN..

DataBase/Oracle 2025.06.12

[Oracle] 숫자 3자리(천단위)마다 콤마(,) 넣어서 출력하기

쿼리에서 가져온 금액을 화면에 보여줄 때,쿼리내에서 콤마를 찍은 결과값으로 보여주기 위해오라클에서 쿼리 결과 값에 천단위(3자리) 마다 콤마를 넣어서출력하는 두 가지 방법에 대해 알아보자. 1) TO_CHAR 함수 활용: 오라클의 TO_CHAR 함수는 숫자, 날짜, 문자 데이터 유형을원하는 형식의 문자열로 변환하는 함수이다.이 함수를 활용하면, 숫자 형태의 값에 3자리마다 콤마를 넣을 수 있다.1-1) 문법 TO_CHAR( 수치 값, 패턴 값 )1-2) 예시SELECT TO_CHAR('123123123', '999,999,999,999,999')FROM DUAL; 결과값 1-3) 주의점: 만약 TO_CHAR 함수에 정의한 패턴 값이 조회되는숫자 값보다 작은 경우에는 값이 출력이 안되기 때문에,패턴 값은 ..

DataBase/Oracle 2025.06.10

[Oracle] PL/SQL 함수(Function) 작성법

오라클 PL/SQL의 대표적인 부 프로그램으로 함수(Function)이 있다.이는 오라클에서 제공하는 내장함수(TO_CHAR, TO_DATE 등)가 아닌, 사용자 정의 함수(User Defined Function)이다.함수를 직접 정의함으로써 특정 기능들을 재사용할 수 있기 때문에, 쿼리문을 더욱 간결하게 만들 수 있는 장점이 있다. 1) 함수(Function) 이란?: 오라클의 내장함수 외, 사용자가 직접 정의하여 사용할 수 있는 함수이다.특정 기능들을 모듈화, 재사용할 수 있어 복잡한 쿼리문을 간결하게 만들 수 있다. 2) 함수 기본 문법CREATE OR REPLACE FUNCTION 함수 이름 (매개변수1, 매개변수2....)RETURN 데이터 타입;IS[AS]변수, 상수 선언..BEGIN실행부RE..

DataBase/Oracle 2025.06.05

[Oracle] OVER 함수 - GROUP BY 없이 최대,최소,평균 구하기

오라클에서 OVER() 를 사용하면 GROUP BY나 서브쿼리를 사용하지 않고 분석 함수(SUM, MAX, COUNT)와 집계 함수(GROUP BY, ORDER BY)를 사용할 수 있다.집계 함수 사용 시 서브쿼리가 길어지기 때문에 OVER 함수를 사용해 쿼리 길이를 줄일 수 있다. 1) OVER 함수란?: OVER 함수는 GROUP BY, ORDER BY 서브쿼리를 개선하기 위해 나온 함수이다.분석 함수를 사용해야 하는 경우,OVER 함수를 활용한다면 복잡한 서브쿼리를 최소화할 수 있다.간결하게 쿼리문을 작성하고 싶다면 해당 함수를 활용하는 것이 좋다.뒤에 PARTITION BY를 함께 사용해야 GROUP BY의 기능을 활용할 수 있다.추가적으로 ORDER BY도 지정해줄 수 있다. 2) OVER 함수..

DataBase/Oracle 2025.06.04

[Oracle] 특정 문자로 자릿수 채우기 LPAD, RPAD 함수

오라클에서 왼쪽, 오른쪽에 특정 문자를 원하는 문자열 길이만큼 채울 수 있는 LPAD, RPAD 함수에 대해 알아보자.1) LPAD: 지정한 길이만큼 왼쪽부터 채움문자로 채운다.채움문자를 지정하지 않으면 공백으로 해당 길이만큼 문자를 채운다.문법 LPAD("값", "총 문자길이", "채움문자") 2) RPAD: 지정한 길이만큼 오른쪽부터 채움문자로 채운다.채움문자를 지정하지 않으면 공백으로 해당 길이만큼 문자를 채운다.문법RPAD("값", "총 문자길이", "채움문자") 3) 예시WITH EMP AS (SELECT '1234' AS EMP_NO, 'HARRY' AS EMP_NM, '1000' AS DEPT_NO, '경영지원실' AS DEPT_NMFROM DUAL)SELEC..

DataBase/Oracle 2025.06.03

[Oracle] 오라클 소수점 존재 여부 체크 및 소수점 이하 값 구하기

오라클에서 수치값에 소수점이 존재하는지 체크하거나, 혹은 소수점 이하의 값만을 활용하고 싶은 경우가 있다.이 경우를 모두 만족하는 함수는 없지만, 연산을 통해 값을 도출해낼 수 있다.각각의 방법에 대하여 알아보자. 1) 소수점 존재 여부 체크1-1) TRUNC() 함수 활용: TRUNC 함수를 숫자에 사용하면 소수점 이하 값을 제거할 수 있다.WITH NUM_TABLE AS ( SELECT 1.25 AS NUM1, 2 AS NUM2, -5.5 AS NUM3 FROM DUAL)SELECT CASE WHEN NUM1 TRUNC(NUM1) THEN 'Y' ELSE 'N' END AS NUM1_RESULT, CASE WHEN NUM2 TRUNC(NUM..

DataBase/Oracle 2025.06.02

[Oracle] 오라클 NVL, NVL2 함수 차이점 및 사용법(NULL 처리)

오라클의 내장 함수 중 컬럼의 값이 NULL인 경우에 대한처리를 해주는 NVL과 NVL2 함수가 있다.이 함수들은 오라클에서만 사용이 가능하고,다른 데이터베이스에서는 사용할 수 없다.이 두 개의 함수의 차이점과 사용법에 대하여 알아보자. 1) NVL, NVL2 함수 차이점: NVL 함수는 컬럼의 값이 NULL인 경우,특정 값으로 반환하기 위해 사용한다.NVL2 함수는 컬럼의 값이 NULL인 경우와 NULL이 아닌 경우두 가지 모두 특정 값으로 반환할 수 있다는 차이점이 있다.NVL 함수는 NULL인 경우 단순 기본값을 부여하기 위해서 자주 사용하며,NVL2 함수는 NULL을 기준으로 IF ELSE문처럼 특정 값을 반환할 수 있다. 2) NVL 함수2-1) 문법: NVL(NULL인지 검사할 데이터 또는 컬..

DataBase/Oracle 2025.06.01

[Oracle] 오라클 CASE WHEN 표현식 사용법(if else문)

오라클에서 if else문과 비슷한 기능을 하는 DECODE 함수를 지난 번에 설명했었다.하지만 DECODE 함수는 조건이 많아지면 가독성이 떨어지고, 오라클 SQL에서만 사용 가능한 함수라는 점이 단점이다.DECODE 함수를 대체할 수 있는 기능이 CASE 표현식이며 가독성이 좋고 더 많은 기능을 제공한다.조건이 복잡한 경우 DECODE 함수 보다 CASE 표현식을 사용할 것을 권장한다.CASE 표현식에 대해 알아보자. 1) CASE 표현식 기본 문법CASE WHEN 조건1 THEN 처리문1WHEN 조건2 THEN 처리문2...WHEN 조건N THEN 처리문NELSE 처리문N+1END AS "컬럼명"조건1을 만족 시 출력1조건2를 만족 시 출력2...조건N을 만족 시 출력N모든 조건을 만족하지 않을 시..

DataBase/Oracle 2025.05.31

[Oracle] 조건문을 제공하는 DECODE 함수(if else문)

ORACLE에서 조건문을 사용할 때 IF ELSE 기능을 하는 함수인 DECODE가 있다.이 함수는 CASE WHEN 구문과 비슷한 기능을 하는데, 비교적 간단한 구문으로 사용할 수 있다.DECODE 함수에 대하여 알아보자. 1) DECODE조건이 한 가지인 경우: DECODE( 컬럼, 조건1, 결과1, ELSE값 )조건이 두 가지 이상인 경우: DECODE( 컬럼, 조건1, 결과1, 조건2, 결과2, · · · , ELSE값) 2) DECODE 사용법: DECODE의 기본 사용법을 아래 EMP_TABLE 테이블을 예시로 설명해보겠다. ※ 참고: 위 테이블은 아래 쿼리로 임시 테이블을 구성한 것이다.WITH EMP_TABLE AS ( SELECT '5020' AS EMP_NO, 'SCOOT' AS ..

DataBase/Oracle 2025.05.30