정규화 이론 내용
다시 한번 나의 쇼핑몰 프로젝트 데이터베이스 모델러 정리해보기. (DB SCHEMA)
내일 발표.
데이터베이스 7장 : 다중행 함수와 데이터 그룹
--------------------------------------------
-- 07-1 하나의 열에 출력 결과를 담는 다중 행 함수
--------------------------------------------
-- Aggregate Functions: 집합 함수
-- 우리 회사의 사원의 평균 봉급은?
select avg(salary) from employees;
select salary from employees
where salary is null;
-- 직무가 IT_PROG인 사원의 평균 봉급은?
select avg(salary) as 평균,
max(salary) as 최대,
min(salary) as 최소
from employees
where job_id = 'IT_PROG';
-- 우리 회사의 전체 사원 수는?
select count(*) from employees;
select count(employee_id) from employees;
select count(commission_pct) from employees; -- null인 값은 세지 않는다.
-- 단순히 행의 갯수를 세고 싶다면 아스타(*)를 사용하자.
-- 직무가 IT_PROG인 사원의 수는?
select count(*) from employees
where job_id = 'IT_PROG';
-----------------------------------------------
-- 07-2 결과값을 원하는 열로 묶어 출력하는 GROUP BY절
-----------------------------------------------
-- 부서별 봉급의 집계
select department_id, sum(salary), round(avg(salary)), max(salary), min(salary)
from employees
group by department_id
order by department_id;
-- 만약 집계 함수들 가운데 순수 컬럼이 들어가게 된다면 group by절을 넣어야 한다.
-- 집계 함수만 사용한다면 실행이 가능한 경우.
select sum(salary), round(avg(salary)), max(salary), min(salary)
from employees;
-- 부서별, 직무별 평균 봉급과 봉급의 합은?
select department_id, job_id, avg(salary) as 평균봉급, sum(salary) as 봉급합 from employees
group by department_id, job_id
order by department_id desc;
-- 50부서, 80부서, 90부서의 각각의 평균 봉급은?
select department_id, round(avg(salary)) from employees
where department_id in(50, 80, 90)
group by department_id;
---------------------------------------------
-- 07-3 GROUP BY절에 조건을 줄 때 사용하는 HAVING
---------------------------------------------
-- 50부서, 80부서, 90부서의 각각의 평균 봉급이 5000 이상인 부서와 평균 봉급
select department_id, round(avg(salary)) from employees
where department_id in(50, 80, 90) -- 집계 전에 50부서, 80부서, 90부서를 탐색.
group by department_id -- 그룹화할 컬럼
having avg(salary) >= 5000 -- 집계 후의 조건. 집계 후 조건을 한번 더 주어 보여준다.
order by department_id asc;
# 포인트 정리
WHERE절은 집계 전의 조건식이다.
HAVING절은 집계 후의 조건식이다.
ORDER BY는 마지막에 작성한다.
'JAVA' 카테고리의 다른 글
58일차 2024-05-22 (Vue 2일차) (0) | 2024.05.22 |
---|---|
43일 2024-04-26 (0) | 2024.04.26 |
41일차 2024-04-24 (0) | 2024.04.24 |
40일차 2024-04-23 (0) | 2024.04.23 |
36일차 2024-04-17 (0) | 2024.04.17 |