ORDER BY , WHERE 절 , JOIN

 

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) 조인문 작성 과정 

  1. 검색대상과 조건을 추출
  2. SELECT절과 FROM절에서 검색 테이블 추출
  3. 테이블간 관계 확인
  4. 조인 조건기술
  5. 문장 완성

 

3-2) 자기 참조 조인(self join) 

 

셀프 조인은 하나의 테이블을 자신과 조인해 같은 테이블 안의 행들 간의 관계를 비교할때 사용하는 조인을 말한다. 즉 동일 테이블을 자기 참조에 의해서 조인한다. 동일 테이블에 대한 별명이여도 각각 별도의 테이블처럼 사용되며, 하나의 테이블에 별명을 다르게 해서 마치 여러 개의 테이블간 조인한 것처럼 문장을 구현한다. 

 

================================

SELECT 별명1.컬럼1, ... 별명2.컬럼1, ...

FROM 테이블 별명1, 테이블 별명2, ...

WHERE 조인_조건 AND 일반_조건;

================================

 

3-3) 외부(outer) 조인 

 

조인 조건에 일치하지 않는 데이터를 출력해준다. 이를 쓰는 이유는 조인 결과물을 해석할 때 오해를 방지하기 위해서 사용하며, '+' 기호는 데이터가 부족한 쪽에 기술한다. 

 

================================

SELECT 컬럼, 컬럼, ...

FROM 테이블1, 테이블2, ...

WHERE 조인_조건(+)

AND 일반_조건

================================