SELECT문
SELECT문과 SELECT DISTINCT
SELECT문은 데이터베이스에서 데이터를 조회하는 가장 기본적인 명령문
SELECT 문을 활용하여 원하는 데이터 검색하고 효과적으로 표현 가능
SELECT [ALL|DISTINCT] 대상 칼럼명1, 대상 칼럼명2, ...
FROM 대상 칼럼들이 있는 테이블명
기본 형식
ALL : 기본 옵션으로 중복 데이터를 포함하여 모든 결과를 출력
DISTINCT : 중복된 데이터가 있을 경우 한 건으로만 처리하여 출력
* : 조회 대상 칼럼을 지정하지 않고 모든 칼럼을 조회
칼럼 및 테이블 별칭 사용하기
별칭(ALIAS)은 칼럼이나 테이블에 임시 이름을 지정하는 기능으로,
칼럼 이름이 길거나 이해하기 어려울 때 결과를 더 명확하게 하기 위해 사용
SELECT 칼럼명 AS 별칭
FROM 테이블명;
기본 형식
공백이 포함된 별칭 : Oracle에서는 " " , SQL Server에서는 " " 또는 [ ]
산술 연산자와 문자 합성 연산자
산술 연산자 : +, -, *, /
문자 합성 연산자 : 오라클은 ||, SQL Server는 + 또는 CONCAT (여러 문자열을 하나로 합칠 때 사용)
ex)
SELECT ENAME || ' is a ' || JOB AS EMPLOYEE_INFO
FROM EMP
결과: "KING is a PRESIDENT" 형태의 문자열로 출력
함수
SQL 내장 함수는 데이터 퍼리와 조작에 사용되는 미리 정의된 함수들
🔹 단일행 함수 : 각 행마다 하나의 결과를 반환
🔹 다중행 함수 : 여러 행의 데이터를 입력받아 하나의 결과 반환
Ex)
SING(-10) 부호반환 ➡ -1
MOD(17, 5) 나머지 연산 ➡ 2
CEIL(4.3) 올림 ➡ 5
FLOOR(4.7) 내림 ➡ 4
NULL 관련 함수
EX)
NVL(COMM., 0) ➡ NULL 이면 대체 값 반환
COALESCE(COMM, SAL, 0) ➡ 첫번째 NULL이 아닌 값 반환
NULLIF(COMM, 0) ➡ 두 값이 같으면 NULL, 다르면 첫번째 값 반환
IFNULL(COMM, 0) ➡ 첫번째 값이 NULL이면 두번째 값으로 대체
ISNULL(COMM, 0) ➡ NULL이면 두 번째 값으로 대체, 아니면 첫번째 값
| 함수 | 설명 | 예시 |
| NULLIF(expr1, expr2) | 두 값이 같으면 NULL 반환, 다르면 첫 번째 값 반환 | NULLIF(5,5) → NULL, NULLIF(5,3) → 5 |
| IFNULL(expr, value) | 첫 번째 값이 NULL이면 두 번째 값으로 대체 | IFNULL(NULL, 0) → 0, IFNULL(5,0) → 5 |
| ISNULL(expr, value) | NULL이면 두 번째 값으로 대체 (DBMS에 따라 동작 동일) | ISNULL(NULL, 0) → 0, ISNULL(5,0) → 5 |
WHERE 절
WHERE 절은 조회할 데이터를 필터링하는데 사용되며,
특정 조건에 맞는 행만 결과에 포함시킵니다
SELECT 칼럼명1, 칼럼명2, ...
FROM 테이블명
WHERE 조건식;
기본 형식
비교 연산자
-, <>, !=, >, <, >= , <=
(같지 않음 : <> 또는 !=)
논리 연산자
AND : 두 조건 모두 참이면 참
OR : 두 조건 중 하나라도 참이면 참
NOT : 조건이 거짓이면 참
특수 연산자
BETWEEN a AND b : a와 b 사이의 값
IN(list) : 목록에 보함된 값 ex) DEPTNO IN (10, 20)
LIKE : 패턴 일치
IS NULL : null 값
IS NOT NULL : null이 아닌 값
📛연산자 우선 순위
1. 괄호 ()
2. 산술연산자(*, /, +, -)
3. 비교 연산자 (=, <>, >, <, >=, <=)
4. NOT
5. AND
6. OR
GROUP BY절, HAVING절, ORDER BY 절
집계 함수
집계 함수는 여러 행의 데이터를 그룹화하여 하나의 결과를 반환합니다
COUNT : 행 수 계산
SUM : 합계
AVG : 평균
MAX : 최댓값
MIN : 최솟값
GROUP BY 절
GROUP BY 절의 지정한 컬럼의 값이 같은 행을 그룹화하여 각 그룹에 집계 함수를 적용합니다
SELECT 칼럼명, 집계함수(칼럼명)
FROM 테이블명
GROUP BY 그룹화할_칼럼명;
기본 형식
HAVING 절
HAVING 절은 GROUP BY로 만들어진 그룹 중에서 특정 조건을 만족하는 그룹만 선택
SELECT 칼럼명, 집계함수(칼럼명)
FROM 테이블명
GROUP BY 그룹화할_칼럼명
HAVING 집계함수_조건;
기본 형식
WHERE과 HAVING의 차이점
🔹 WHERE : 개별 행에 대한 필터링, GROUP BY 전에 적용
🔹 HAVING : 그룹화된 결과에 대한 필터링, GROUP BY 후에 적용
ORDER BY 절
ORDER BY 절은 쿼리 결과를 특정 칼럼 기준으로 정렬
SELECT 칼럼명
FROM 테이블명
ORDER BY 정렬기준칼럼 [ASC|DESC]
ASC : 오름차순 정렬 (기본값) 1, 2, 3, 4...
DESC : 내림차순 정렬 4, 3, 2, 1...
SQL 실행 순서
SQL 문의 논리적 실행 순서는 다음과 같습니다
1. FROM : 데이터 가져오기
2. WHERE : 조건에 맞는 행 필터링
3. GROUP BY : 지정한 칼럼 기준으로 그룹화
4. HAVING : 그룹에 대한 조건 적용
5. SELECT : 결과 생성
6. ORDER BY : 결과 정렬
'🍏 개발일기 > 으쌰으쌰 SQLD 자격증 준비' 카테고리의 다른 글
| 노랭이 166P 부터 시작 112번 ~ 117번 (0) | 2026.02.13 |
|---|---|
| JOIN (0) | 2026.02.13 |
| 노랭이 88P 부터 시작 78번 ~ 89번 (0) | 2026.02.11 |
| 관계 & 식별자 (0) | 2026.02.11 |
| 노랭이 85P 부터 시작 74번, 75번, 76번, 77번 (0) | 2026.02.11 |