복합지정 연산자와 데이터 정렬

Updated:

복합조건 지정 및 데이터 정렬

학습주제

  • 복합조건 지정하기
  • 데이터 정렬하기

학습 목표

  • WHERE절에 AND, OR를 이용해 여러 조건들을 지정할 수 있다.
  • ORDER BY 절을 사용하여 필요한 자료들이 먼저 나오도록 정렬 작업을 수행할 수 있다.

복합 조건 지정하기

AND로 조건 조합

  • WHERE절 여러 조건을 지정할 때 좌우에 있는 두 조건을 모두 만족하는 자료만 선택하기 위해 AND 연산자로 조건을 결합한다.
  • AND 연산을 집합으로 표현하면 교집합과 같다.

예시

SELECT player_name, team_id, position, height
FROM player
WHERE position = 'FW' AND height > 190;

OR로 조건 조합

  • WHERE절에 여러 조건을 지정할 때 좌우에 있는 두 조건 중 하나만 만족하더라도 자료를 추출할 수 있도록 OR 연산자로 조건을 결합한다.
  • OR 연산을 집합으로 표현하면 합집합과 같다.

예시

SELECT player_name, team_id, position, height
FROM player
WHERE position = 'FW' OR height > 190;

NOT 연산자

  • NOT 연산자는 단독으로 사용할 수 없고 조건 앞에 붙어서 조건 값 결과가 TRUE이면 FALSE를, FALSE이면 TRUE를 반환함.
  • WHERE NOT height > 170 으로 사용한 경우 키가 170보다 작거나 같은 자료가 선택된다. (WHERE height <= 170과 동일)
  • NOT은 보통 IN, BETWEEN, LIKE, IS NULL 등의 조건과 같이 사용되는 경우가 많다.

예시

SELECT player_name, team_id, height
FROM player
WHERE NOT height BETWEEN 170 AND 190;
  • NOT 칼럼명 = : -와 같지 않다.
  • NOT 칼럼명 > : -보다 크지 않다. (작거나 같다.)
  • NOT 칼럼명 < : -보다 작지 않다. (크거나 같다.)
  • NOT BETWEEN a AND b : a와 b의 값 사이에 있지 않다. (a, b값을 포함하지 않는다.)
  • NOT IN (목록) : 목록에 지정된 값과 일치하지 않는다.
  • NOT LIKE ‘%문자열%’ : 해당문자열을 포함하지 않는다.
  • NOT 칼럼명 IS NULL 또는 칼럼명 IS NOT NULL

논리 연산자 우선 순위

  • WHERE절에 AND, OR 연산자를 조합해서 사용하는 경우에는 AND 부터 처리하고 OR조건을 처리한다.
  • AND 연산자 우선순위가 OR보다 높다.
  • 괄호 () 먼저 처리한다.

예시

SELECT player_name, team_id, position
FROM player
WHERE position = 'GK' OR position = 'MF' AND team_id = 'Ko1';
SELECT player_name, team_id, position
FROM player
WHERE (position = 'GK' OR position = 'MF') AND team_id = 'Ko1';

데이터 정렬

  • ORDER BY 절을 사용하여 데이터를 정렬된 형태로 조회할 수 있다.
  • ORDER BY를 지정하지 않으면 DB내부에 저장된 순서대로 표시된다.
  • ORDER BY절은 항상 SELECT 문의 마지막에 작성한다.
  • ORDER BY절에는컬럼명, 표현식, 별칭, SELECT절에 나온 열의1 순서를 나타내는 숫자를 지정할 수 있다.
  • DISTINCT 를 사용하지 않은 경우, SELECT절에 없는 컬럼 기준으로 정렬할 수 있다.

오름차순 정렬

  • 기본 정렬 순서는 오름차순(ASCENDING)이다.
  • 숫자 값은 작은 값부터, 날짜 값은 과거 값부터, 문자 값은 영문자 순으로 표시됨
    • 숫자: 1, 2, 3…
    • 날짜: 2000년 < 2001년 … < 2014년 < 2015년
    • 문자: A < B < C … < Z, 가 < 나 < 다 … < 하
  • NULL 값은 오름차순 정렬에서 마지막에 표시된다.

예시

SELECT player_name, team_id, height
FROM player
WHERE height > 190
ORDER BY height;

내림차순 정렬

  • 내림차순 (DESCENDING) 정렬 수행 시 DESC키워드를 지정해야 한다.
  • 숫자, 문자, 날짜 값을 큰 값부터 먼저 표시한다.
  • NULL 값은 내림차순 정렬에서 제일 처음에 표시된다.
  • NULL 값은 NULLS FIRST나 NULLS LAST 키워드를 사용하여 순서를 변경할 수 있다.

예시

SELECT player_name, team_id, height
FROM player
WHERE height > 190
ORDER BY height DESC;

여러 컬럼을 이용해 정렬하기

  • ORDER BY절에 여러 컬럼을 이용해 정렬 작업을 수행하라 수 있다.
  • 콤마(,)로 구분한다.
  • 1차 컬럼으로 정렬하고 2차 컬럼으로 정렬하고 다음 컬럼으로 계속한다.

Comments