2025/04 17

#23 DML

목차DML(Data Manipulation Language)DML은 데이터를 "조회하고, 추가하고, 수정하고, 삭제"하는 데 사용하는 SQL 명령어야.즉, 테이블 안의 데이터를 조작하는 모든 작업을 담당한다. 📌 DML 종류명령어설명SELECT테이블에서 데이터 조회INSERT새 데이터 삽입UPDATE기존 데이터를 수정DELETE기존 데이터를 삭제MERGE존재하면 UPDATE, 없으면 INSERT (조건부 조작)사실 DML에 CALL, EXPLAIN PLAN, LOCK TABLE도 있다...SELECT - 데이터 조회모두가 처음 DB를 배울 때 가장 쉽게 이해가 가능한 DML이다..SELECT: 조회할 컬럼 지정FROM: 테이블 지정WHERE: 조건ORDER BY: 정렬 기준INSERT - 데이터 삽입..

SQL/SQLD 21:01:19

#22 계층 쿼리

목차계층 쿼리란계층 쿼리는 자기 자신을 부모/자식으로 참조하는 트리 구조를 탐색할 때 사용하는 쿼리다.예를 들어 회사의 조직도(CEO → 팀장 → 사원), 댓글의 답글 구조, 분류체계 등**"상위-하위 관계를 가진 데이터"**에서 필수적으로 사용됨. employeesidnamepositionmanager_id1철수CEONULL2영희CTO13민수팀장24지수대리35나리사원4 manager_id가 NULL이면 최상위 (CEO)각 직원은 manager_id를 통해 상사를 참조함LEVEL현재의 DEPTH를 반환한다. 루트 노드는 1이 된다.SYS_CONNECT_BY_PATH (컬럼, 구분자)루트 노드부터 현재 노드까지의 경로를 출력해주는 함수이다.START WITH경로가 시작되는 루트 노드를 생성해주는 절이다.C..

SQL/SQLD 20:20:12

#21 셀프 조인(Self Join)

목차Self Join셀프 조인은 말 그대로 나 자신과의 조인이다라고 할 수 있다. 조금 더 다르게 말하면...**셀프 조인(Self Join)**은 하나의 테이블을 자기 자신과 조인하는 방식이다.같은 테이블 내에서 행들끼리의 관계(예: 부모-자식, 멘토-멘티, 선배-후배 등)를 표현할 때 사용한다. students 테이블idnameclassmentor_id1철수1NULL2영희113민수214지수225나리33mentor_id는 멘토의 id를 가리킴학생과 학생(같은 테이블) 간의 관계를 나타냄멘토-멘티 관계 구하기SELECT mentee.name AS 멘티, mentor.name AS 멘토FROM students menteeJOIN students mentor ON mentee.mentor_id ..

#20 Top-N 쿼리

목차정해진 개수의 상위 N개 행만 조회하는 쿼리로, 실무에서 매우 자주 사용이 된다. (예: 상위 5위, 최신 10건, 점수 Top 3 등).Top-N 쿼리Top-N 쿼리는 정렬된 결과 중 일정 개수(N개)만 추출하고 싶을 때 사용한다.DBMS마다 문법 차이는 있지만, 정렬 + 제한이라는 구조는 동일하다.-- 예제 쿼리 MySQL / PostgreSQLSELECT name, scoreFROM studentsORDER BY score DESCLIMIT 3;-- Oracle 구버전SELECT name, scoreFROM ( SELECT name, score FROM students ORDER BY score DESC)WHERE ROWNUM ✅ 기타 DBMS별 방식DBMS사용 문법 예시MySQLLIMI..

SQL/SQLD 18:02:32

#19 윈도우 함수

목차✅ 윈도우 함수란?OVER 키워드와 함께 사용되는 함수로,그룹 함수와 비슷하지만 모든 행에 대해 값을 계산하면서도 다른 행들과의 관계를 고려할 수 있는 함수이다.GROUP BY 없이도 그룹 내 집계, 순위, 누적 계산 등을 가능하게 해준다. SELECT 컬럼1, 윈도우_함수(컬럼2) OVER ( PARTITION BY 컬럼3 ORDER BY 컬럼4 ROWS BETWEEN ... -- 윈도우 프레임 ) AS 별칭FROM 테이블명; 윈도우 함수: SUM, AVG, RANK, ROW_NUMBER, LAG, LEAD 등OVER 절: 윈도우 함수의 범위를 지정PARTITION BY: 데이터를 그룹화ORDER BY: 정렬 기준ROWS BETWEEN: 윈도우 프레임을 지정 윈도우 함수 ..

SQL/SQLD 16:43:02

#18 그룹 함수

