데이터베이스 배움터 (생능출판) 부록 스스로 해보는 실습문제 정답 및 해설 (실행결과 포함)
- 최초 등록일
- 2015.10.19
- 최종 저작일
- 2015.10
- 16페이지/
어도비 PDF
- 가격 2,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
데이터베이스 배움터 교재 4장의 부록부분에 있는 '스스로 해보는 실습문제' SQL 답안 및 해설입니다. (2015.11.08 수정 및 추가 했습니다.)
mySQL로 실행한 결과 또한 포함되어 있습니다.
각각의 문항별로 정답 및 해설을 작성하였으며, 이 교재에 없는 내용으로 해결해야 하는 문항 또한 다른 교재를 참고하여 해결한 답안입니다. 실행 결과 및 참고 릴레이션 또한 첨부되어 있으니 교재가 없는 분들도 참고하여 공부하시면 많은 도움이 될 것이라 생각합니다.
단, 15번 문항은 답안이 없으니 참고 바랍니다.
* SQL문을 작성하시오.
질의 1 : 가장 오래 근무한 사원에 관한 모든 데이터를 검색하라.
질의 2 : 최종철과 같은 부서에 근무하는 사원에 관한 모든 데이터를 검색하라.
질의 3 : 회사의 전체 사원 수를 검색하라.
~질의 27 까지.
목차
없음
본문내용
2. 최종철과 같은 부서에 근무하는 사원에 관한 모든 데이터를 검색하라.
* SQL
SELECT *
FROM EMPLOYEE
WHERE DNO = (SELECT DNO
FROM EMPLOYEE
WHERE EMPNAME='최종철‘);
* 풀이
WHERE절에서 최종철의 DNO와 EMPLOYEE 릴레이션의 DNO가 같은 항목들을 검색하도록 한다.
3. 회사의 전체 사원수를 검색하라.
* SQL
SELECT COUNT(*) AS ‘사원수’
FROM EMPLOYEE;
* 풀이
전체 사원수를 세야 하므로 COUNT 함수를 이용하고, 검색한 결과는 ‘사원수’라는 애트리뷰트에 검색결과로 나오도록 한다.
4. 회사에 몇 개의 부서가 있는가를 검색하라.
* SQL
SELECT COUNT(DISTINCT DEPTNAME) AS '부서수‘
FROM DEAPRTMENT;
* 풀이
전체 부서수를 세야 하므로 COUNT 함수를 이용하고 부서이름에 중복이 있을 수도 있으니 DINSTICT를 사용한
다. 검색한 결과는 ‘부서수’라는 애트리뷰트에 검색결과로 나오도록 한다.
5. 기획부에 근무하는 사원들의 이름과 직급을 검색하라.
* SQL
SELECT EMPNAME, TITLE
FROM EMPLOYEE
WHERE DNO = (SELECT DEPTNO
FROM DEPARTMENT
WHERE DEPTNAME='기획‘);
* 풀이
WHERE 절에서 기획부의 DEPTNO와 EMPLOYEE 릴레이션의 DNO가 같은 경우 중 SELECT 절에서 사원들의 이름과 직급을 검색한다.
6. 한 명 이상의 사원이 근무하는 부서의 개수를 검색하라.
* SQL
SELECT COUNT(DISTINCT DNO) AS '한명이상 부서수‘
FROM EMPLOYEE;
* 풀이
부서를 나타내는 DNO의 중복을 없애기 위해 DISTINCT를 이용하고, COUNT 함수를 사용하여 수를 검색한다.
7. 사원이 한 명도 근무하지 않는 부서를 검색하라.
* SQL
SELECT DEPTNAME
FROM DEPARTMENT
WHERE DEPTNO NOT IN (SELECT DISTINCT DNO
FROM EMPLOYEE);
혹은
SELECT DEPTNAME
FROM DEPARTMENT D
WHERE NOT EXISTS (SELECT DEPTNAME
FROM EMPLOYEE E
WHERE D.DEPTNO = E.DNO);
참고 자료
ORACLE을 기반으로 하는 데이터베이스 배움터 / 홍의경 / 생능출판 / 2014.2.28 /
스스로 해보는 실습 문제 (523P~524P)