SQL 15

[SQL] TOP N QUERY

01. TOP N QUERY페이징 처리를 효과적으로 수행하기 위해 사용전체 결과에서 특정 N개 추출예: 성적 상위자 3명02. TOP-N 행 추출 방법ROWNUMRANKFETCHTOP N(SQL Server)03. ROWNUM출력된 데이터 기준으로 행 번호 부여절대적인 행 번호가 아닌 가상의 번호 → 특정 행을 지정할 수 없음(= 연산 불가)첫 번째 행이 증가한 이후 할당 → '>' 연산자 사용 불가(0 은 가능)SELECT ROWNUM, emp.*FROM empWHERE sal >= 1500; --ROWNUM을 출력 형태* 잘못된 사용SELECT *FROM empWHERE ROWNUM > 1; --잘못된 사용, 크기 조건 전달 불가SELECT *FROM empWHERE ROWNUM = 4; --잘..

SQL 2025.02.26

[SQL] 윈도우 함수 (Window Function)

01. Window Function서로 다른 행의 비교/연산을 위해 만든 함수GROUP BY 없이 그룹 연산 가능LAG, LEAD, SUM, AVG, MIN, MAX, COUNT, RANK문법SELECT 윈도우함수([대상]) OVER( [PARTITION BY 컬럼] [ORDER BY 컬럼 ASC | DESC] [ROWS | RANGE BETWEEN A AND B]); --윈도우 함수 문법PARTITION BY 절: 출력할 총 데이터 수 변화 없이 그룹연산 수행할 GROUP BY 절ORDER BY 절LANK의 경우 필수(정렬 컬럼 및 정렬 순서에 따라 순위 변화)SUM, AVG, MIN, MAX, COUNT 등은 누적값 출력시 사용ROWS | RANGE BETWEEN A  AND B연산 범위 설정..

SQL 2025.02.26

[SQL] 그룹 함수

01. 그룹 함수숫자함수 중 여러 값을 전달하여 하나의 요약 값을 출력하는 다중행 함수수학/통계 함수들 (기술 통계 함수)GROUP BY절에 의해 그룹별 연산 결과를 리턴반드시 한 컬럼만 전달NULL은 무시하고 연산02. 그룹 함수 - COUNT행의 수를 세는 함수대상 컬럼: * | 단 하나의 컬럼만 전달 가능* 사용: 모든 컬럼의 값이 NULL일때만 COUNT 제외문자, 숫자, 날짜 컬럼 모두 전달 가능행의 수를 세는 경우: NOT NULL 컬럼을 찾아 세는 것이 좋음 (PK)문법COUNT(대상 | *) --그룹 함수: COUNT03. 그룹 함수 -  SUM총 합 출력숫자 컬럼만 전달 가능문법SUM(대상) --그룹 함수: SUM04. 그룹 함수 -  AVG평균 출력숫자 컬럼만 전달 가능NULL을 제..

SQL 2025.02.17

[SQL] 집합 연산자

01. 집합 연산자SELECT 문 결과를 하나의 집합으로 간주집합에 대한 합집합(UNION, UNION ALL), 교집합(INTERSECT), 차집합(MINUS) 연산SELECT문과 SELECT문 사이에 집합 연산자 정의두 집합의 컬럼이 동일하게 구성되어야 함각 컬럼의 데이터 타입과 순서 일치 필요전체 집합의 데이터 타입과 컬럼명은 첫 번째 집합에 의해 결정됨02. 합집합두 집합의 총 합(전체) 출력UNION과 UNION ALL 사용 가능UNION중복된 데이터는 한 번만 출력중복된 데이터를 제거하기 위해 내부적으로 정렬 수행중복된 데이터가 없을 경우: UNION 사용 대신 UNION ALL 사용 권고불필요한 UNION 정렬을 막을 수 있음UNION ALL중복된 데이터도 전체 출력 (정렬 X)SELECT ..

SQL 2025.02.17

[SQL] 서브쿼리

01. 서브쿼리하나의 SQL문안에 포함되어 있는 또 다른 SQL을 의미반드시 괄호로 묶어야함서브쿼리 사용 가능한 곳SELECT, FROM, WHERE, HAVING, ORDER BY, 기타 DML(INSERT, DELETE, UPDATE)GROUP BY 절만 제외하고 가능02. 서브쿼리 종류동작하는 방식에 따라UN-CORRELATED (비연관) 서브쿼리서브쿼리가 메인쿼리 컬럼을 가지고 있지 않은 형태의 서브쿼리사용: 메인쿼리에 서브쿼리가 실행된 결과 값을 제공하기 위한 목적CORRELATED (연관) 서브쿼리서브쿼리가 메인쿼리 컬럼을 가지고 있는 형태의 서브쿼리사용: (일반적)메인쿼리가 먼저 수행된 후에 서브쿼리에서 조건이 맞는지 확인하고자 할 때 사용위치에 따라스칼라 서브쿼리사용 위치: SELECT절목..

SQL 2025.02.17

[SQL] JOIN (2)