목차🧩그룹 함수란?그룹 함수(Aggregate Function)는 여러 행(Row)에 대해 하나의 값을 반환하는 함수다.예를 들어 총합, 평균, 개수, 최대값, 최소값 등을 구할 때 사용한다.단독으로도 쓰고, GROUP BY 절과 함께 사용하면 그룹별로 계산할 수도 있다. 대표적인 그룹 함수 목록함수 이름역할COUNT()개수 세기SUM()합계AVG()평균MAX()최대값MIN()최소값GROUP_CONCAT()여러 값을 연결(MySQL 전용)STDDEV()표준편차(오라클/PGSQL 등)VARIANCE()분산MEDIAN()중앙값(오라클 등 일부 지원)COUNT() - 개수세기SELECT COUNT(*) FROM students; -- 전체 행 수SELECT COUNT(score..

SQL/SQLD 2025.04.14

#17 집합 연산자

목차 🧩집합 연산자란?SQL에서 두 개 이상의 SELECT 결과를 하나로 조합하거나 비교하는 연산자즉, "SELECT + SELECT" → 하나의 결과로 만드는 기술 ✅ 기본 조건 (공통 전제)집합 연산자를 쓰려면 아래 조건을 반드시 충족해야 함:조건 항목설명컬럼 수두 SELECT 문의 컬럼 수가 같아야함컬럼 순서컬럼 위치별 타입이 호환되어야함컬럼명결과는 첫 번째 SELECT의 컬럼명 기준으로 표시됨students1 students2철수영희영희민수민수지수✅ 1. UNION두 SELECT 결과를 합친 후 중복 제거📌 문법SELECT 컬럼1 FROM 테이블AUNIONSELECT 컬럼1 FROM 테이블B;✅ 중복 제거된 결과만 보여줌 SELECT name FROM students1UNIONSELECT na..

SQL/SQLD 2025.04.14

#16 뷰(View)

목차🧩 뷰(View)란?뷰(View)는 하나 이상의 테이블을 기반으로 만들어진 가상의 테이블이다.실제 데이터를 저장하지 않고, 미리 정의한 SELECT 쿼리의 결과를 보여주는 창문 같은 역할을 한다.즉, 복잡한 SELECT 쿼리를 미리 만들어두고, 그걸 마치 테이블처럼 사용할 수 있게 만드는 것이 뷰다. 저장 방식 : 실제 데이터를 저장하지 않음 (SELECT 쿼리만 저장됨)호출 방식 : 일반 테이블처럼 "SELECT * FROM 뷰이름"으로 사용쓰는 이유 : 쿼리 재사용, 보안(컬럼 제한), 복잡한 쿼리 단순화유지 방식 : 뷰는 항상 최신 원본 테이블 데이터를 반영함 ✅ 뷰의 장점복잡한 SQL을 단순하게 재사용 가능컬럼 제한으로 보안 기능 대체 가능(예: 직원 테이블에서 급여는 제외)테이블처럼 사..

SQL/SQLD 2025.04.14

#15 서브쿼리(Subquery)

목차서브쿼리(Subquery)서브쿼리는 말 그대로 메인이 아닌 보조(서브) 역할을 하는 쿼리를 뜻한다.즉, 하나의 메인 SQL문 안에 포함되어 실행되는 SELECT 문을 말한다.보통 메인 쿼리가 실행되기 전에서브쿼리가 먼저 실행되어 그 결과가 조건, 조회 값, 테이블처럼 사용된다.그래서 서브쿼리는 SELECT, FROM, WHERE, HAVING 절 등 다양한 위치에 들어갈 수 있다. 예를들어,SELECT nameFROM studentsWHERE score > (SELECT AVG(score) FROM students);→ 이때 괄호 안의 SELECT AVG(score)... 부분이 바로 서브쿼리이다.메인 쿼리는 이름을 가져오는 역할이고,서브쿼리는 평균 점수를 구해서 메인 쿼리의 조건으로 사용되는 것이다..

SQL/SQLD 2025.04.13

#14 JOIN

목차 JOINJOIN은 두 개 이상의 테이블을 특정 조건으로 연결하여,마치 하나의 테이블처럼 데이터를 조회하는 방법이다.현실에서 사용하는 데이터는 보통 하나의 테이블에 모든 정보를 담지 않는다.왜냐하면 데이터의 중복을 줄이고, 효율적으로 관리하기 위해 정규화라는 과정을 거치기 때문이다.정규화를 거치면 학생 정보, 수강 정보, 성적 정보처럼 논리적으로 나눠진 여러 테이블이 생기게 된다.그래서 우리가 데이터를 조회할 때는이렇게 분리된 테이블들을 연결(JOIN) 해서필요한 정보를 하나의 결과처럼 조합해서 사용하는 게 일반적이다.예를 들어 학생 테이블에는 학번, 이름, 생년월일이 있고,성적 테이블에는 학번, 과목명, 점수가 있을 때,학번을 기준으로 두 테이블을 JOIN하면각 학생의 이름과 과목별 점수를 한 번에..

SQL/SQLD 2025.04.13
728x90