1. ORDER BY 절
ORDER BY는 지정한 컬럼을 기준으로 결과를 정렬할 때 사용하는 SQL 구문이다.
===============================
SELECT 컬럼1, 컬럼2, ...
FROM 테이블명
ORDER BY 정렬기준컬럼 [ASC | DESC];
===============================
- ASC는 오름차순정렬, DESC는 내림차순 정렬을 지정한다. > default는 ASC
- 정렬대상인 컬럼이 여러 개인 경우 앞에 지정한 컬럼이 동일한 값에 대해서 뒤에 지정된 컬럼으로 정렬된다
- 정렬하지 않는 SELECT문의 출력 순서는 의미가 없다.
- 정렬 대상으로는 컬럼 이외에 다음의 것들이 사용 가능하다. > 별명, 수식, 검색 항목 순서
- RDB에서 행의 순서나 컬럼의 순서는 의미가 없다.
2. WHERE 절
WHERE절은 SQL문에서 특정 조건을 만족하는 행만 선택하기 위해 사용된다.
===========================================
SELECT * | 컬럼, …
FROM 테이블
WHERE 검색조건
ORDER BY 컬럼 [ASC |DESC], 컬럼 [ASC |DESC], ...
===========================================
- 조건을 통해 테이블의 일부 행만을 검색한다.
- 조건은 컬럼을 대상으로 데이터를 제한한다.
- 조건에는 비교 연산자가 사용된다.
- 테이블의 구성을 기억해야 한다.
- NULL은 비교연산자(=, <, >)를 사용할 수 없다.
- NULL에 대한 직접 검색은 다음 연산자를 이용한다.(IS NULL, IS NOT NULL)
- BETWEEN..AND 연산자 : 컬럼의 값이 값1에서 값2 사이의 값을 검색한다.
- IN 연산자 : 값 중에 일치하는 값이 하나라도 있으면 검색된다.
- LIKE 연산자 : 패턴 연산자의 일종으로 일부 문자열만을 이용해서 대상을 검색한다.(%,_)
- 관계연산자 : AND, OR, NOT
- 부정 연산자 : NOT은 비교연산자 !=로 대체가 가능하기 때문에 잘 안쓰인다.
- 날짜 검색 : '1996'/01/01', 날짜형식은 YYYY/MM/DD:HH24:MI:SS이다.
3. JOIN
============================
SELECT 테이블.컬럼, ...
FROM 테이블, 테이블, ...
WHERE 조인_조건
AND 일반_조건
ORDER BY 컬럼 ...;
============================
- 조인조건: 테이블간의 관계 수식
- 조인문장에서 기술된 모든 테이블은 반드시 조인 조건으로 기술
- 동일한 이름의 컬럼이 여러 테이블에 존재하는 경우 컬럼명 앞에 반드시 테이블명이 필요
- 테이블 개수가 n개일 때 조인 조건은 항상(n-1)개 이상
- 등가조인(Equi-join) : 조인 조건이 등호('=')
- 비등가조인(Non equi-join) : 조인 조건이 부등호
3-1) 조인문 작성 과정
- 검색대상과 조건을 추출
- SELECT절과 FROM절에서 검색 테이블 추출
- 테이블간 관계 확인
- 조인 조건기술
- 문장 완성
3-2) 자기 참조 조인(self join)
셀프 조인은 하나의 테이블을 자신과 조인해 같은 테이블 안의 행들 간의 관계를 비교할때 사용하는 조인을 말한다. 즉 동일 테이블을 자기 참조에 의해서 조인한다. 동일 테이블에 대한 별명이여도 각각 별도의 테이블처럼 사용되며, 하나의 테이블에 별명을 다르게 해서 마치 여러 개의 테이블간 조인한 것처럼 문장을 구현한다.
================================
SELECT 별명1.컬럼1, ... 별명2.컬럼1, ...
FROM 테이블 별명1, 테이블 별명2, ...
WHERE 조인_조건 AND 일반_조건;
================================
3-3) 외부(outer) 조인
조인 조건에 일치하지 않는 데이터를 출력해준다. 이를 쓰는 이유는 조인 결과물을 해석할 때 오해를 방지하기 위해서 사용하며, '+' 기호는 데이터가 부족한 쪽에 기술한다.
================================
SELECT 컬럼, 컬럼, ...
FROM 테이블1, 테이블2, ...
WHERE 조인_조건(+)
AND 일반_조건
================================
'SQL' 카테고리의 다른 글
| 서브쿼리, 집합 연산자 ,단일 행 함수 , GROUP BY, HAVING (1) | 2025.10.08 |
|---|---|
| 관계형 데이터베이스와 SQL (0) | 2025.10.06 |