Database - SQL 실습 2

Bomin Seo·2022년 7월 23일
0

Q1. 모든 사원의 이름, 부서 번호, 부서 이름을 표시하는 질의를 작성하십시오.

A1.

SELECT E.LAST_NAME, D.DEPARTMENT_ID, D.DEPARTMENT_NAME
FROM EMPLOYEES E, DEPARTMENTS D

Q2. 부서 80에 속하는 모든 업무의 고유 목록을 작성하고 출력 결과에 부서의 위치를 포함시키십시오. (중복 제거)

A2.

SELECT DISTINCT(JOB_ID), D.LOCATION_ID, D.DEPARTMENT_NAME
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D ON E.DEPARTMENT_ID = 80

Q3. 커미션을 받는 모든 사원의 이름, 부서 이름, 위치 ID 및 도시를 표시하는 질의를 작성
하십시오.

A3.

SELECT E.LAST_NAME, D.DEPARTMENT_NAME, D.LOCATION_ID, L.CITY
FROM EMPLOYEES E, DEPARTMENTS D, LOCATIONS L
WHERE E.COMMISSION_PCT IS NOT NULL AND 
E.DEPARTMENT_ID = D.DEPARTMENT_ID AND D.LOCATION_ID = L.LOCATION_ID

Q4.이름에 a(소문자)가 포함된 모든 사원의 이름과 부서 이름을 표시하는 질의를 작성하십시오.

A4.

SELECT E.LAST_NAME, D.DEPARTMENT_NAME
FROM EMPLOYEES E, DEPARTMENTS D
WHERE E.LAST_NAME LIKE '%a%'

Q5.Toronto에서 근무하는 모든 사원의 이름, 업무, 부서 번호 및 부서 이름을 표시하는 질의를 작성하십시오. (join, on 키워드 사용)

A5.

SELECT E.LAST_NAME, E.JOB_ID, D.DEPARTMENT_ID, D.DEPARTMENT_NAME
FROM EMPLOYEES E INNER JOIN DEPARTMENTS D ON (E.DEPARTMENT_ID = 	
D.DEPARTMENT_ID) INNER JOIN LOCATIONS L ON (D.LOCATION_ID = L.LOCATION_ID)
WHERE L.CITY = 'Toronto'

Q6.사원의 이름 및 사원 번호를 관리자의 이름 및 관리자 번호와 함께 표시하고, 각각의 열 레이블을 Employee, Emp#, Manager, Mgr#로 지정하십시오. (관리자가 없는 사원도 포함)

A6.

SELECT E.LAST_NAME "Employee", E.EMPLOYEE_ID "EMP#", E2.LAST_NAME 	"Manager", 
E2.EMPLOYEE_ID  "Mgr#"
FROM EMPLOYEES E join EMPLOYEES E2 ON (E.MANAGER_ID = E2.EMPLOYEE_ID);

Q7.지정한 사원의 이름, 부서 번호 및 지정한 사원과 동일한 부서에서 근무하는 모든 사원을 표시하도록 질의를 작성하고, 각 열에 적합한 레이블을 지정하십시오. 또한 부서 번호, 사원 이름, 동일한 부서에서 근무하는 사원의 이름으로 오름 차순 정렬하시오.

A7.

SELECT E.DEPARTMENT_ID DEPARTMENT, E.LAST_NAME EMPLOYEE, E2.LAST_NAME COLLEAGUE
FROM   EMPLOYEES E JOIN EMPLOYEES E2 ON (E.DEPARTMENT_ID = E2.DEPARTMENT_ID)
WHERE   E.EMPLOYEE_ID <> E2.EMPLOYEE_ID
ORDER BY E.DEPARTMENT_ID, E.LAST_NAME, E2.LAST_NAME;

Q8.Davies라는 사원보다 늦게 입사한 사원의 이름과 입사일을 표시하는 질의를 작성하십
시오.

A8.

SELECT E.LAST_NAME, E.HIRE_DATE
FROM EMPLOYEES E JOIN EMPLOYEES E2 ON (E2.LAST_NAME = 'Davies')
WHERE E2.HIRE_DATE < E.HIRE_DATE and E.LAST_NAME <> 'Davies'

Q9. 관리자보다 먼저 입사한 모든 사원의 이름 및 입사일을 관리자의 이름 및 입사일과 함께 표시하는 질의를 작성하십시오.

A9.

SELECT E.LAST_NAME, E.HIRE_DATE, E2.LAST_NAME, E2.HIRE_DATE
FROM   EMPLOYEES E JOIN EMPLOYEES E2 ON (E.MANAGER_ID = E2.EMPLOYEE_ID)
WHERE  E.HIRE_DATE <  E2.HIRE_DATE;
profile
KHU, SWCON

0개의 댓글