본문 바로가기

Oracle

(11)
Oracle JOIN(조인) 총정리 테이블을 정규화해 중복과 이상 현상은 줄이되, 여러 테이블의 데이터를 한 번에 조회하려면 조인이 필수입니다.이 글에서는 외래 키(FK) 설정을 시작으로, INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN, SELF JOIN의 개념·문법·흔한 실수 예제를 모두 다룹니다.목차외래 키(FK) 설정조인의 개념과 종류INNER JOIN3.1. 개념3.2. 문법3.3. 잘못된 예제3.4. 올바른 예제LEFT OUTER JOIN4.1. 개념4.2. 문법4.3. 잘못된 예제4.4. 올바른 예제RIGHT OUTER JOIN5.1. 개념5.2. 문법FULL OUTER JOIN6.1. 개념6.2. 문법SELF JOIN7.1. 개념7.2. 문법다중 테이블 조인 실..
Oracle GROUP BY 활용 가이드 GROUP BY 절은 테이블을 지정한 컬럼 기준으로 그룹화한 뒤, 그룹별 통계 정보를 계산할 때 사용합니다.본 포스트에서는 GROUP BY의 기본 개념부터 다양한 실전 예제, HAVING 절 활용, 실행 순서까지 단계별로 정리했습니다.1. GROUP BY 기본 개념GROUP BY 절은 테이블의 여러 행(row)을 지정한 컬럼 기준으로 묶어(group),각 그룹별로 집계함수(COUNT, SUM, AVG, MAX, MIN 등)를 적용할 수 있도록 합니다.2. GROUP BY에 들어갈 수 있는 항목컬럼명상수집계 함수(통계함수)예를 들어, GROUP BY deptno, '2025년도', COUNT(*) 처럼고정 문자열이나 집계함수 결과도 그룹핑 키로 사용할 수 있습니다.3. 실습 예제3-1. 부서별 인원수·급여..
Oracle 뷰(View) 이해 및 활용 가이드 데이터베이스에서 뷰(View)는 가상의 테이블로, 복잡한 쿼리를 숨기고 보안을 강화하며 재사용성을 높여줍니다. 본 포스트에서는 뷰 개념부터 생성·수정·활용 예제까지 단계별로 정리했습니다.1. 뷰(View)란?실제 데이터를 저장하지 않는 가상의 테이블뷰 내부에 저장된 SQL이 실행되어 결과를 반환주요 장점편리성: 복잡한 쿼리를 간결한 뷰 이름으로 대체보안성: 민감 데이터를 숨기거나 특정 사용자에게만 공개2. 뷰 생성 문법CREATE [OR REPLACE] VIEW 뷰_이름 ASSELECT 컬럼1, 컬럼2, …FROM 테이블명WHERE 조건;OR REPLACE: 기존 뷰를 수정할 때 사용뷰 생성 후 SELECT * FROM 뷰_이름;으로 조회3. 뷰 활용 예제3.1. 남/여 사원 전용 뷰CREATE OR R..
Oracle 집계 함수(aggregate functions) 정리 및 실습 Oracle에서 집계 함수는 다수의 행(row)을 하나의 값으로 요약할 때 사용합니다. 실제 업무에서는 매출 합계, 평균 급여, 최대·최소값 조회 등 다양한 통계 처리에 필수적입니다.주요 집계 함수COUNT(*)전체 행(row)의 개수를 반환합니다.COUNT(컬럼)지정한 컬럼이 NULL이 아닌 행의 개수를 셉니다.MAX(컬럼)컬럼 내에서 가장 큰(최댓값) 값을 반환합니다.MIN(컬럼)컬럼 내에서 가장 작은(최소값) 값을 반환합니다.SUM(컬럼)컬럼 값의 합계를 계산합니다.AVG(컬럼)컬럼 값의 평균을 계산합니다.실습 테이블: SAWON컬럼명설명예시sabun사원번호1, 2, 3…saname사원이름‘장동건’, ‘안재욱’sagender성별‘남자’, ‘여자’deptno소속 부서 번호10, 20, 30…sajob..
Oracle SQL 서브쿼리(Subquery)와 집합 연산자 1. 서브쿼리(Subquery)란?메인 쿼리 내부에 작성되어, 먼저 실행된 결과를 기준으로 메인 쿼리가 수행되는 SQL 구문입니다. 서브쿼리는 주쿼리를 단방향으로 참조하며, 복잡한 조건을 간결하게 표현해 줍니다.2. 서브쿼리의 장단점장점가독성이 뛰어나고, 비즈니스 로직을 SQL 안에서 직접 표현 가능쿼리 변경 시 메인 로직을 건드리지 않고 서브쿼리만 수정단점비효율적으로 작성하면 성능 저하 발생복잡해지면 튜닝과 디버깅이 어려움3. 서브쿼리의 분류3.1 단일 행 서브쿼리서브쿼리 결과가 반드시 단일 행(single row)을 반환해야 할 때 사용비교 연산자(=, >, 3.2 다중 행 서브쿼리여러 행(multi-row)을 반환할 수 있는 서브쿼리IN, ANY, ALL 연산자와 결합3.3 상관 서브쿼리(Corre..
Oracle DECODE, CASE, NVL/NVL2, VIEW 함수 정리 및 예제 1. DECODE 함수DECODE는 특정 컬럼 값에 따라 여러 결과를 반환할 때 사용합니다.구문이 짧고 간단하지만, 표현력이 제한적이므로 단순 매핑에 적합합니다.DECODE(expr, search1, result1, search2, result2, …, default )expr: 비교 대상 컬럼 또는 표현식searchN: 찾을 값resultN: 매칭 시 반환값default: 모든 search 값과 불일치할 때 반환값예제: 사원 테이블 sawon에 부서명 붙이기SELECT sabun, saname, sapay, deptno, DECODE(deptno, 10, '총무부', 2..
Oracle SQL 함수 정리 1. 숫자 함수 (Number Functions)숫자를 다룰 때 자주 사용하는 기본 함수와 예제입니다.절대값: ABS(x)올림: CEIL(x)내림: FLOOR(x)반올림: ROUND(x, n) (소수점 n자리)절사: TRUNC(x, n) (소수점 n자리 이하 자름)나머지: MOD(x, y)-- 절대값SELECT ABS(-1.234) AS absoluteFROM dual;-- 올림 (ceil)SELECT CEIL(-10.1234) AS ceilFROM dual;-- 내림 (floor)SELECT FLOOR(10.1234) AS floorFROM dual;-- 반올림 (소수점 1자리, 소수점 첫째 자리에서 올림)SELECT ROUND(192.153, 1) AS round_1FROM dual;-- 반올림 (소..
Oracle SQL 조회 및 문자열 연산 정리 1. 컬럼 별칭(alias)과 조회 예제컬럼별로 조회 결과에 새로운 이름을 부여하면 외부에서 가독성 높은 필드명으로 데이터를 활용할 수 있습니다.아래 예제는 사원 테이블(sawon)에서 부서번호가 20초과인 직원의 연봉, 보너스, 월급, 의료보험료를 한 번에 조회하는 쿼리입니다.SELECT sabun AS 사번, saname AS 이름, sapay AS 연봉, sapay * 0.1 AS 보너스, ROUND(sapay/12, 0) AS 월급, FLOOR(sapay/12 * 0.09) AS 의료보험료FROM sawonWHERE deptno > 20;sabun AS 사번 : 컬럼명을 ‘사번’으로 재명명sapay * 0.1 : 연봉..