2025/04/13 4

#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

#13 ORDER BY

목차ORDER BY 절ORDER BY는 SELECT 문의 결과를 정렬할 때 사용하는 절이다.  지정한 컬럼(또는 표현식)을 기준으로 오름차순(ASC) 또는 내림차순( DESC) 정렬이 가능하다.책에서는 뭐 논리적으로 맨 마지막으로 수행된다하는데 왜 말을 그렇게 어렵게 적는지 모르겠다. 그냥 결과 나오기 전에 정렬할 때 사용한다 하면 쉽게 이해가 더 가지 않을가 생각이 된다.뭐 논리적 순서상 마지막이라고 하는 이유는 SQL 문장은 우리가 위에서 아래로 작성하지만, DBMS는 논리적 실행 순서에 따라 밑에 처럼 처리한다.SELECTFROMWHEREGROUP BYHAVINGORDER BY ← ❗ 여기서 마지막 실제로 실행 순서를 보면 밑과 같다.SELECT -> 5FROM -> 1WHERE ..

SQL/SQLD 2025.04.13

#12 GROUP BY, HAVING 절

목차GROUP BYGROUP BY는 특정 컬럼의 값에 따라 데이터를 그룹으로 묶고, 각 그룹에 대해 집계 함수(Aggregate Function)를 적용할 때 사용된다."같은 값끼리 묶고 -> 집계(합계, 평균, 개수 등)하자"는 개념으로 이해하자 집계 함수함수의미COUNT(*)테이블 전체 행(Row) 수를 반환* NULL 포함 모든 행 계산 COUNT(컬럼)해당 컬럼의 NULL이 아닌 행만 세어서 반환COUNT(DISTINCT 컬럼)해당 컬러멩서 중복을 제거와 NULL을 제외한 개수 반환SUM(컬럼)해당 컬럼 값들의 합계를 반환AVG(컬럼)해당 컬럼 값들의 평균값을 반환MIN(컬럼)해당 컬럼 값들 중 최소값을 반환MAX(컬럼)해당 컬럼 값들 중 최대값을 반환SUM, AVG, MIN, MAX는 숫자형 컬..

SQL/SQLD 2025.04.13
728x90