포스트

LG CNS 부트캠프 학습일지 22일차

학습 내용

  • 서브쿼리
  • EXISTS 구문
  • LIMIT 구문
  • 연습문제 풀이

서브쿼리

서브쿼리는 쿼리를 쿼리 안에 중첩시키는 것이다. 쿼리 결과로 얻어지는 것을 쿼리의 조건으로 전달할 때 등에 사용한다. 아래는 홍길동과 같은 부서에 있는 사원의 정보를 조회하는 쿼리이다.

1
2
3
4
5
6
7
SELECT EMP_NAME, DEPT_ID
FROM employee
WHERE DEPT_ID = (
	SELECT DEPT_ID
	FROM employee
	WHERE EMP_NAME = '홍길동'
);

서브쿼리에는 세미콜론을 사용하지 않는다는 점에 주의하자.

EXISTS 구문

EXISTS 이후에 주어지는 서브쿼리의 결과가 하나라도 있는지 여부를 확인한다. 아래는 employee 테이블의 행 중에서 department 테이블의 DEPT_ID와 동일한 값을 가지는 행을 필터링한다.

1
2
3
4
5
6
7
SELECT *
FROM employee
WHERE EXISTS (
	SELECT *
	FROM department
	WHERE department.DEPT_ID = employee.DEPT_ID
);

LIMIT 구문

쿼리 결과로 한 개보다 많은 행이 주어지는 경우에 사용할 수 있는 구문이다. 이름에서 알 수 있듯이 출력 결과에 일정한 한계를 두는 것인데, 오름차순이나 내림차순으로 정렬한 데이터 중에서 가장 앞의 것을 추출하는데 사용할 수 있다. 예를 들어 급여를 제일 많이 받는 사원을 찾기 위해서 사원을 급여를 기준으로 정렬하고 LIMIT을 사용하면 된다.

1
2
3
4
SELECT EMP_NAME, SALARY
FROM employee
ORDER BY SALARY
LIMIT 1;

결론

오후 수업시간에는 연습문제를 푸는 시간이 주어졌다. 문제를 풀어보려고 고민하는 과정에서 지금까지 배웠던 쿼리 구문을 숙달했다. 개인적으로는 이 시간이 제일 좋다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

Comments powered by Disqus.