SQL 실습 — 조인과 고급 검색, inline view, NVL 함수 정리
이번 글에서는 SQL 실습을 통해
조인(JOIN), 별칭(alias), 집계 정렬, 결과 개수 제한, inline view, NVL 함수 사용법을 익혀보겠습니다.
데이터베이스 초보자분도 쉽게 이해할 수 있도록 개념부터 예제까지 차근차근 설명합니다.
테이블 별칭과 테이블 정식 이름 사용
SQL에서 테이블을 긴 이름 대신 짧게 별칭(alias)으로 지정해 사용하면
쿼리를 더 간결하게 작성할 수 있습니다.
여기서 s
가 student 테이블의 별칭입니다.
질의 결과 개수 한정 (rownum, limit)
결과 행의 개수를 제한하는 방법입니다.
-
Oracle:
rownum
-
MySQL:
limit
예시 (MySQL)
조인 (JOIN)
두 개 이상의 테이블을 연결하는 방식입니다.
1. INNER JOIN
조건을 만족하는 값만 출력합니다.
2. OUTER JOIN
조건이 없어도 한쪽 테이블의 데이터를 모두 보여주는 방식입니다.
-
LEFT OUTER JOIN: 왼쪽 테이블을 모두 표시
-
RIGHT OUTER JOIN: 오른쪽 테이블을 모두 표시
※ where 절 위치에 따라 결과가 달라지므로 주의합니다.
집계 정렬과 NVL 함수
NVL 함수
NULL 값을 다른 값으로 대체하는 함수입니다.
NULL 값이면 0으로 표시합니다.
inline view (인라인뷰)
쿼리 내부에서 가상 테이블을 만들어 사용하는 방법입니다.
예시
위에서 select cno, cname from course where dname='컴공학과'
부분이 인라인뷰입니다.
View와 Inline View의 차이점
구분 | View | Inline View |
---|---|---|
정의 | 데이터베이스에 고정적으로 정의해 두는 가상 테이블 | SQL 실행 시 즉석에서 만들어지는 가상 테이블 |
생성 | CREATE VIEW 문으로 생성 |
SELECT 문 안에 FROM 절에 서브쿼리 형태로 작성 |
저장여부 | 데이터베이스에 저장 | 저장 안 함, 일회성 |
재사용성 | 여러 쿼리에서 재사용 가능 | 해당 쿼리에서만 사용 가능 |
주 사용 목적 | 자주 사용하는 복잡한 질의를 간단하게 재사용 | 복잡한 질의 중 특정 부분의 결과를 임시 테이블로 활용 |
2019~2020년 강의한 교수, 과목, 학생정보 조회 실습
1. 2019년 강의 교수
2. 2020년 같은 과목 강의 확인
3. 2019년 이전 입학한 학생 조회
중요 내용 정리
구분 | 설명 |
---|---|
table alias | 테이블 별칭 |
rownum/limit | 결과 개수 제한 |
inner join | 조건 만족 데이터만 조회 |
outer join | 한쪽 테이블 데이터 모두 표시 |
nvl 함수 | NULL 값 대체 |
inline view | 가상 테이블 |
정렬 | order by |
집계 정렬 | group by, having |
객관식 3문제 + 정답과 해설
Q1. 다음 중 inner join의 특징은 무엇인가요?
① 한쪽 테이블 데이터를 모두 출력
② 조인조건을 만족하는 데이터만 출력
③ null 값을 모두 대체
④ limit 없이 결과 모두 표시
정답: ②
해설: inner join은 조건을 만족하는 데이터만 보여줍니다.
Q2. null 값을 다른 값으로 바꿀 때 사용하는 함수는?
① avg
② nvl
③ rownum
④ count
정답: ②
해설: nvl 함수는 null 값을 대체합니다.
Q3. 결과 개수 제한할 때 MySQL에서 사용하는 문법은?
① order by
② limit
③ group by
④ having
정답: ②
해설: limit를 사용해 결과 행 수를 제한합니다.