SQL/SQLD
[SQLD] 2-1. SQL 기본 (2)
유달잇
2021. 5. 24. 23:55
728x90
5. WHERE 절
5-1. WHERE 절 이란?
원하는 자료만을 검색하기 위해서 사용하는 절이다.
5-2. 연산자의 종류
- 비교 연산자
- =
- >
- >=
- <
- <=
- SQL 연산자
- BETWEEN a AND b : a와 b 사이의 모든 값 (a, b포함)
- IN (LIST) : 리스트에 있는 값 중 하나라도 일치 여부
- LIKE '문자열' : 문자열 형태 일치 여부 ( % : 0개 이상, _ : 1개 단일 문자)
- IS NULL : NULL값 여부
- 논리 연산자
- AND
- OR
- NOT
- 부정 비교 연산자
- !=
- ^=
- <>
- NOT 칼럼명 =
- NOT 칼럼명 >
- 부정 SQL 연산자
- NOT BETWEEN a AND b
- NOT IN (LIST)
- IS NOT NULL
5-3. 연산자의 우선순위
- ( )
- NOT
- 비교 연산자, SQL 비교 연산자
- AND
- OR
5-4. ROWNUM, TOP
행의 개수를 제한하는 목적으로 사용되는 함수
[Oracle]
SELECT 칼럼명 FROM 테이블명 ROWNUM <= n;
[SQL Server]
SELECT TOP(n) 칼럼명 FROM 테이블명;
- ROWNUM
- Oracle에서 사용하며 제한된 행의 개수를 가져올 때 사용한다.
- ORDER BY절보다 먼저 처리되는 WHERE절에서 처리한다.
- ROWNUM을 이용하여 고유키나 인덱스를 생성할 수 있다.
- UPDATE 테이블명 SET 칼럼명 = ROWNUM;
- TOP
- SQL Server에서 사용하며 불러오는 행의 갯수를 지정하여 가져온다.
- TOP N : 상위 N개의 갯수 출력
- TOP N PERCENT : 상위 N%의 데이터 출력
- TOP N WITH TIES : 마지막 행의 같은 값을 추가 출력하며 ORDER BY 절과 같이 사용한다.
5-5. NULL 관련 함수
- NVL(판단 대상, 대체값)
- 판단 대상 값이 NULL이면 대체값을 출력한다.
- NULL 값이 있을 경우 대체할 때 사용
- ISNULL(판단 대상, 대체값)
- 판단 대상 값이 NULL이면 대체값을 출력한다.
- NULL 값이 있을 경우 대체할 때 사용
- NULLIF(판단 대상, 비교대상)
- 판단 대상과 비교대상이 같으면 NULL을 출력하고 다르면 판단 대상을 출력한다.
- 특정 값을 NULL로 대체하는 경우 사용
- COALESCE(표현식 1, 표현식 2,,,)
- NULL이 아닌 최초의 표현식을 출력한다. 다 NULL일 경우에는 NULL을 출력한다.
- 두 개의 중첩된 CASE 문장으로 표현 가능
6. GROUP BY HAVING 절
6-1. GROUP BY 절 이란?
FROM 절과 WHERE 절 뒤에 오며, 데이터를 작은 그룹으로 분류하여 소그룹에 대한 항목별, 통계 정보를 얻을 때 추가로 사용하는 절이다.
SELECT * FROM 테이블명
WHERE 조건식
GROUP BY 칼럼/표현식
HAVING 그룹의 조건식;
6-2. GROUP BY 절과 HAVING 절의 특성
- 집계 함수의 통계 정보는 NULL 값을 가진 행은 제외하고 처리한다.
- 집계 함수는 WHERE 절에서 사용할 수 없음
- GROUP BY 절에서는 별명(ALIAS)을 사용할 수 없다.
- GROUP BY 절에 의해 소그룹별로 만들어진 집계 데이터는 HAVING 절에서 만족하는 조건의 데이터를 출력
6-3. COUNT
- 행의 수를 출력하는 함수이다.
- COUNT(*) : NULL을 포함한 모든 행의 수
- COUNT(표현식) : NULL을 제외한 모든 행의 수
7. ORDER BY 절
7-1. ORDER BY 절 이란?
- 특정 칼럼을 기준으로 데이터를 정렬한다. 기본값은 오름차순(ASC)으로 정렬된다.
- Oracle은 NULL을 가장 큰 값, SQL Server는 NULL을 가장 작은 값으로 간주한다.
SELECT * FROM 테이블명
WHERE 조건식
GROUP BY 칼럼/표현식
HAVING 그룹조건식
ORDER BY 칼럼/표현식 [ASC|DESC];
7-2. SELECT 문장의 실행 순서
- FROM
- WHERE
- GROUP BY
- HAVING
- SELECT
- ORDER BY
728x90