SQL을 다룰 때 중요한 전체 형식과 정렬 방법, 연산자 등에 대해 정리했습니다. 개념과 활용법을 이해하는 데 도움 되길 바랍니다.
📝 1. SQL 전체 형식
SQL의 기본 명령어 순서는 다음과 같습니다
select ~ 조회대상
from ~ 테이블명
where ~ 검색조건
group by ~ 그룹핑 대상컬럼
having ~ 그룹핑 결과에 대한 조건
order by ~ 정렬 [asc (올림차순, 기본) | desc (내림차순)]
;
🔍 2. SELECT 문 실행 순서
SQL 파싱 순서를 반드시 기억해 두세요:
- from ~
- where ~
- group by ~
- having ~
- select ~
- order by ~
⚠️ 순서 중요! 실제 실행 순서와 작성 순서가 다르니 주의하세요.
📈 3. 정렬 방법 (ORDER BY)
데이터를 정렬하는 방법은 크게 올림차순(asc)과 내림차순(desc)이 있습니다.
- 올림차순 : 기본값 (생략가능)
- 예 : 숫자(0, 1, 2...), 문자(a, b, c...), 날짜(오래된 순)
- 내림차순 : 최신값 또는 큰값 순
- 예 : order by 입사년도 desc; → 최신 입사 순서
🧮 4. 연산자 정리
| 연산자 종류 | 설명 | 예시 |
|---|
| 사칙연산 | +, -, *, / (몫, 소수 포함) | select 10 / 3; |
| 나머지 연산 | mod(N, M), % | select mod(10, 3); |
| 비교연산 | =, !=, <, >, <=, >= | select * from ... |
| 논리연산 | and, or, not | 조건식을 결합할 때 |
| NULL 처리 | ifnull(col_name, 대체값) | select ifnull(sal, 0); |
⚡ 5. NULL 주의 사항
- NULL은 값을 알 수 없음을 의미합니다.
- 연산 대상에서 제외됩니다.
- ifnull()을 사용하면 NULL 값을 다른 값으로 대체할 수 있습니다.
실습 예제
- select emp_name, ifnull(salary, 0) as salary
- emp_name (직원 이름)과 salary (급여)를 조회합니다.
- ifnull(salary, 0): salary가 NULL일 경우 0으로 대체합니다.
- as salary: 결과에서 해당 열의 이름을 salary로 지정합니다.
- from employees
- 데이터를 조회할 테이블의 이름이 employees입니다.
- where department = 'IT'
- where 조건 : department(부서)가 'IT'인 직원만 선택합니다.
- group by emp_name
- emp_name(직원 이름)으로 그룹화합니다.
- 각 직원별로 데이터를 묶습니다.
- having salary > 3000
- having 조건 : 그룹화된 결과 중 salary(급여)가 3000보다 큰 직원만 선택합니다.
- having은 그룹화된 결과에 대한 조건을 설정합니다.
- order by salary desc
- salary를 기준으로 내림차순(desc) 정렬합니다.
- 급여가 가장 높은 직원부터 낮은 순서대로 보여줍니다.