정규화 이론 내용

 

 

다시 한번 나의 쇼핑몰 프로젝트 데이터베이스 모델러 정리해보기. (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

+ Recent posts