TIL 22-08-09

FOH·2022년 8월 9일
0

TIL

목록 보기
2/11

Oracle SQL

서브 쿼리

SELECT	last_name
FROM	employees
WHERE 	salary > (SELECT salary
				  FROM	employees
                  WHERE last_name = 'Abel');

이름이 'Abel'인 사람보다 급여가 높은 사원의 이름

  • select문에 삽입된 select문.
  • where, having, from절에 사용.
  • 단일 행 서브 쿼리에서는 단일 행 비교 연산자 사용(<,=,<>...)
  • 다중 행 서브 쿼리에서는 in, all, any를 사용.
    • all은 모든 값에 and 조건.
      (>all은 최대값보다 크고, <all은 최소값보다 작다.)
    • any는 모든 값에 or 조건
  • 조건절에서 비교는 같은 값을 비교해야 함(위 예제에서는 salary끼리 비교)

예제

  • 부서별 최대 급여를 받는 사원의 번호, 이름과 급여를 출력하시오
select employee_id, last_name, salary
from employees
where (department_id, salary) in (select department_id, max(salary)
from employees
group by department_id)

서브 쿼리에서 여러 개의 컬럼을 선택해서 비교할 수 있다.

  • 회사 전체 평균 급여보다 더 많이 받는 사원들 중 이름에 u가 있는 사원들이 근무하는 부서에서 근무하는 사원들의 사번, 이름 및 급여를 출력하시오.
select employee_id, last_name, salary
from employees
where department_id in (select department_id
from employees
where salary > (select avg(salary)
from employees)
and last_name like '%u%')

맞게 작성한 코드

select employee_id, last_name, salary
from employees
where department_id in (select department_id
from employees
where salary > (select avg(salary)
from employees
where last_name like '%u%'))

잘못 작성한 코드(이름에 'u'가 들어간 사람들의 평균 급여보다 더 많이 받는 사원들...)

Java

반복문

while : 반복 횟수가 정해지지 않은 경우
do~while : 무조건 한 번은 실행한 뒤, while처럼 활용
for : 반복 횟수가 정해져 있을 때 사용

while

while(조건식) {
	조건이 참인 동안 실행될 문구;
}
  • 만약 조건식이 true인 경우 while문은 실행문구를 영원히 반복한다.

do~while

do {
	조건이 참인 동안 실행될 문구;
}while(조건식);
  • 문구를 먼저 실행하고 조건식을 검사한다.
  • 실행 문구를 무조건 한 번은 실행해야 할 때 사용

0개의 댓글