[오라클]/SELECT 6

서브쿼리 subquery

Q) Daniel이 근무하는 부서의 평균급여를 구하시오 --1. Daniel의 부서를 알아낸다 --2. 해당 부서의 평균 급여를 알아낸다 SELECT department_id FROM employees WHERE first_name='Daniel'; SELECT avg(salary) FROM employees WHERE department_id=100; --이걸 합쳐야됨 SELECT avg(salary) FROM employees WHERE department_id=(SELECT department_id FROM employees WHERE first_name='Daniel'); --이렇게 두번에 걸쳐 구하는것을 한번에 구하는 것이 서브쿼리 - where절 서브쿼리 Q) 급여를 8800 받는 직원의 부서..

[오라클]/SELECT 2020.12.27

조인 JOIN

- JOIN: 2개 이상의 테이블을 한번에 출력되는것, pk와 fk를 사용해야됨 - 오라클은 4개의 join 이름을 구성 equi join, non-equi join, self join, outer join 1) equi join -> pk=fk 조건에서 조인 INNER JOIN Q) 직원의 이름, 급여와 부서명을 출력하시오 --두개의 테이블을 같이 보는 방법 SELECT first_name 이름, salary 급여, department_name 부서 FROM employees, departments; --근데 이러면 employees의 한 칼럼마다 departments의 모든 칼럼에 붙여져서 행수가 엄청 많아짐 SELECT first_name 이름, salary 급여, department_name 부서..

[오라클]/SELECT 2020.12.27

다중행 함수(multi row function) 그룹함수

- sum(), max(), min(), count(), avg() SELECT sum(salary) FROM employees; SELECT max(salary) FROM employees; SELECT min(salary) FROM employees; SELECT avg(salary) FROM employees; SELECT count(*) FROM employees; --무조건 전체 인원수 구하기 SELECT count(commission_pct) FROM employees; --commission_pct가 있는 사람만 구하기(null값 제외) SELECT avg(commission_pct) FROM employees; --null값 빼고 계산 SELECT sum(salary), min(salary..

[오라클]/SELECT 2020.12.26

단일행 함수(single row function)

- nvl(인자1, 인자2): 값이 있으면 그대로 나오고 null이면 인자2 값을 집어넣음 SELECT first_name 이름, nvl(commission_pct, 0) 인센티브 FROM employees; --nvl(인자1, 인자2): 인자1과 인자2의 타입이 같아야됨 SELECT first_name 이름, nvl(to_char(commission_pct), '없어!') 인센티브 FROM employees; --to_char() -> 문자열로 바꿔줌 - LOWER, UPPER, INITCAP SELECT first_name 이름, last_name 성, salary*12 연봉 FROM employees WHERE LOWER(last_name)='king'; SELECT first_name 이름, la..

[오라클]/SELECT 2020.12.26

select

- 별명 사용 방법 SELECT first_name "사원 이름", salary "월 급여" FROM employees; SELECT first_name "사원이름", salary "12월급여" FROM employees; SELECT first_name "사원이름", salary 월급여12 FROM employees; 쌍따옴표 사용하면 별명에 공백, 숫자포함 가능(sql에서 유일하게 쌍따옴표 사용 가능함) - varchar2, char varchar2: 가변길이 문자열, 메모리는 절약, 상대적으로 속도는 느리다 char: 고정길이 문자열, 메모리는 낭비될수 있으나 상대적으로 속도는 빠르다 추후에 char(5), varchar2(5) 로 둘다 babo 집어넣으면 babo^, babo 라고해서 두개 비교하..

[오라클]/SELECT 2020.12.26