본문 바로가기
개발/데이터베이스 연동

SQL(기본 쿼리) -1

by David Jeon 2021. 12. 14.

SELECT 구문 순서
select 컬럼, ...
from 테이블
where (그룹 묶기 전에 검사할) 조건식
group by 그룹을 묶어줄 컬럼이름
having 그룹을 묶은 다음에 검사할 조건식
order by 출력순서를 설정할 컬럼,...;

주의) 순서에 맞게! 순서를 바꿔서 FROM절을 먼저 기술하면 에러가 발생!

 

함수(function) 
1. 단일 행 함수 : 예) UPPER, LOWER, INITCAP
   행(row)이 하나씩 함수의 argument로 전달되고, 행 마다 결과를 리턴하는 함수

   -- nvl(컬럼이름, value): 컬럼의 값이 null 아니면 자기 자신을 리턴, null 이면 value를 리턴
   -- nvl2(컬럼이름, value1, value2): 컬럼의 값이 null 아니면 value1을, null 이면 value2를 리턴.

   예) select ename, lower(ename) from emp;  select comm, nvl(comm,-1) ,nvl2(comm, comm,-1) from emp;

--2. 그룹 함수(다중 행 함수) :
--   여러 개의 행(row)이 한꺼번에 함수의 argument로 전달되고, 
--   여러 개의 행에서 하나의 결과를 리턴하는 함수. 
-- 예) count(개수), sum(합계), avg(평균), max(최댓값), min(최솟값), variance(분산), stddev(표준편차)
select count(ename), count(mgr), count(comm) from emp;
select sum(sal), avg(sal), max(sal), min(sal), variance(sal), stddev(sal) from emp;

예제)

--부서별 급여의 평균, 표준편차 찾기. 소수점 2자리까지 반올림.
-- 부서번호 순으로 오름차순
select deptno, round(avg(sal),2) as avg, round(variance(sal),2) as var

from emp

group by deptno

order by deptno;

※주의※) select 절에서 만든 별명은 where, group by, having에서는 사용할 수 없고
order by에서만 사용 가능!

 

 

'개발 > 데이터베이스 연동' 카테고리의 다른 글

SQL  (0) 2021.12.13