복합지정 연산자와 데이터 정렬
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