01. 표준 조인ANSI 표준: INNER JOIN, CROSS JOIN, NATURAL JOIN, OUTER JOIN02. INNER JOIN내부 조인: 조인 조건이 일치하는 행만 추출ORACLE의 기본 조인ANSI 표준: FROM절에 [ INNER JOIN | JOIN ]을 명시ANSI 표준: USING이나 ON절을 필수적으로 사용03. ON 절조인할 양 컬럼의 컬럼명이 서로 다르더라도 사용 가능ON 조건의 괄호는 옵션 (생략 가능)컬럼명이 같을 경우: 테이블 이름이나 별칭을 사용하여 명확하게 지정 (테이블 출처 명확히)ON 조건절에서 조인 조건 명시, WHERE 절에서는 일반 조건 명시 (WHERE절과 ON절을 쓰임에 따라 명확히 구분)문법SELECT 테이블1.컬럼명, 테이블2.컬럼명FROM 테이블..

SQL 2025.02.17

[SQL] JOIN (1)

01. JOIN (조인)여러 테이블의 데이터를 사용하여 동시 출력 / 참조할 경우 사용FROM절에 조인할 테이블 나열테이블의 순서ORACLE 표준: 테이블 나열 순서 중요 XANSI 표준: OUTER JOIN 시 순서 중요 OORACLE 표준: WHERE 절에서 조인 조건을 작성동일한 열 이름이 여러 개 존재할 경우 → 열 이름 옆에 테이블 이름 | 테이블 Alias를 붙임N개의 테이블을 조인할 경우: 최소 N-1개의 조인 조건이 필요02. 조인 종류조건의 형태에 따라EQUI JOIN (등가 JOIN): JOIN 조건이 동등 조건인 경우NON EQUI JOIN: JOIN 조건이 동등 조건이 아닌 경우조인 결과에 따라INNER JOIN: JOIN 조건에 성립하는 데이터만 출력하는 경우OUTER JOIN: ..

SQL 2025.02.14

[SQL] ORDER BY 절

01. ORDER BY 절기본적으로 데이터는 입력된 순서대로 출력됨사용: 출력되는 행의 순서를 사용자가 변경하고자할 때ORDER BY 뒤에 명시된 순서대로 정렬 → 1차 정렬, 2차 정렬 가능정렬 순서ASC: 오름차순 (1, 2, 3, 4, ...)DESC: 내림차순 (5, 4, 3, 2, 1, ...)유일하게 SELECT 절에 정의한 컬럼 별칭 (AS)으로 사용 가능SELECT절에 선언된 순서대로의 숫자 전달 가능 (컬럼명과 숫자 혼합 가능)문법SELECT * | 컬럼명 | 표현식FROM 테이블명 또는 뷰명WHERE 조회할 데이터 조건GROUP BY 그룹핑컬럼명HAVING 그룹핑 대상 필터링 조건ORDER BY 정렬컬럼명 [ ASC | DESC ]; --문법02. 정렬 순서 - 오름차순한글: 가, 나..

SQL 2025.02.14

[SQL] GROUP BY 절, HAVING 절

01. GROUP BY각 행을 특정 조건에 따라 그룹으로 분리하여 계산하도록 하는 구문식그룹으로 지정할 컬럼을 전달여러개 전달 가능만약 그룹 연산에서 제외할 대상이 존재 → 미리 WHERE 절에서 해당 행을 제외수행 순서: WHERE → GROUP BY그룹에 대한 조건은 WHERE절에서 정의하지 않음 → HAVING절에서 정의SELECT 절에 집계 함수를 사용하여 그룹 연산 결과 표현GROUP BY 절을 사용하면 데이터 요약 → 요약되기 전 데이터와 함께 출력할 수 없음SELECT * | 컬럼명 | 표현식FROM 테이블명 또는 뷰명WHERE 조회할 데이터 조건GROUP BY 그룹핑컬럼명HAVING 그룹핑 대상 필터링 조건;SELECT grade, AVG(age), nameFROM universityGRO..

SQL 2025.02.14

[SQL] WHERE 절

01. WHERE절사용: 테이블의 데이터 중 원하는 조건에 맞는 데이터만 조회하고 싶을 경우엑셀의 필터여러 조건 동시 전달 가능AND와 ORNULL 조회 방법연산자로 조회 불가NULL인 경우: IS NULL NULL이 아닌 경우: IS NOT NULL연산자를 사용하여 다양한 표현 가능조건 전달 시 비교 대상의 데이터타입 일치하는 것이 좋음 (성능 문제)연산자 종류설명=같은 조건 검색!=, 같지 않은 조건 검색>큰 조건 검색 (초과)>=크거나 같은 조건 검색 (이상)작은 조건 검색 (미만)작거나 같은 조건 검색 (이하)BETWEEN a AND ba 이상 b 이하 사이의 범위 값을 모두 검색IN(a, b, c)a이거나, b이거나, c인 조건 검색LIKE특정 패턴을 가진 조건을 검색IS NULL / IS NO..

SQL 2025.02.13